From 1747bd69623d97d1dc02b6d8b873cbecedcdeb43 Mon Sep 17 00:00:00 2001 From: arthursiq5 Date: Fri, 10 Sep 2021 12:58:31 -0300 Subject: [PATCH 01/32] =?UTF-8?q?Iniciada=20tradu=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ptbr.hjson | 970 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 970 insertions(+) create mode 100644 ptbr.hjson diff --git a/ptbr.hjson b/ptbr.hjson new file mode 100644 index 0000000..0ef34ae --- /dev/null +++ b/ptbr.hjson @@ -0,0 +1,970 @@ +{ + /* --------------------------------------------------------------------- + Emoji Key - Guide to what they mean + --------------------------------------------------------------------- */ + /* + + ℹ️ - Indicates an example of how this string could look with real values + ⚠️ - Indicates IMPORTANT TRANSLATIONS. These should be correctly translated first! + + */ + + + /* --------------------------------------------------------------------- + Generic - Used for multiple things + --------------------------------------------------------------------- */ + "generic.callbacks": { + "userBannedBy": "Este usuário foi banido por %s" + # ℹ️ NOTE: Signatures are used for intelligent text switching. MUST be a uniquely identifiable portion of the full text, + # and NOT contain any formatting or assume the value of any dynamic values. + "userBannedBySignature": " foi banido por " + "userBannedAnswerText": "Usuário banido" + # ℹ️ NOTE: Signatures are used for intelligent text switching. MUST be a uniquely identifiable portion of the full text, + # and NOT contain any formatting or assume the value of any dynamic values. + "userUnbannedBy": "Este usuário foi desbanido por %s" + "userUnbannedBySignature": " foi desbanido por " + "userUnbannedAnswerText": "Usuário Desbanido" + + # ℹ️ Example: /JoinVerify enabled by Andy + "featureEnabledBy": "%s enabled by %s" + "featureEnabledAnswerText": "%s enabled" + "featureAlreadyEnabled": "%s is already enabled" + "featureAlreadyEnabledAnswerText": "%s Already enabled" + "featureDisabledBy": "%s disabled by %s" + "featureDisabledAnswerText": "%s disabled" + "featureAlreadyDisabled": "%s is already disabled" + "featureAlreadyDisabledAnswerText": "%s Already disabled" + + "joinLimitRestrictionsReset": "This user had their /JoinLimit restrictions reset by %s" + "joinLimitRestrictionsResetAnswerText": "Restrictions Reset!" + + "joinLockExceptionAdded": "This user has been granted a one-time join exception by %s\n\nThe next time the user joins, I will not remove them." + "joinLockExceptionAddedAnswerText": "Exception Added" + + "chatNameRemoved": "Chat Name Removed by %s" + "chatNameRemovedAnswerText": "Chat Name Removed" + "chatNameNotSet": "Chat Name was not set, so nothing to remove." + "chatNameNotSetAnswerText": "Chat Name Not Set" + + "cantUseFeatureOnAdminsAnswerText": "Can't %s admins" + + "CalsiBotNoLongerAdmin": "CalsiBot is no longer an admin or doesn't have enough permissions, so this keyboard has expired." + "CalsiBotNoLongerAdminAnswerText": "CalsiBot is no longer an admin or doesn't have enough permissions, so this keyboard has expired." + + "keyboardHasExpired": "This keyboard has expired." + "keyboardExpiredAnswerText": "Keyboard Expired" + "keyboardUpdatedPressConfirmAnswerText": "Keyboard Updated, press 'Confirm' to apply" + } + + "generic.buttons": { + "whatIsThis": "❓ What Is This?" + "whatIsThisShort": "❓ What?" + "imSorry": "😭 I'm Sorry!" + + "joinChannel": "👋 Join Channel" + "addToGroup": "🔱 Add To Group" + "tapToVerify": "🤖 Tap to Verify 🤖" + + "banUser": "Ban User" + "banBot": "Ban Bot" + "allowUser": "Allow User" + "trustUser": "Trust User" + "trustBot": "Trust Bot" + "unbanUser": "Unban User" + + "settings": "⚙️ Configurações" + + "resetRestrictions": "🤝 Reset Restrictions" + "yes": "✅ Sim" + "no": "❌ Não" + "enable": "✅ Habilitar" + "disable": "❌ Desabilitar" + "disableLimit": "❌ Desabilitar Limite" + "disableTimeLimit": "❌ Desabilitar Limite de Tempo" + + "permabanUser": "❌ Banir permanentemente usuário" + "unPermabanUser": "🤝 Desbanir permanentemente usuário" + + "remove": "❌ Remover" + "removeAllWarns": "❌ Remove All Warns" + "history": "📚 Histórico" + "setMax": "🔢 Set Max" + "back": "⬅️ Back" + + "messages": "Mensagens" + "media": "Media" + "stickersAndGIFs": "Stickers & GIFs" + "linkPreviews": "Link Previews" + "confirm": "📝 Confirmar" + "cancel": "❌ Cancelar" + + "seeExample": "👀 Ver Exemplo" + "seeGroupInfo": "See Group Info" + + "marryAccept": "🥰 Aceitar" + "marryReject": "😒 Rejeitar" + + "continueFishing": "🎣 Continar Pescando" + "continueBuilding": "⚒ Continar Construindo" + + "chooseAction": "🎭 Escolher Ação" + "ignore": "🙈 Ignorar" + + "changeLanguage": "🌐 Mudar Idioma" + + "createPack": "📸 Create Pack" + "removePack": "💀 Remove Pack" + "viewPack": "🌆 View Pack" + } + + # ℹ️ Note: For languages which don't use English numbers, these should be changed + # to match the 'numbersPlain' localized numbers. + "generic.numbers": { + "zero": "0️⃣" + "one": "1️⃣" + "two": "2️⃣" + "three": "3️⃣" + "four": "4️⃣" + "five": "5️⃣" + "six": "6️⃣" + "seven": "7️⃣" + "eight": "8️⃣" + "nine": "9️⃣" + "ten": "🔟" + } + + # ℹ️ Note: These should be plain text localized numbers. + "generic.numbersPlain": { + "zero": "0" + "one": "1" + "two": "2" + "three": "3" + "four": "4" + "five": "5" + "six": "6" + "seven": "7" + "eight": "8" + "nine": "9" + "ten": "10" + } + + "generic.timePlural": { + "zero": "times" + "one": "time" + "other": "times" + } + + "generic.weekPlural": { + "zero": "semanas" + "one": "semana" + "other": "semanas" + } + + "generic.dayPlural": { + "zero": "dias" + "one": "diay" + "other": "dias" + } + + "generic.hourPlural": { + "zero": "horas" + "one": "hora" + "other": "horas" + } + + "generic.minutePlural": { + "zero": "minutos" + "one": "minuto" + "other": "minutos" + } + + "generic.secondPlural": { + "zero": "segundos" + "one": "segundo" + "other": "segundos" + } + + "generic.onlyInSupergroups": "Sorry, this command can only be used in Supergroups" + "generic.somethingWentWrongTryAgainLater": "Something went wrong, please try again later..." + "generic.rateLimit": "😡 Now ignoring new messages from %s for sending more than 3 command messages in less than 1 second. Please stop.\n\nExpires in a few minutes" + "generic.willNotSeeAgainForAWhile": "You will not see this message again for a while." + + # ℹ️ Example: Reply to the person you want to /slap + "generic.replyToThePersonYouWantTo": "Reply to the person you want to %s" + "generic.needToReply": "You need to reply to someone." + + "generic.needToBeAdmin": "❌ Not allowed. You need to:\n\n1️⃣ Be an admin\n2️⃣ Have permission to %s" + "generic.needToBeAdminAnswerText": "❌ Not allowed. You need to:\n\n1️⃣ Be an admin\n2️⃣ Have permission to %s" + "generic.CalsiBotNeedsToBeAdmin": "❌ For this to work, %s has to:\n\n1️⃣ Be an admin\n2️⃣ Have permission to %s" + "generic.CalsiBotNotUsedAnymore": "Sorry, CalsiBot is either not used in the group anymore, or does not have enough permissions." + "generic.CalsiBotNotUsedAnymoreAnswerText": "Sorry, CalsiBot is either not used in the group anymore, or does not have enough permissions." + + "generic.permissionTypes": { + "changeGroupInfo": "change group info" + "banUsers": "ban users" + "deleteMessages": "delete messages" + "inviteUsers": "invite users" + "pinMessages": "pin messages" + "doEverything": "do everything, including adding new admins" + } + + "generic.loaded": "Loaded" + "generic.loadingEllipsis": "Loading..." + "generic.disabled": "Disabled" + "generic.enabled": "Enabled" + "generic.cancelled": "Cancelled" + "generic.currently": "Currently" + "generic.gaming": "Gaming" + "generic.nobody": "Nobody" + "generic.none": "None" + "generic.note": "Note" + "generic.reasonColon": "Reason:" + "generic.deleteQuestion": "Delete?" + "generic.banQuestion": "Ban?" + "generic.and": " and " + + # ℹ️ Example: Exception was added by an admin. + "generic.anAdmin": "an admin" + + # ℹ️ Example: Fishing is always allowed in private :) + "generic.featureAlwaysAllowedInPrivate": "%s is always allowed in private :)" + + # ℹ️ Example: Wall Building has now been enabled in this group. + "generic.featureEnabled": "%s has now been enabled in this group." + "generic.featureAlreadyEnabled": "%s is already enabled in this group." + "generic.featureDisabled": "%s is now disabled in this group." + "generic.featureAlreadyDisabled": "%s is already disabled in this group." + + "generic.featureDisabledByDefault": "By default, %s is disabled in group chats.\n\nAn admin can %s." + # ℹ️ Example: By default, fishing is disabled in group chats.\n\nAn admin can /EnableGames, or you can fish in private, by tapping the button below: + "generic.featureDisabledByDefaultWithPrivate": "By default, %s is disabled in group chats.\n\nAn admin can %s, or you can %s in private, by tapping the button below:" + + # ℹ️ Example: You can use /DisableBrick to change that. + "generic.toggleFeatureHint": "You can use %s to change that." + + # ℹ️ Example: You can't Warn admins + "generic.cantUseFeatureOnAdmins": "You can't %s admins... Unfortunately." + "generic.cantUseFeatureOnAdminsWithReason": "You can't %s admins because %s" + # ℹ️ Example: because they can't be warned in the first place. + "generic.theyCantBeInTheFirstPlace": "because they can't be %s in the first place." + + "generic.tapNextToContinue": "\n\nTap /next to Continue..." + "generic.tapNextToRetry": "\n\nTap /next to Retry..." + "generic.tapCancelToQuit": "\n\nTap /cancel to Quit %s" + + + /* --------------------------------------------------------------------- + Comfy - Used for /hug, /cuddle, etc. + --------------------------------------------------------------------- */ + "comfy.hug": { + "self": "%s reaches one arm around and hugs their own body. %s feels slightly less alone now." + "main": "%s just gave you a hug! :)" + "CalsiBot": "I can't be hugged :/" + } + + "comfy.cuddle": { + "self": "%s lays face-down on their bed, and tries to cuddle both sides. %s feels slightly less sad now." + "main": "%s cuddles %s tightly" + "CalsiBot": "sighhh ☁️😌☁️" + } + + "comfy.snuggle": { + "self": "%s draws up their knees and tries to snuggle themselves. %s feels slightly less unloved now." + "main": "%s contentedly snuggles %s" + "CalsiBot": "🥺 *relaxed bot noises*" + } + + "comfy.poke": { + "self": "%s pokes their chest. It makes them remember that they should probably lose some weight." + "main": "*%s pokes %s* o_o" + "CalsiBot": ">_<" + } + + "comfy.pat": { + "self": "%s awkwardly reaches one hand around to pat themselves on the head. 🙃" + "main": "*%s pats %s on the head* :V" + "CalsiBot": "rawr xDddd" + } + + "comfy.ruffle": { + "self": "%s ruffles their own hair... Yikes. 😐" + "main": "*%s ruffles %s's hair* :&" + "CalsiBot": "You're meant to ruffle the hair on my head...not...there. 😳" + } + + "comfy.highfive": { + "self": "%s tries to highfive themselves by smacking their own two hands together. %s misses, and sinks deeper into depression." + "main": "%s just high-fived you for this!" + "CalsiBot": ":D" + } + + + /* --------------------------------------------------------------------- + Death - Used for /kys, /kms & /kos + --------------------------------------------------------------------- */ + "death.CalsiBot": "I can't be killed ;)" + + # ℹ️ Example: Josie stabbed Kevin before they starved to death + "death.kos": "%s stabbed %s before they %s" + + + /* --------------------------------------------------------------------- + Ban - Used for /ban, /kick, etc. + --------------------------------------------------------------------- */ + "ban.kick.main": "%s was kicked." + "ban.kickme.main": "%s removed." + "ban.ban.main": "%s was banned." + "ban.deport.main": "%s was deported." + "ban.realdeport.main": "%s was deported, permanently." + + + /* --------------------------------------------------------------------- + Fish - Used for /fish, /MyFish, etc. + --------------------------------------------------------------------- */ + "fish.fish": "Fish" + "fish.fishing": "Fishing" + "fish.noFish": "It looks like %s has never caught a fish before!\n\nHave a go: /Fish" + "fish.noTrophyFish": "You don't currently have any Trophy Fish 😢 - but don't worry!\n\nCatch one /Fish to earn your first!\n\n/MyFish ||| /Fish" + + "fish.verdicts": { + "failure": "Just like in real life, your bait failed." + "blowfish": "You caught a Blowfish: 🐡" + "normal": "Not bad!\nYou caught a Normal Fish: 🐟" + "tropical": "Cool!\nYou caught a Tropical Fish: 🐠" + "squid": "Sweet!\nYou caught a Squid: 🦑" + "crab": "Awesome!\nYou caught a Crab: 🦀" + "dolphin": "WHOA!\nYou caught a Dolphin: 🐬" + "shark": "HOLY FUCKING SHIT!!\nYou caught a Shark: 🦈" + "crocodile": "ARGHHH!!!\nYou caught a Crocodile: 🐊" + "whale": "THE OCEAN SEEMS TO SINK DOWN...\n\nWith all of your strength, you reel in your catch!\nYou caught a Whale: 🐳" + } + + "fish.viewYourFish": "\n\nView your fish: /MyFish" + "fish.newTrophyFish": "\n\n🎉 You just earned a new\n/TrophyFish!" + + "fish.myFish": + ''' + 🎣 %s – Fish: + + 🐡 - Blowfish: %s + 🐟 - Normal Fish: %s + 🐠 - Tropical Fish: %s + 🦀 - Caranguejo: %s + 🦑 - Squid: %s + 🐬 - Golfinho: %s + 🦈 - Tubarão: %s + 🐊 - Crocodilos: %s + 🐳 - Baleias: %s + + 🐠🦑🐊 - All Fish: %s + + /TrophyFish ||| /Fish + ''' + + "trophy.types": { + "firstfish": "\n%s<%s> - First Fish!" + "1000fish": "\n%s<%s> - One Thousand Fish" + "5000fish": "\n%s<%s> - Five Thousand Fish" + "10000fish": "\n%s<%s> - Ten Thousand Fish" + "2018newyear": "\n%s<%s> - New Years 2018" + "2018vday": "\n%s<%s> - VDay 2018" + "2018xmas": "\n%s<%s> - Xmas 2018" + "2019newyear": "\n%s<%s> - New Years 2019" + "2020xmas": "\n%s<%s> - Xmas 2020" + } + + + /* --------------------------------------------------------------------- + JoinEvents - Used for Join Flow + --------------------------------------------------------------------- */ + "joinevents.error.CalsiBotNotEnoughPermissions": "A Welcome Message, JoinLock, JoinVerify or JoinLimit is currently enabled, but I don't have enough Admin permissions right now...\n\nPlease ensure that I can change group info, and ban users." + "joinevents.userPermabanned": "%s was permanently banned from this group by an admin.\n\nI have removed them." + "joinevents.joinlockAddedByAdmin": "Join Lock is enabled but %s was added by %s, so they have not been kicked." + "joinevents.joinlockMemberBanned": "%s was banned because Join Lock is enabled." + + /* --------------------------------------------------------------------- + JoinConfig - Used for Join Flow + --------------------------------------------------------------------- */ + "joinconfig.welcome.help": "/SetWelcome allows you to set a Welcome Message for your chat\n\nYour message should be like the example below:" + "joinconfig.welcome.error.somethingWrong": "Sorry, but there's something wrong with the message you posted.\n\nPlease double-check your formatting, and make sure you haven't included any weird characters." + "joinconfig.welcome.success": "Great, your new Welcome Message has been set. Check above to see how it'll look!\n\nYou can use /DeleteWelcome to remove it." + "joinconfig.welcome.removed": "The Welcome Message has been removed.\n\nYou can use /SetWelcome, followed by the message you'd like, to set a new one." + "joinconfig.welcome.alreadyRemoved": "There is currently no Welcome Message set to remove.\n\nYou can use /SetWelcome, followed by the message you'd like, to set one." + + "joinconfig.joinlimit.help": "/JoinLimit allows you to set the default restrictions for any members who join your chat\n\nYour message should be like the example below:" + "joinconfig.joinlimit.success": "Your /JoinLimit has been set!\n\nNew members will automatically be restricted %s, until an admin unrestricts them." + "joinconfig.joinlimit.successTimed": "Your /JoinLimit has been set!\n\nNew members will automatically be restricted %s, for the time limit you specified." + + "joinconfig.title.help": "/%s allows you to set the chat's title with a message.\n\nYour message should be like this:\n/%s New chat title\n\nTip: Have a chat name you always use in titles? Check out /cn" + "joinconfig.title.replyToTextHint": "If you're replying to another message to set the chat's title, it must be text-only.\n\nTip: Have a chat name you always use in titles? Check out /cn" + + "joinconfig.chatname.help": "/%s allows you to set the chat's name. This name will always appear in front of any chat title set using /t or /title.\n\nYour message should be like this:\n/%s MyChatName" + "joinconfig.chatname.replyToTextHint": "If you're replying to another message to set the chat's name, it must be text-only." + "joinconfig.chatname.success": "Your Chat Name has been set to:\n%s\n\nThis will appear at the start of every chat title set using /t or /title." + + + /* --------------------------------------------------------------------- + JoinVerify - Used for /JoinVerify + --------------------------------------------------------------------- */ + # ⚠️ IMPORTANT + "joinverify.callbacks": { + "correctAnswerText": "Correct! %s more to go..." + "incorrectAnswerText": "Wrong. 3 more to go..." + "success": "Success!\n\nGood work human, you can now chat in: %s" + "successAnswerText": "Success! You can chat in %s now..." + "manuallyTrusted": "%s has manually trusted %s." + "manuallyTrustedAnswerText": "User Trusted" + "expired": "This Verify Request has Expired.\n\nYou may have been manually banned or trusted by the admins of the group. Or, this is a very old request." + "expiredAnswerText": "Verify Request Expired" + + "settingsUnavailable": "Join Verify is not enabled right now, enable it first to change settings:" + "setTimeLimit": "Choose a Time Limit for Join Verify\n\nHow many minutes should unverified members be allowed, before being banned?" + "setTimeLimitAnswerText": "Select a Value" + "timeLimitChanged": "Join Verify Time Limit changed from %s to %s by %s" + # ℹ️ NOTE: Signatures are used for intelligent text switching. MUST be a uniquely identifiable portion of the full text, + # and NOT contain any formatting or assume the value of any dynamic values. + "timeLimitChangedSignature": "Join Verify Time Limit changed from " + "timeLimitChangedAnswerText": "New Settings Saved" + } + + # ⚠️ IMPORTANT + "joinverify.generateCaptcha.tapMatchingEmojiBelow": "Tap The Matching Emoji Below:" + "joinverify.imageText": { + "successTop": "Confirmed" + "successBottom": "Human" + "errorTop": "Something Went" + "errorBottom": "Wrong" + } + + # ⚠️ IMPORTANT + "joinverify.joinevents.joinVerifyAddedByAdmin": "Join Verify is enabled but %s was added by %s, so they don't need to verify themselves." + "joinverify.joinevents.userVerify": "Hey %s welcome to %s.\n\nTo chat, tap the \"Verify\" button and then \"Start\":" + "joinverify.joinevents.userVerifyTimed": "Hey %s welcome to %s.\n\nTo chat, tap the \"Verify\" button and then \"Start\". Otherwise, you will be banned in %s minutes:" + "joinverify.joinevents.botVerify": "%s is a bot.\n\nAn admin can press \"Trust\" below to allow it to send messages:" + "joinverify.joinevents.botVerifyTimed": "%s is a bot.\n\nAn admin can press \"Trust\" below to allow it to send messages, otherwise it'll be banned in %s minutes." + "joinverify.joinevents.userVerified": "%s has verified themselves as human." + + # ⚠️ IMPORTANT + "joinverify.preverify.callbacks": { + "success": "Click the temporary Invite Link below to join the group:\n%s\n\nif you were banned from this group, you will not be able to join" + "successAnswerText": "Success! Use the Invite Link to Join!" + "memberCount": "This group currently has %s members" + } + + "joinverify.preverify.error.preVerifyInvalid": "The PreVerify Invite Link is invalid or the group has disabled JoinVerify." + "joinverify.preverify.error.joinLockEnabled": "This group currently has JoinLock enabled, please try again later." + "joinverify.preverify.error.alreadyVerified": "You have previously verified yourself as human.\n\n%s" + "joinverify.preverify.error.notAvailable": "Join Verify is not enabled right now, it must be enabled before you can use PreVerify:" + + "joinverify.preverify.steps": { + "one": "✴️ 1. Forward the above (replied to) message to a Public Channel where %s is an admin.\n2. Tap or right-click the forwarded message and Copy Link\n3. Send the copied public link to this chat.\n\nThe link should look like this:\nhttps://t.me/CalsiBotDev/99999" + "oneError.noVerificationString": "❌ Couldn't find the required verification string in the post. Make sure the post you linked to is the ownership verification message you forwarded." + "oneError.urlFormat": "❌ The link you sent doesn't look right. It should look like this:\nhttps://t.me/CalsiBotDev/99999" + "oneError.targetIsNotChannel": "❌ The link you have provided is for a Public Group.\n\nPreVerify is designed for use with Public Channels only." + "oneError.cantSendPost": "❌ Could not send the message, please ensure %s is an admin with enough permissions in %s.%s" + "oneSuccess": "✅ Okay, posted successfully!\n\nSee https://t.me/%s/%s for the post!\n\nTo fully protect your group, you must revoke all previous Invite Links. You can do this by:\n1. Revoking your personal Invite Link\n2. Demoting and then re-promoting all of your admins (except for CalsiBot). This will revoke any Invite Links they have shared." + } + + "joinverify.preverify.imageText": { + "title": "To join the group:" + "stepOne": "Tap Verify, then Start" + "stepTwo": "Pass the test" + "stepThree": "Join the group!" + } + + "joinverify.preverify.main": "%s%s is protected by PreVerify." + "joinverify.preverify.verificationMessage": "This message is to verify ownership of this channel for CalsiBot's PreVerify feature.\n\n%s" + "joinverify.preverify.setUpCancelled": "PreVerify set up cancelled." + + + /* --------------------------------------------------------------------- + JoinLimit - Used for /JoinLimit + --------------------------------------------------------------------- */ + "joinlimit.joinevents.userLimited": "%s has been restricted %s because /JoinLimit is enabled." + "joinlimit.joinevents.userLimitedTimed": "%s has been restricted %s until %s (UTC) because /JoinLimit is enabled." + "joinlimit.joinevents.signature": " has been restricted " + + + /* --------------------------------------------------------------------- + Marry - Used for /Marry, /Divorce, etc. + --------------------------------------------------------------------- */ + "marry.marriage": "Marriage" + "marry.callbacks": { + "waitForDecisionAnswerText": "😶 You need to wait for %s to choose an option..." + "userNotInvolvedAnswerText": "🙄 Stop interfering with other people's relationships, %s." + + "proposalAccepted": "💝 %s and %s have married each other! 🎉\n(happened %s %s so far)\n\n%s\n\nSee your /MarryStats" + "proposalAcceptedAnswerText": "💝 Congratulations! 🎉" + "proposalRejected": "🤕 %s was rejected by %s\n(happened %s %s so far)\n\n%s\n\nSee your /MarryStats" + "proposalRejectedAnswerText": "🤕 Ouch." + } + + "marry.result.childPlural": { + "zero": "children" + "one": "child" + "other": "children" + } + "marry.result.housePlural": { + "zero": "houses" + "one": "house" + "other": "houses" + } + + "marry.result.bothGainedHappiness": "🙂 Both gained %s happiness each." + "marry.result.oneLostHappiness": "🙂 %s lost %s happiness." + + "marry.result.bothGainedChildren": "🥺 Both gained %s %s each." + "marry.result.oneTookChildrenFrom": "🥺 %s took %s %s from %s." + "marry.result.noChildrenGained": "🚫 No children gained this time." + + "marry.result.bothGainedHouses": "🏠 Both gained %s %s each." + "marry.result.oneTookHousesFrom": "🏠 %s took %s %s from %s." + "marry.result.noHousesGained": "🚫 No houses gained this time." + + "marry.result.bothGainedNetWorth": "💰 Both gained $%s each." + "marry.result.oneTookNetWorthFrom": "💰 %s took $%s from %s." + "marry.result.noNetWorthGained": "🚫 No net worth gained this time." + + "marry.help": "💍 Reply to someone you like with /marry to make it official." + + "marry.error.cooldown": "You must wait 1 minute between each time you check stats.\n\n%s" + + "marry.self": "You can't marry yourself, even if no one else wants to marry you..." + "marry.main": "💘 %s has proposed to you!" + "marry.CalsiBot": "Sorry, but I'm already married to my work... 🥺" + + "marry.divorce.help": "💔 Not feeling the love anymore? /divorce can be used to split up with people you've previously married." + + "marry.divorce.error.notMarried": "😐 You're not currently married to %s, so you can't divorce them..." + + "marry.divorce.self": "Did you mean:\n/kms" + "marry.divorce.main": "🖤 %s divorced %s\n(happened %s %s so far)\n\nMarried for: %s\n\n%s\n\nSee your /MarryStats" + "marry.divorce.CalsiBot": "Let's see what my lawyers say about that... 🤧" + + "marry.marrystats.error.noData": "🥺 %s has never been married." + "marry.marrystats.error.noMutualData": "😶 %s has never been married to %s." + + "marry.marrystats.CalsiBot": "Unlike you, CalsiBot is pure and has no marriage history." + + "marry.marrystats.own.information": "💖 %s – Marry Stats – 1️⃣:\n\n🙂 - Happiness: %s\n🥺 - Children: %s\n🏠 - Houses: %s\n💰 - Net Worth: $%s" + "marry.marrystats.own.marriages": "💖 %s – Marry Stats – 2️⃣:\n\n❤️ Marriages:\nRequests accepted most by %s\nRequests rejected most by %s\nMarried: %s | Rejected: %s" + "marry.marrystats.own.divorces": "💖 %s – Marry Stats – 3️⃣:\n\n🖤 Divorces:\nDivorced from %s most\nTotal: %s" + + + /* --------------------------------------------------------------------- + Permaban - Used for /Permaban, /UnPermaban + --------------------------------------------------------------------- */ + "permaban.permaban": "Permaban" + + "permaban.callbacks": { + "userPermabanned": "This user was Permabanned by %s" + "userPermabannedAnswerText": "User Permabanned" + "userAlreadyPermabanned": "This user is already Permabanned." + "userAlreadyPermabannedAnswerText": "User Already Permabanned" + + "userUnPermabanned": "This user was Un-Permabanned by %s" + "userUnPermabannedAnswerText": "User Un-Permabanned" + "userAlreadyNotPermabanned": "This user is already not Permabanned." + "userAlreadyNotPermabannedAnswerText": "User Already Not Permabanned" + } + + "permaban.replyHint": "Reply to the user who you want to permaban" + + + /* --------------------------------------------------------------------- + Restrict - Used for /restrict, /unrestrict, /unban + --------------------------------------------------------------------- */ + "restrict.restricted": "restricted" + + "restrict.callbacks": { + "restrictionsReset": "Restrictions were reset by %s" + "restrictionsUpdated": "Restrictions updated by %s" + "restrictCancelled": "/restrict cancelled by %s" + } + + "restrict.info": { + "messages": "Controls if the user can send any messages at all." + "media": "Controls if the user can send audio, documents, photos, videos, video notes, and voice notes." + "stickergifs": "Controls if the user can send animations, games, stickers, and use inline bots." + "linkpreviews": "Controls if the user can add link previews to their messages." + } + + "restrict.types": { + "messages": "from sending any Messages here" + "media": "from sending any Media messages here" + "stickergifs": "from sending any Stickers or GIFs here" + "linkpreviews": "from adding any Link Previews to their messages" + } + + "restrict.success": "%s has now been restricted %s by %s" + "restrict.successTimed": "%s has now been restricted %s until %s (UTC) by %s" + "restrict.replyHint": "Reply to the user whose restrictions you want to edit" + + "restrict.main": "Use the toggles below to choose what %s can send here:" + "restrict.mainTimed": "Use the toggles below to choose what %s can send here:\n\nThe restrictions will automatically expire on:\n%s %s" + + + /* --------------------------------------------------------------------- + Warn - Used for /warn, /Warns, /MyWarns + --------------------------------------------------------------------- */ + "warn.warned": "warned" + "warn.checkWarnsOf": "check the warns of" + + "warn.callbacks": { + "warnRemovedBy": "Warn was removed by %s" + "warnRemovedAnswerText": "Warn Removed!" + "noWarns": "This user doesn't currently have any warns" + "noWarnsToRemoveAnswerText": "No Warns to Remove" + "noWarnsToShowAnswerText": "No Warns to Show" + "previousWarns": "This user's warns:" + "previousWarnsAnswerText": "Previous Warns Loaded" + "confirmRemoveAllWarns": "Are you sure you want to remove all of this user's warns?" + "confirmRemoveAllWarnsAnswerText": "Are You Sure?" + "allWarnsRemovedBy": "All of this user's previous warns have been removed by %s" + "allWarnsRemovedAnswerText": "Previous Warns Removed" + "chooseMaxWarnsValue": "At which number of warns should a user be banned?" + "chooseMaxWarnsValueAnswerText": "Select a Value" + "maxWarnsValueChangedBy": "Max Warn changed from %s to %s by %s" + "maxWarnsValueChangedAnswerText": "New Max Warn Set" + } + + "warn.noReasonGiven": "No reason given" + + "warn.replyHint": "Reply to the user who you want to warn, e.g:\n\n/warn, or\n/warn <reason here>" + + "warn.success": "%s was warned by %s.%s\n\n%s out of %s warns" + "warn.userBanned": "%s was banned. Reached %s out of %s warns" + "warn.myWarns": "Warns for %s:" + "warn.noWarns": "No warns, pretty smart." + + + /* --------------------------------------------------------------------- + Start - Used for /start + --------------------------------------------------------------------- */ + # ⚠️ IMPORTANT + "start.error.JoinVerifyWrongUser": "That button wasn't meant to be pressed by you.\n\nBut hey, now that you're here:" + "start.error.JoinVerifyExpired": "Sorry, your Join Verify Request has expired.\n\nPlease re-join the group and try again." + "start.main": + ''' + Hey %s, I'm %s! + + ✴️ I keep your group safe from evil and also have tons of other cool features like translations. + + Most used Group Admin tools: + /JoinVerify + /restrict, /warn, /JoinLock, and /JoinLimit + + See other commands: + /ListCommands + ''' + + + /* --------------------------------------------------------------------- + Misc - A mix of other commands + --------------------------------------------------------------------- */ + "misc.boi.self": "Imagine unironically trying to /boi yourself..." + "misc.boi.main": "You have been visited by the mighty hand of roasts. Go to your corner and think about the bullshit you've said." + "misc.boi.CalsiBot": "boiii, do you even know what you just tried to do!? 😡😤" + + "misc.denko.main": + ''' + (´・ω・`) + ''' + + "misc.huh.main": "huh" + + "misc.judge.main.truth": "%s is telling the truth." + "misc.judge.main.lying": "%s is lying!" + "misc.judge.CalsiBot": "I am beyond judgement." + + "misc.coin.main.heads": "%s flipped a coin!\n\nIt's heads!" + "misc.coin.main.tails": "%s flipped a coin!\n\nIt's tails!" + + "misc.covfefe.tooLong": "❌ Too long. ☕😐" + "misc.covfefe.replyHint": "Reply to the message you want to covfefe!" + + "misc.spurdo.tooLong": "❌ too lonk :dd 🥺" + "misc.spurdo.replyHint": "reply to de meszage you wand to spurdo-fy :DD" + + "misc.listcommands.main": + ''' + Almost every CalsiBot command: + + Comfy Commands: + /hug, /cuddle, /snuggle, /ruffle + /pat, /poke, /highfive + + Games: + /fish, /marry, /divorce + + Game Commands: + /slap, /wish, /judge, /coin (/flip) + /roll, /dox + /kms, /kys, /kos + + Group Admin Commands: + /kick, /kickme, /ban, /permaban + /mute (/restrict), /unrestrict (/unban), /warn + /pin, /unpin, /title, /chatname, /pfp + /SetWelcome, /RemoveWelcome + /JoinLimit, /JoinLock + /JoinVerify, /PreVerify + + Text Modification Commands: + /covfefe, /spurdo, /emojify + + Other: + /boi, /denko, /huh + /name, /me, /edgy + "sed" (text switching/replacement) + + Useful Functions: + /stickers, @admin, /language + /translate (/tr), /when, /count + ''' + + # ℹ️ Example: It's + # Alex Wayne" + "misc.name.main": "It's:\n%s" + + "misc.me.main": + ''' + Info Card for %s: + + Username: %s + User ID: %s + Chat ID: %s + ''' + + "misc.wish.help": + ''' + You can use /wish as a general Wishing Well of sorts + + For example: + /wish I could date you 😍, or + /wish that sushi was 🍣 in /emojify, or + /wish I had someone to /cuddle at night... + ''' + + "misc.wish.main": "Your wish has been cast. ✨\n\nchance of success: %s%" + + "misc.adminmode.help": "Admin Mode allows you to disable all CalsiBot commands that are not related to Group Administration" + "misc.adminmode.sorry": "Sorry, Admin Mode is Enabled so you can't use this command here...\n\n%s" + + "misc.sedreplace.main": "Did you mean:" + + "misc.pfp.help": "Reply to a compressed image (not sent as a file) which you want to set as the group profile picture" + + "misc.slap.CalsiBot": "You can't slap me, that's just not how this works..." + + "misc.when.forwardMain": "📅 Originally posted on %s at %s (UTC)\n\n⏳ That's %s ago." + "misc.when.otherMain": "⏳ This message was sent %s ago." + "misc.when.otherEdit": "\n\n✏️ Last edited %s ago." + "misc.when.help": "Reply to any message to see how long it's been since it was posted - down to the second.\n\nFor forwarded messages, I'll tell you when the original message was first posted." + + "misc.count.main": "Since being made, this supergroup has had %s messages in total, including yours" + + "misc.pin.help": "/pin allows you to easily set, or change the chat's pin without stupid menus\n\nStill unsure how to use it? Tap the button below to see an example:" + "misc.pin.main": "Reply to a compressed image (not sent as a file) which you want to set as the group profile picture" + + # ℹ️ Example: Couldn't find any\n- non-animated sticker 😕\n\nTry again with a different message. + "misc.fileIDSearch.error.noUsableFileFound": "Couldn't find any:\n%s. 😕\n\nTry again with a different message." + + # ℹ️ Example: Come over here, get on your knees, and translate this 😏 + "misc.knees.main": "Come over here, get on your knees, and %s this %s" + + + /* --------------------------------------------------------------------- + Language - Used for /language + --------------------------------------------------------------------- */ + # ℹ️ NOTE: This should be the native name of the language. + "language.name": "English" + "language.main": "Your language is currently set to:\n%s" + "language.credit": "This translation is made possible by the hard work of the following people:\n" + # ℹ️ NOTE: The contributors string should NOT be changed by anyone other than me, or those who are already listed + # as contributors. + # + # By default, let's use id-mentions here instead of usernames for privacy reasons, but if you'd prefer to + # be credited by username or something else, feel free to change your tag here - or ask me to do it. + # + # This list of names should be in order of contribution size and frequency, taking into account age of last + # contribution. + "language.credit.activeContributors": "Calsï" + + "language.callbacks": { + "chooseYourLanguage": "Choose your language:" + "changedBy": "Language changed from %s to %s by %s" + "changedByAnswerText": "Language Changed" + "languageAlreadySetAnswerText": "%s is the already set as the group language" + } + + + /* --------------------------------------------------------------------- + Emojify - Used for /emojify + --------------------------------------------------------------------- */ + "emojify.error.tooLong": "❌ Too long. 🍆😐" + "emojify.error.replyToHuman": "Nah 🚫 fam 😂\n\nReply 💬 to a human 👤" + "emojify.replyHint": "🙈 Reply 💬 to the 👏 text 📲 you 👈 want 👏 to emojify!" + + + /* --------------------------------------------------------------------- + Translate - Used for /tr, /translate + --------------------------------------------------------------------- */ + "translate.error.notALanguage": "Sorry, '%s' is not a language, or isn't supported" + "translate.replyHint": "Reply to the text you want to translate!" + + + /* --------------------------------------------------------------------- + Roll - Used for /roll + --------------------------------------------------------------------- */ + "roll.singlesArray": [ + "Singles :(" + ":( single, like you." + "._." + "REEEEEEEEE" + "rip u" + "(((they))) did this" + "feelsbadman.gaypg" + ] + + # ℹ️ Example: You Got Septuples! + "roll.main": "You Got %s" + + + /* --------------------------------------------------------------------- + Dox - Used for /dox + --------------------------------------------------------------------- */ + "dox.result": + ''' + Dox of %s: + +
Gender: %s
+  Date of Birth: %s
+  Address: %s, %s
+  Job: %s
+
+  Current IP: %s
+  SSN: %s
+  Phone Number: %s
+ ''' + + "dox.gendersArray": [ + "boy" + "girl" + "e-boy" + "e-girl" + "thot" + "whore" + "fuckboy" + "idk 😳" + ] + + + /* --------------------------------------------------------------------- + AtAdmin - Used for @admin, @admins + --------------------------------------------------------------------- */ + # ℹ️ NOTE: The last %s may look useless here, but it will hold the 'mentions' to the group's admins + "atAdmin.main": "%s has summoned admins to look at this message.%s" + + "atAdmin.callbacks": { + "chooseAction": "Select the actions you want to take with the toggles below:" + "chooseActionAnswerText": "Select An Action" + "ignoreAnswerText": "Report Ignored" + "actionTakenAnswerText": "The actions you selected have been taken" + } + + "atAdmin.info": { + "delete": "Should the reported message be deleted? Note that bots are unable to delete messages older than 48h..." + "ban": "Should the reported user be banned?" + } + + + /* --------------------------------------------------------------------- + Stickers - Used for all /sticker commands + --------------------------------------------------------------------- */ + "stickers.defaultPackTitle": "%s's Favorites" + "stickers.acceptableFileTypes": "- compressed photo,\n- uncompressed photo (<15 MB),\n- non-animated sticker" + "stickers.main": "Create, Manage and Add to Sticker Packs with the following commands:\n\n/newpack — make a new pack\n/listpacks — list your packs and their IDs\n/removepack — unlink a pack from CalsiBot\n\n/addsticker — add image or sticker to a pack\n/deletesticker — delete sticker from a pack\n\nExpert usage:\n\n/addsticker 3 — add image or sticker to pack with ID 3\n/addsticker 🥳🙂😉 — create sticker and suggest it when using any of these three emoji\n/addsticker 3 🥳🙂😉 — create sticker and add to pack 3, suggest it when using any of these three emoji" + "stickers.beingAdded": "⏳ Your sticker is being added, please wait..." + "stickers.beingAddedQueued": "⏳ Your sticker will be added in %s, please wait..." + "stickers.beingAddedSuccess": "🥳 Your sticker has been added!\n\nif you don't see it, remove and re-add the Sticker Pack:" + "stickers.beingDeleted": "This sticker has been removed.\n\nit may take up to 2 minutes to disappear:" + "stickers.letsCreateAPackInPrivate": "Sticker Packs must be created in private, let's go:" + "stickers.removeOnlyInPrivate": "Sticker Packs can only be removed in private, let's go:" + "stickers.seeAllCommandsHint": "Send /stickers to see all commands and info." + "stickers.whichPackShouldBeAddedTo": "Which pack should the sticker be added to?\n\n%s" + + "stickers.callbacks": { + "confirmStickerPackCreate": "Your Sticker Pack will have the following title:\n\n%s\n\n⚠️ You will not be able to change this later.\n\nPress Cancel to choose a different title." + "cancelStickerPackCreate": "Okay, choose a different title and try again. For example:\n\n/newpack %s" + "stickerPackCreateSuccess": "Your Sticker Pack has been created!\n\nYou can now reply to images and stickers with /addsticker to add them to your pack\n\n%s" + "confirmStickerPackRemove": "⚠️ Your Sticker Pack will be disconnected from CalsiBot.\n\nYou won't be able to update this pack with CalsiBot ever again.\n\nAre you sure you want to remove this pack?" + "cancelStickerPackRemove": "Okay, pack was not removed." + "stickerPackRemoveSuccess": "Your Sticker Pack has been removed from CalsiBot.\n\nTo fully delete it, talk to @Stickers" + "cancelAddEmojiToMessage": "Okay, you can specify a different emoji yourself. For example:\n\n%s" + } + + "stickers.listPacks": "Your Packs:\n\n%s\n\n%s" + "stickers.listPacksFill": "%s — %s" + "stickers.validStickerPacksAre": "Valid Sticker Pack IDs are:\n%s" + + "stickers.error": { + "noTitleGiven": "You must specify a title. For example:\n\n/%s %s" + "noPackGiven": "You must specify a pack. For example:\n/%s %s\n\n%s" + "noEmojiGiven": "Please choose an emoji below\n\nPress Cancel to specify your own:\n%s" + "noStickerPacks": "You don't have any Sticker Packs.\n\n%s" + "specifiedPackDoesNotExist": "Could not find Sticker Pack %s\n\n%s" + "packLimitReached": "You have reached the limit of %s Sticker Packs.\n\nIf you want to make a new pack, you must use /removepack to remove one first." + "addStickerReplyHint": "Reply to an image or sticker which you want to add to a sticker pack." + "deleteStickerReplyHint": "Reply to a sticker from one of your packs which you want to delete." + } + + + /* --------------------------------------------------------------------- + Herd - Used for /herd, /hkick, /hban, /hunban + --------------------------------------------------------------------- */ + "herd.join.main": "Your Herd Join Request has been generated. It will only last for a short time.\n\nSend this message to a Herd admin who must accept you by sending the command below in the Herd HQ chat:\n/herd join %s" + "herd.join.success": "Your Herd request has been accepted! This group is now a member of this Herd:\n%s\n\n⚖️ A public record of this Herd's data can be found on GitHub here.\n\nActions Herd admins take will overrule your admin's decisions.\n\nYou can /herd leave at any time.%s" + "herd.join.hq.success": "%s has now been added to this Herd.\n\nThere are now %s Herd members." + "herd.join.error": { + "alreadyInHerd": "This group is already a member of this Herd:\n%s\n\nYou must /herd leave to join a new Herd." + "invalidHerd": "The Herd you provided does not exist, or you didn't provide a Herd. Your command should look like this:\n/herd join herd-id-here" + "invalidToken": "The token you provided has expired, or you didn't provide a token.\n\nThis group owns a Herd, so it can use /herd join token-here to accept other groups into the Herd.\n\nOther groups who want to join your Herd can send:\n/herd join %s to generate their token." + "memberLimit": "This Herd:\n%s\n\nHas reached the maximum number of allowed members (25). Other members must leave before you can join." + } + + "herd.leave.success": "This group is no longer a member of this Herd:\n%s\n\nYou can /herd join herd-id-here a different Herd at any time." + + "herd.create.main": "⚠️ Read all of the following text:\n\n- It is highly recommended that you make a new group to serve as the base for your Herd!\n- This allows you to manage Herd admins completely independently of any existing group structures you have.\n\nIf you are already sending this command in a new group, then send the following command to create your Herd:\n/herd create %s" + "herd.create.success": "Success! This group now owns and is a member of this Herd:\n%s%s" + "herd.create.successGuidance": "\n\nA public record of this Herd's data will be uploaded to GitHub here.\n\nPeople in this group who can ban users, will be able to use /hban and /hunban in this group and any other that is a member of this Herd.\n\nYou must respect the people who join your Herd by appointing good admins, and not abusing trust." + "herd.create.error": { + "alreadyInHerd": "This group is already a member of this Herd:\n%s\n\nYou must /herd leave to establish a new Herd that this group owns." + } + + "herd.orphan.main": "⚠️ Orphaning a Herd is serious! Here are some recent statistics for your Herd:\n\nHerd Members: %s\nTotal Bans: %s\n\nSend the following command to confirm:\n/herd orphan %s\n\nIf you'd still like to go forward with orphaning this Herd:\n%s" + "herd.orphan.success": "This group has orphaned this Herd:\n%s" + + "herd.main": "Herds allow you to link together groups you own or groups with similar rules and share kicks, bans, and unbans between all of them, seamlessly.\n\n/herd join herd-id-here - join a Herd\n/herd leave - leave your current Herd\n/herd create - create a new Herd\n/herd orphan - abandon a Herd you created" + "herd.error": { + "cooldown": "A previous Herd action is still being processed for this user, please try again in a while." + "notInHerd": "This group is not in a Herd, so this command can't be used." + "isHerdOwner": "This group owns and is a member of this Herd:\n%s\n\nIf you'd like to make a new Herd and abandon this one, you can use:\n/herd orphan." + "isNotHerdOwner": "This group is not the owner of this Herd:\n%s." + "hqChatNotAccessible": "⚠️ Something is wrong. Please ensure that %s is both a member and admin of the Herd HQ chat.\n\nIf this error keeps occuring, the Herd has probably been adandoned and it is recommended that you:\n/herd leave" + } + + "herd.ban": { + "ban.main": "%s will be banned across all groups in the Herd below, where they are not an admin:\n%s\n\nUse /hunban to undo" + "ban.hq.main": "%s has banned %s\n\nReason:\n%s" + "unban.main": "%s will be unbanned across all groups in Herd:\n%s\n\nUse /hban to undo" + "unban.hq.main": "%s has unbanned %s\n\nReason:\n%s" + } + "herd.ban.error": { + "alreadyBanned": "This user is already banned in Herd:\n%s" + "alreadyNotBanned": "This user is already not banned in Herd:\n%s" + "userIsHerdAdmin": "You can't do anything to %s in this Herd because they're a member of its Herd HQ chat." + "reasonMandatory": "You must provide a reason for Herd actions, for example:\n/%s reason here" + "needToBeAdminAttachment": "\n\nIn Herd:\n%s" + } +} From d4afc626a3f6e62a048ffff2eec568d11a1eb7b3 Mon Sep 17 00:00:00 2001 From: arthursiq5 Date: Fri, 10 Sep 2021 13:23:34 -0300 Subject: [PATCH 02/32] =?UTF-8?q?Realizadas=20tradu=C3=A7=C3=B5es=20simple?= =?UTF-8?q?s=20de=20frases=20curtas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ptbr.hjson | 130 ++++++++++++++++++++++++++--------------------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/ptbr.hjson b/ptbr.hjson index 0ef34ae..348a82a 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -30,16 +30,16 @@ "featureEnabledAnswerText": "%s enabled" "featureAlreadyEnabled": "%s is already enabled" "featureAlreadyEnabledAnswerText": "%s Already enabled" - "featureDisabledBy": "%s disabled by %s" + "featureDisabledBy": "%s desabilitado por %s" "featureDisabledAnswerText": "%s disabled" - "featureAlreadyDisabled": "%s is already disabled" - "featureAlreadyDisabledAnswerText": "%s Already disabled" + "featureAlreadyDisabled": "%s já está desabilitado" + "featureAlreadyDisabledAnswerText": "%s Já desabilitado" "joinLimitRestrictionsReset": "This user had their /JoinLimit restrictions reset by %s" "joinLimitRestrictionsResetAnswerText": "Restrictions Reset!" "joinLockExceptionAdded": "This user has been granted a one-time join exception by %s\n\nThe next time the user joins, I will not remove them." - "joinLockExceptionAddedAnswerText": "Exception Added" + "joinLockExceptionAddedAnswerText": "Exceção Adicionada" "chatNameRemoved": "Chat Name Removed by %s" "chatNameRemovedAnswerText": "Chat Name Removed" @@ -57,20 +57,20 @@ } "generic.buttons": { - "whatIsThis": "❓ What Is This?" - "whatIsThisShort": "❓ What?" - "imSorry": "😭 I'm Sorry!" + "whatIsThis": "❓ O Quê é Isto?" + "whatIsThisShort": "❓ O Quê?" + "imSorry": "😭 Me Desculpe!" "joinChannel": "👋 Join Channel" - "addToGroup": "🔱 Add To Group" + "addToGroup": "🔱 Adicionar A Grupo" "tapToVerify": "🤖 Tap to Verify 🤖" - "banUser": "Ban User" - "banBot": "Ban Bot" - "allowUser": "Allow User" - "trustUser": "Trust User" - "trustBot": "Trust Bot" - "unbanUser": "Unban User" + "banUser": "Banir Usuário" + "banBot": "Banir Bot" + "allowUser": "Permitir Usuário" + "trustUser": "Confiar em Usuário" + "trustBot": "Confiar em Bot" + "unbanUser": "Desbanir Usuário" "settings": "⚙️ Configurações" @@ -88,7 +88,7 @@ "remove": "❌ Remover" "removeAllWarns": "❌ Remove All Warns" "history": "📚 Histórico" - "setMax": "🔢 Set Max" + "setMax": "🔢 Definir Máximo" "back": "⬅️ Back" "messages": "Mensagens" @@ -99,7 +99,7 @@ "cancel": "❌ Cancelar" "seeExample": "👀 Ver Exemplo" - "seeGroupInfo": "See Group Info" + "seeGroupInfo": "Ver Informações do Grupo" "marryAccept": "🥰 Aceitar" "marryReject": "😒 Rejeitar" @@ -208,23 +208,23 @@ "doEverything": "do everything, including adding new admins" } - "generic.loaded": "Loaded" - "generic.loadingEllipsis": "Loading..." - "generic.disabled": "Disabled" - "generic.enabled": "Enabled" - "generic.cancelled": "Cancelled" - "generic.currently": "Currently" + "generic.loaded": "Carregado" + "generic.loadingEllipsis": "Carregando..." + "generic.disabled": "Desabilitado" + "generic.enabled": "Habilitado" + "generic.cancelled": "Cancelado" + "generic.currently": "Atualmente" "generic.gaming": "Gaming" - "generic.nobody": "Nobody" - "generic.none": "None" - "generic.note": "Note" - "generic.reasonColon": "Reason:" - "generic.deleteQuestion": "Delete?" - "generic.banQuestion": "Ban?" - "generic.and": " and " + "generic.nobody": "Ninguém" + "generic.none": "Nenhum" + "generic.note": "Nota" + "generic.reasonColon": "Razão:" + "generic.deleteQuestion": "Deletar?" + "generic.banQuestion": "Banir?" + "generic.and": " e " # ℹ️ Example: Exception was added by an admin. - "generic.anAdmin": "an admin" + "generic.anAdmin": "um admin" # ℹ️ Example: Fishing is always allowed in private :) "generic.featureAlwaysAllowedInPrivate": "%s is always allowed in private :)" @@ -347,8 +347,8 @@ 🎣 %s – Fish: 🐡 - Blowfish: %s - 🐟 - Normal Fish: %s - 🐠 - Tropical Fish: %s + 🐟 - Peixe Normal: %s + 🐠 - Peixe Tropical: %s 🦀 - Caranguejo: %s 🦑 - Squid: %s 🐬 - Golfinho: %s @@ -356,13 +356,13 @@ 🐊 - Crocodilos: %s 🐳 - Baleias: %s - 🐠🦑🐊 - All Fish: %s + 🐠🦑🐊 - Todos Os Peixes: %s /TrophyFish ||| /Fish ''' "trophy.types": { - "firstfish": "\n%s<%s> - First Fish!" + "firstfish": "\n%s<%s> - Primeiro Peixe!" "1000fish": "\n%s<%s> - One Thousand Fish" "5000fish": "\n%s<%s> - Five Thousand Fish" "10000fish": "\n%s<%s> - Ten Thousand Fish" @@ -424,16 +424,16 @@ # ℹ️ NOTE: Signatures are used for intelligent text switching. MUST be a uniquely identifiable portion of the full text, # and NOT contain any formatting or assume the value of any dynamic values. "timeLimitChangedSignature": "Join Verify Time Limit changed from " - "timeLimitChangedAnswerText": "New Settings Saved" + "timeLimitChangedAnswerText": "Novas Configurações Salvas" } # ⚠️ IMPORTANT "joinverify.generateCaptcha.tapMatchingEmojiBelow": "Tap The Matching Emoji Below:" "joinverify.imageText": { - "successTop": "Confirmed" - "successBottom": "Human" + "successTop": "Confirmado" + "successBottom": "Humano" "errorTop": "Something Went" - "errorBottom": "Wrong" + "errorBottom": "Errado" } # ⚠️ IMPORTANT @@ -500,14 +500,14 @@ } "marry.result.childPlural": { - "zero": "children" - "one": "child" - "other": "children" + "zero": "filhos" + "one": "filho" + "other": "filhos" } "marry.result.housePlural": { - "zero": "houses" - "one": "house" - "other": "houses" + "zero": "casas" + "one": "casa" + "other": "casas" } "marry.result.bothGainedHappiness": "🙂 Both gained %s happiness each." @@ -574,7 +574,7 @@ /* --------------------------------------------------------------------- Restrict - Used for /restrict, /unrestrict, /unban --------------------------------------------------------------------- */ - "restrict.restricted": "restricted" + "restrict.restricted": "restrito" "restrict.callbacks": { "restrictionsReset": "Restrictions were reset by %s" @@ -607,7 +607,7 @@ /* --------------------------------------------------------------------- Warn - Used for /warn, /Warns, /MyWarns --------------------------------------------------------------------- */ - "warn.warned": "warned" + "warn.warned": "avisado" "warn.checkWarnsOf": "check the warns of" "warn.callbacks": { @@ -751,7 +751,7 @@ "misc.adminmode.help": "Admin Mode allows you to disable all CalsiBot commands that are not related to Group Administration" "misc.adminmode.sorry": "Sorry, Admin Mode is Enabled so you can't use this command here...\n\n%s" - "misc.sedreplace.main": "Did you mean:" + "misc.sedreplace.main": "Você quis dizer:" "misc.pfp.help": "Reply to a compressed image (not sent as a file) which you want to set as the group profile picture" @@ -778,8 +778,8 @@ Language - Used for /language --------------------------------------------------------------------- */ # ℹ️ NOTE: This should be the native name of the language. - "language.name": "English" - "language.main": "Your language is currently set to:\n%s" + "language.name": "Português" + "language.main": "Seu idioma está atualmente definido como:\n%s" "language.credit": "This translation is made possible by the hard work of the following people:\n" # ℹ️ NOTE: The contributors string should NOT be changed by anyone other than me, or those who are already listed # as contributors. @@ -792,17 +792,17 @@ "language.credit.activeContributors": "Calsï" "language.callbacks": { - "chooseYourLanguage": "Choose your language:" - "changedBy": "Language changed from %s to %s by %s" - "changedByAnswerText": "Language Changed" - "languageAlreadySetAnswerText": "%s is the already set as the group language" + "chooseYourLanguage": "Escolha seu idioma:" + "changedBy": "Idioma alterado do %s para o %s por %s" + "changedByAnswerText": "Idioma alterado" + "languageAlreadySetAnswerText": "%s já está definido como o idioma do grupo" } /* --------------------------------------------------------------------- Emojify - Used for /emojify --------------------------------------------------------------------- */ - "emojify.error.tooLong": "❌ Too long. 🍆😐" + "emojify.error.tooLong": "❌ Muito longo. 🍆😐" "emojify.error.replyToHuman": "Nah 🚫 fam 😂\n\nReply 💬 to a human 👤" "emojify.replyHint": "🙈 Reply 💬 to the 👏 text 📲 you 👈 want 👏 to emojify!" @@ -810,7 +810,7 @@ /* --------------------------------------------------------------------- Translate - Used for /tr, /translate --------------------------------------------------------------------- */ - "translate.error.notALanguage": "Sorry, '%s' is not a language, or isn't supported" + "translate.error.notALanguage": "Desculpe, '%s' não é um idioma, ou não possui suporte" "translate.replyHint": "Reply to the text you want to translate!" @@ -838,23 +838,23 @@ ''' Dox of %s: -
Gender: %s
-  Date of Birth: %s
-  Address: %s, %s
-  Job: %s
+  
Gênero: %s
+  Data de nascimento: %s
+  Endereço: %s, %s
+  Emprego: %s
 
-  Current IP: %s
+  IP Atual: %s
   SSN: %s
-  Phone Number: %s
+ Número de Telefone: %s
''' "dox.gendersArray": [ - "boy" - "girl" + "garoto" + "garota" "e-boy" "e-girl" - "thot" - "whore" + "puta" + "vadia" "fuckboy" "idk 😳" ] From 6329648ca99b33387a3b0c980b6384a9374e311d Mon Sep 17 00:00:00 2001 From: arthursiq5 <43865533+arthursiq5@users.noreply.github.com> Date: Sat, 11 Sep 2021 15:01:37 -0300 Subject: [PATCH 03/32] Traduzido featureEnabledBy --- ptbr.hjson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ptbr.hjson b/ptbr.hjson index 348a82a..d0baf58 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -26,7 +26,7 @@ "userUnbannedAnswerText": "Usuário Desbanido" # ℹ️ Example: /JoinVerify enabled by Andy - "featureEnabledBy": "%s enabled by %s" + "featureEnabledBy": "%s habilitado por %s" "featureEnabledAnswerText": "%s enabled" "featureAlreadyEnabled": "%s is already enabled" "featureAlreadyEnabledAnswerText": "%s Already enabled" From a3127b496dc1b14f501d115da5c875d7c5ed6330 Mon Sep 17 00:00:00 2001 From: arthursiq5 Date: Sat, 11 Sep 2021 15:14:52 -0300 Subject: [PATCH 04/32] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20de=20mensagens=20de?= =?UTF-8?q?=20casamento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ptbr.hjson | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ptbr.hjson b/ptbr.hjson index d0baf58..2b3edee 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -488,15 +488,15 @@ /* --------------------------------------------------------------------- Marry - Used for /Marry, /Divorce, etc. --------------------------------------------------------------------- */ - "marry.marriage": "Marriage" + "marry.marriage": "Casamento" "marry.callbacks": { - "waitForDecisionAnswerText": "😶 You need to wait for %s to choose an option..." - "userNotInvolvedAnswerText": "🙄 Stop interfering with other people's relationships, %s." + "waitForDecisionAnswerText": "😶 Você tem que esperar por %s para escolher uma opão..." + "userNotInvolvedAnswerText": "🙄 Pare de interferir nos relacionamentos de outras pessoas, %s." - "proposalAccepted": "💝 %s and %s have married each other! 🎉\n(happened %s %s so far)\n\n%s\n\nSee your /MarryStats" - "proposalAcceptedAnswerText": "💝 Congratulations! 🎉" - "proposalRejected": "🤕 %s was rejected by %s\n(happened %s %s so far)\n\n%s\n\nSee your /MarryStats" - "proposalRejectedAnswerText": "🤕 Ouch." + "proposalAccepted": "💝 %s e %s casaram entre si! 🎉\n(aconteceu %s %s tão rápido)\n\n%s\n\nVeja seu /MarryStats" + "proposalAcceptedAnswerText": "💝 Parabéns! 🎉" + "proposalRejected": "🤕 %s foi rejeitado por %s\n(aconteceu %s %s tão rápido)\n\n%s\n\nVeja seu /MarryStats" + "proposalRejectedAnswerText": "🤕 Ai." } "marry.result.childPlural": { From cd12b9dd17f80f674fb8217f201684cb6a879f31 Mon Sep 17 00:00:00 2001 From: arthursiq5 Date: Sat, 11 Sep 2021 15:20:24 -0300 Subject: [PATCH 05/32] =?UTF-8?q?Corre=C3=A7=C3=B5es=20diversas=20de=20tra?= =?UTF-8?q?du=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ptbr.hjson | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/ptbr.hjson b/ptbr.hjson index 2b3edee..f36dfe3 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -74,7 +74,7 @@ "settings": "⚙️ Configurações" - "resetRestrictions": "🤝 Reset Restrictions" + "resetRestrictions": "🤝 Redefinir Restrições" "yes": "✅ Sim" "no": "❌ Não" "enable": "✅ Habilitar" @@ -112,9 +112,9 @@ "changeLanguage": "🌐 Mudar Idioma" - "createPack": "📸 Create Pack" - "removePack": "💀 Remove Pack" - "viewPack": "🌆 View Pack" + "createPack": "📸 Criar Pacote" + "removePack": "💀 Remover Pacote" + "viewPack": "🌆 Ver Pacote" } # ℹ️ Note: For languages which don't use English numbers, these should be changed @@ -200,12 +200,12 @@ "generic.CalsiBotNotUsedAnymoreAnswerText": "Sorry, CalsiBot is either not used in the group anymore, or does not have enough permissions." "generic.permissionTypes": { - "changeGroupInfo": "change group info" - "banUsers": "ban users" - "deleteMessages": "delete messages" - "inviteUsers": "invite users" + "changeGroupInfo": "muda informações do grupo" + "banUsers": "bane usuários" + "deleteMessages": "excluir mensagens" + "inviteUsers": "convidar usuários" "pinMessages": "pin messages" - "doEverything": "do everything, including adding new admins" + "doEverything": "faz tudo, inclusive adicionar novos administradoresincluding adding new admins" } "generic.loaded": "Carregado" @@ -302,7 +302,7 @@ /* --------------------------------------------------------------------- Death - Used for /kys, /kms & /kos --------------------------------------------------------------------- */ - "death.CalsiBot": "I can't be killed ;)" + "death.CalsiBot": "Eu não posso ser morto ;)" # ℹ️ Example: Josie stabbed Kevin before they starved to death "death.kos": "%s stabbed %s before they %s" @@ -311,11 +311,11 @@ /* --------------------------------------------------------------------- Ban - Used for /ban, /kick, etc. --------------------------------------------------------------------- */ - "ban.kick.main": "%s was kicked." - "ban.kickme.main": "%s removed." - "ban.ban.main": "%s was banned." - "ban.deport.main": "%s was deported." - "ban.realdeport.main": "%s was deported, permanently." + "ban.kick.main": "%s foi kickado." + "ban.kickme.main": "%s removido." + "ban.ban.main": "%s foi banido." + "ban.deport.main": "%s foi deportado." + "ban.realdeport.main": "%s foi deportado, permanentemente." /* --------------------------------------------------------------------- @@ -339,14 +339,14 @@ "whale": "THE OCEAN SEEMS TO SINK DOWN...\n\nWith all of your strength, you reel in your catch!\nYou caught a Whale: 🐳" } - "fish.viewYourFish": "\n\nView your fish: /MyFish" - "fish.newTrophyFish": "\n\n🎉 You just earned a new\n/TrophyFish!" + "fish.viewYourFish": "\n\nVer seus peixes: /MyFish" + "fish.newTrophyFish": "\n\n🎉 Você acaba de ganhar um novo\n/TrophyFish!" "fish.myFish": ''' 🎣 %s – Fish: - 🐡 - Blowfish: %s + 🐡 - Baiacu: %s 🐟 - Peixe Normal: %s 🐠 - Peixe Tropical: %s 🦀 - Caranguejo: %s @@ -432,7 +432,7 @@ "joinverify.imageText": { "successTop": "Confirmado" "successBottom": "Humano" - "errorTop": "Something Went" + "errorTop": "Algo deu errado" "errorBottom": "Errado" } From bf6a035085739508b12ac0d8ff484d8a31acacd1 Mon Sep 17 00:00:00 2001 From: VasconsaBR <90463966+VasconsaBR@users.noreply.github.com> Date: Sat, 11 Sep 2021 17:46:45 -0300 Subject: [PATCH 06/32] Traduzi as linhas 64, 65 e 66 --- ptbr.hjson | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ptbr.hjson b/ptbr.hjson index f36dfe3..1f5363b 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -61,9 +61,9 @@ "whatIsThisShort": "❓ O Quê?" "imSorry": "😭 Me Desculpe!" - "joinChannel": "👋 Join Channel" + "joinChannel": "👋 Entrar no Canal" "addToGroup": "🔱 Adicionar A Grupo" - "tapToVerify": "🤖 Tap to Verify 🤖" + "tapToVerify": "🤖 Clique para Verificar 🤖" "banUser": "Banir Usuário" "banBot": "Banir Bot" From 861b099d6020b8cf21d93c503337e50e55fbbcc2 Mon Sep 17 00:00:00 2001 From: VasconsaBR <90463966+VasconsaBR@users.noreply.github.com> Date: Sat, 11 Sep 2021 18:06:30 -0300 Subject: [PATCH 07/32] Traduzi linhas 89, 92; 187-190; MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Consertei tradução das linhas 107, 108, 165. --- ptbr.hjson | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ptbr.hjson b/ptbr.hjson index 1f5363b..4c4785d 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -86,10 +86,10 @@ "unPermabanUser": "🤝 Desbanir permanentemente usuário" "remove": "❌ Remover" - "removeAllWarns": "❌ Remove All Warns" + "removeAllWarns": "❌ Remover todos os avisos" "history": "📚 Histórico" "setMax": "🔢 Definir Máximo" - "back": "⬅️ Back" + "back": "⬅️ Voltar" "messages": "Mensagens" "media": "Media" @@ -104,8 +104,8 @@ "marryAccept": "🥰 Aceitar" "marryReject": "😒 Rejeitar" - "continueFishing": "🎣 Continar Pescando" - "continueBuilding": "⚒ Continar Construindo" + "continueFishing": "🎣 Continuar Pescando" + "continueBuilding": "⚒ Continuar Construindo" "chooseAction": "🎭 Escolher Ação" "ignore": "🙈 Ignorar" @@ -162,7 +162,7 @@ "generic.dayPlural": { "zero": "dias" - "one": "diay" + "one": "dia" "other": "dias" } @@ -184,10 +184,10 @@ "other": "segundos" } - "generic.onlyInSupergroups": "Sorry, this command can only be used in Supergroups" - "generic.somethingWentWrongTryAgainLater": "Something went wrong, please try again later..." - "generic.rateLimit": "😡 Now ignoring new messages from %s for sending more than 3 command messages in less than 1 second. Please stop.\n\nExpires in a few minutes" - "generic.willNotSeeAgainForAWhile": "You will not see this message again for a while." + "generic.onlyInSupergroups": "Desculpe, este comando só pode ser usado em Supergrupos" + "generic.somethingWentWrongTryAgainLater": "Algo deu errado, tente novamente mais tarde..." + "generic.rateLimit": "😡 Agora, ignorando novas mensagens de %s por enviar mais de 3 mensagens de comando em menos de 1 segundo. Por favor, pare.\n\nExpira em alguns minutos" + "generic.willNotSeeAgainForAWhile": "Você não verá esta mensagem novamente por um tempo." # ℹ️ Example: Reply to the person you want to /slap "generic.replyToThePersonYouWantTo": "Reply to the person you want to %s" From 5cd1139f44aa2f528074eefdc04cbcc559542fb5 Mon Sep 17 00:00:00 2001 From: VasconsaBR <90463966+VasconsaBR@users.noreply.github.com> Date: Sat, 11 Sep 2021 23:33:02 -0300 Subject: [PATCH 08/32] =?UTF-8?q?Tradu=C3=A7=C3=A3o=20da=20linhas=20193-20?= =?UTF-8?q?0;=20217,=20230-236.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Correção das linhas 203-208; --- ptbr.hjson | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/ptbr.hjson b/ptbr.hjson index 4c4785d..9bf74a3 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -190,22 +190,22 @@ "generic.willNotSeeAgainForAWhile": "Você não verá esta mensagem novamente por um tempo." # ℹ️ Example: Reply to the person you want to /slap - "generic.replyToThePersonYouWantTo": "Reply to the person you want to %s" - "generic.needToReply": "You need to reply to someone." + "generic.replyToThePersonYouWantTo": "Responda para a pessoa que você quer %s" + "generic.needToReply": "Você precisa responder a alguém." - "generic.needToBeAdmin": "❌ Not allowed. You need to:\n\n1️⃣ Be an admin\n2️⃣ Have permission to %s" - "generic.needToBeAdminAnswerText": "❌ Not allowed. You need to:\n\n1️⃣ Be an admin\n2️⃣ Have permission to %s" - "generic.CalsiBotNeedsToBeAdmin": "❌ For this to work, %s has to:\n\n1️⃣ Be an admin\n2️⃣ Have permission to %s" - "generic.CalsiBotNotUsedAnymore": "Sorry, CalsiBot is either not used in the group anymore, or does not have enough permissions." - "generic.CalsiBotNotUsedAnymoreAnswerText": "Sorry, CalsiBot is either not used in the group anymore, or does not have enough permissions." + "generic.needToBeAdmin": "❌ Permissão negada. Você precisa:\n\n1️⃣ Ser um administrador\n2️⃣ Ter permissão para %s" + "generic.needToBeAdminAnswerText": "❌ Permissão negada. Você precisa:\n\n1️⃣ Ser um administrador\n2️⃣ Ter permissão para %s" + "generic.CalsiBotNeedsToBeAdmin": "❌ Para que isso funcione, %s tem que:\n\n1️⃣ Ser um administrador\n2️⃣ Ter permissão para %s" + "generic.CalsiBotNotUsedAnymore": "Desculpe, CalsiBot não é mais usado no grupo ou não tem permissões suficientes." + "generic.CalsiBotNotUsedAnymoreAnswerText": "Desculpe, CalsiBot não é mais usado no grupo ou não tem permissões suficientes." "generic.permissionTypes": { - "changeGroupInfo": "muda informações do grupo" - "banUsers": "bane usuários" + "changeGroupInfo": "mudar informações do grupo" + "banUsers": "banir usuários" "deleteMessages": "excluir mensagens" "inviteUsers": "convidar usuários" - "pinMessages": "pin messages" - "doEverything": "faz tudo, inclusive adicionar novos administradoresincluding adding new admins" + "pinMessages": "fixar mensagens" + "doEverything": "faz tudo, inclusive adicionar novos administradores" } "generic.loaded": "Carregado" @@ -214,7 +214,7 @@ "generic.enabled": "Habilitado" "generic.cancelled": "Cancelado" "generic.currently": "Atualmente" - "generic.gaming": "Gaming" + "generic.gaming": "Jogando" "generic.nobody": "Ninguém" "generic.none": "Nenhum" "generic.note": "Nota" @@ -227,13 +227,13 @@ "generic.anAdmin": "um admin" # ℹ️ Example: Fishing is always allowed in private :) - "generic.featureAlwaysAllowedInPrivate": "%s is always allowed in private :)" + "generic.featureAlwaysAllowedInPrivate": "%s é sempre permitido em privado :)" # ℹ️ Example: Wall Building has now been enabled in this group. - "generic.featureEnabled": "%s has now been enabled in this group." - "generic.featureAlreadyEnabled": "%s is already enabled in this group." - "generic.featureDisabled": "%s is now disabled in this group." - "generic.featureAlreadyDisabled": "%s is already disabled in this group." + "generic.featureEnabled": "%s agora foi habilitado neste grupo." + "generic.featureAlreadyEnabled": "%s já está habilitado neste grupo." + "generic.featureDisabled": "%s agora está desabilitado neste grupo." + "generic.featureAlreadyDisabled": "%s já está desabilitado neste grupo." "generic.featureDisabledByDefault": "By default, %s is disabled in group chats.\n\nAn admin can %s." # ℹ️ Example: By default, fishing is disabled in group chats.\n\nAn admin can /EnableGames, or you can fish in private, by tapping the button below: From 798b8f9058f4997c3a7110d3a401c89d331bec88 Mon Sep 17 00:00:00 2001 From: arthursiq5 <43865533+arthursiq5@users.noreply.github.com> Date: Mon, 13 Sep 2021 19:14:16 -0300 Subject: [PATCH 09/32] Traduzidos textos das features --- ptbr.hjson | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ptbr.hjson b/ptbr.hjson index 9bf74a3..2640ef4 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -27,11 +27,11 @@ # ℹ️ Example: /JoinVerify enabled by Andy "featureEnabledBy": "%s habilitado por %s" - "featureEnabledAnswerText": "%s enabled" - "featureAlreadyEnabled": "%s is already enabled" - "featureAlreadyEnabledAnswerText": "%s Already enabled" + "featureEnabledAnswerText": "%s habilitado" + "featureAlreadyEnabled": "%s já está habilitado" + "featureAlreadyEnabledAnswerText": "%s Já habilitado" "featureDisabledBy": "%s desabilitado por %s" - "featureDisabledAnswerText": "%s disabled" + "featureDisabledAnswerText": "%s desabilitado" "featureAlreadyDisabled": "%s já está desabilitado" "featureAlreadyDisabledAnswerText": "%s Já desabilitado" From 337a27f623a2091fadfaa11d803dcbb5f1984235 Mon Sep 17 00:00:00 2001 From: arthursiq5 <43865533+arthursiq5@users.noreply.github.com> Date: Mon, 13 Sep 2021 19:17:12 -0300 Subject: [PATCH 10/32] Traduzidos textos de chatName --- ptbr.hjson | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ptbr.hjson b/ptbr.hjson index 2640ef4..a56c7e6 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -41,10 +41,10 @@ "joinLockExceptionAdded": "This user has been granted a one-time join exception by %s\n\nThe next time the user joins, I will not remove them." "joinLockExceptionAddedAnswerText": "Exceção Adicionada" - "chatNameRemoved": "Chat Name Removed by %s" - "chatNameRemovedAnswerText": "Chat Name Removed" - "chatNameNotSet": "Chat Name was not set, so nothing to remove." - "chatNameNotSetAnswerText": "Chat Name Not Set" + "chatNameRemoved": "Nome do Chat Removido por %s" + "chatNameRemovedAnswerText": "Nome do Chat Removido" + "chatNameNotSet": "Nome do Chat não foi definido, então não há mada." + "chatNameNotSetAnswerText": "Nome do Chat não foi definido" "cantUseFeatureOnAdminsAnswerText": "Can't %s admins" From 680c8701483c70b8b2bfa8c85766a6e4f9f35277 Mon Sep 17 00:00:00 2001 From: arthursiq5 <43865533+arthursiq5@users.noreply.github.com> Date: Mon, 13 Sep 2021 19:34:54 -0300 Subject: [PATCH 11/32] =?UTF-8?q?Terminadas=20tradu=C3=A7=C3=B5es=20para?= =?UTF-8?q?=20o=20setor=20"generic"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Traduções para opções do chatName Traduções das joinLimitRestrictions Traduções e correções diversas --- ptbr.hjson | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ptbr.hjson b/ptbr.hjson index a56c7e6..0fdda0b 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -35,10 +35,10 @@ "featureAlreadyDisabled": "%s já está desabilitado" "featureAlreadyDisabledAnswerText": "%s Já desabilitado" - "joinLimitRestrictionsReset": "This user had their /JoinLimit restrictions reset by %s" + "joinLimitRestrictionsReset": "Este usuário teve suas restrições de /JoinLimit redefinidas por %s" "joinLimitRestrictionsResetAnswerText": "Restrictions Reset!" - "joinLockExceptionAdded": "This user has been granted a one-time join exception by %s\n\nThe next time the user joins, I will not remove them." + "joinLockExceptionAdded": "Este usuário recebeu uma exceção de junção única por %s\n\nNa próxima vez que o usuário entrar, não irei removê-lo." "joinLockExceptionAddedAnswerText": "Exceção Adicionada" "chatNameRemoved": "Nome do Chat Removido por %s" @@ -46,14 +46,14 @@ "chatNameNotSet": "Nome do Chat não foi definido, então não há mada." "chatNameNotSetAnswerText": "Nome do Chat não foi definido" - "cantUseFeatureOnAdminsAnswerText": "Can't %s admins" + "cantUseFeatureOnAdminsAnswerText": "Não pode %s administradores" - "CalsiBotNoLongerAdmin": "CalsiBot is no longer an admin or doesn't have enough permissions, so this keyboard has expired." - "CalsiBotNoLongerAdminAnswerText": "CalsiBot is no longer an admin or doesn't have enough permissions, so this keyboard has expired." + "CalsiBotNoLongerAdmin": "CalsiBot não é mais um administrador ou não tem as permissões necessárias, então este teclado expirou." + "CalsiBotNoLongerAdminAnswerText": "CalsiBot não é mais um administrador ou não tem as permissões necessárias, então este teclado expirou." - "keyboardHasExpired": "This keyboard has expired." - "keyboardExpiredAnswerText": "Keyboard Expired" - "keyboardUpdatedPressConfirmAnswerText": "Keyboard Updated, press 'Confirm' to apply" + "keyboardHasExpired": "Este teclado expirou." + "keyboardExpiredAnswerText": "Teclado Expirado" + "keyboardUpdatedPressConfirmAnswerText": "Teclado Atualizado, pressione 'Confirmar' para aplicar" } "generic.buttons": { From f93ff1c1ce2076f24bb28a70a01316c6fa8744a0 Mon Sep 17 00:00:00 2001 From: arthursiq5 <43865533+arthursiq5@users.noreply.github.com> Date: Mon, 13 Sep 2021 19:42:12 -0300 Subject: [PATCH 12/32] =?UTF-8?q?Mais=20corre=C3=A7=C3=B5es=20da=20aba=20g?= =?UTF-8?q?enerics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ptbr.hjson | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ptbr.hjson b/ptbr.hjson index 0fdda0b..2cdd94e 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -235,22 +235,22 @@ "generic.featureDisabled": "%s agora está desabilitado neste grupo." "generic.featureAlreadyDisabled": "%s já está desabilitado neste grupo." - "generic.featureDisabledByDefault": "By default, %s is disabled in group chats.\n\nAn admin can %s." + "generic.featureDisabledByDefault": "Por padrão, %s é desabilitado em chats de grupo.\n\nUm administrador pode %s." # ℹ️ Example: By default, fishing is disabled in group chats.\n\nAn admin can /EnableGames, or you can fish in private, by tapping the button below: - "generic.featureDisabledByDefaultWithPrivate": "By default, %s is disabled in group chats.\n\nAn admin can %s, or you can %s in private, by tapping the button below:" +"generic.featureDisabledByDefaultWithPrivate": "Por padrão, %s é desabilitado em chats de grupo.\n\nUm administrador pode %s, Ou você ṕde %s em privado, pressionando o botão abaixo:" # ℹ️ Example: You can use /DisableBrick to change that. - "generic.toggleFeatureHint": "You can use %s to change that." + "generic.toggleFeatureHint": "Você pode usar %s para mudar isso." # ℹ️ Example: You can't Warn admins - "generic.cantUseFeatureOnAdmins": "You can't %s admins... Unfortunately." - "generic.cantUseFeatureOnAdminsWithReason": "You can't %s admins because %s" + "generic.cantUseFeatureOnAdmins": "Você não pode %s administradoress... Infelizmente." + "generic.cantUseFeatureOnAdminsWithReason": "Você não pode %s administradores porque %s" # ℹ️ Example: because they can't be warned in the first place. - "generic.theyCantBeInTheFirstPlace": "because they can't be %s in the first place." + "generic.theyCantBeInTheFirstPlace": "porque eles não podem estar %s em primeiro lugar." - "generic.tapNextToContinue": "\n\nTap /next to Continue..." - "generic.tapNextToRetry": "\n\nTap /next to Retry..." - "generic.tapCancelToQuit": "\n\nTap /cancel to Quit %s" + "generic.tapNextToContinue": "\n\nPressione /next para Continuar..." + "generic.tapNextToRetry": "\n\nPressione /next para Tentar Novamente..." + "generic.tapCancelToQuit": "\n\nPressione /cancel para Sair %s" /* --------------------------------------------------------------------- From 17d3b914929c2b4ff7132745701babc56f19e05d Mon Sep 17 00:00:00 2001 From: arthursiq5 <43865533+arthursiq5@users.noreply.github.com> Date: Mon, 13 Sep 2021 19:55:33 -0300 Subject: [PATCH 13/32] =?UTF-8?q?Corrigida=20tradu=C3=A7=C3=A3o=20da=20ses?= =?UTF-8?q?s=C3=A3o=20"Dox"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ptbr.hjson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ptbr.hjson b/ptbr.hjson index 2cdd94e..43594c7 100644 --- a/ptbr.hjson +++ b/ptbr.hjson @@ -836,7 +836,7 @@ --------------------------------------------------------------------- */ "dox.result": ''' - Dox of %s: + Dox de %s:
Gênero: %s
   Data de nascimento: %s

From 4ea03aad88ff792b26310198eaf08ae8101af5a0 Mon Sep 17 00:00:00 2001
From: arthursiq5 <43865533+arthursiq5@users.noreply.github.com>
Date: Mon, 13 Sep 2021 19:57:31 -0300
Subject: [PATCH 14/32] =?UTF-8?q?Terminada=20tradu=C3=A7=C3=A3o=20da=20ses?=
 =?UTF-8?q?s=C3=A3o=20"Death"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 43594c7..df5f17a 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -305,7 +305,7 @@
   "death.CalsiBot": "Eu não posso ser morto ;)"
 
   # ℹ️ Example: Josie stabbed Kevin before they starved to death
-  "death.kos": "%s stabbed %s before they %s"
+  "death.kos": "%s esfaqueado %s antes deles %s"
 
 
   /* ---------------------------------------------------------------------

From 6ac87aa5339b4edba3f3eda2f4716941b6c8cc64 Mon Sep 17 00:00:00 2001
From: arthursiq5 <43865533+arthursiq5@users.noreply.github.com>
Date: Mon, 13 Sep 2021 20:02:42 -0300
Subject: [PATCH 15/32] =?UTF-8?q?Tradu=C3=A7=C3=B5es=20de=20mensagens=20de?=
 =?UTF-8?q?=20a=C3=A7=C3=B5es=20tomadas=20por=20admins?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index df5f17a..a1da80d 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -864,18 +864,18 @@
                         AtAdmin - Used for @admin, @admins
      --------------------------------------------------------------------- */
   # ℹ️ NOTE: The last %s may look useless here, but it will hold the 'mentions' to the group's admins
-  "atAdmin.main": "%s has summoned admins to look at this message.%s"
+  "atAdmin.main": "%s invocou administradores para olharem para esta mensagem.%s"
 
   "atAdmin.callbacks": {
-    "chooseAction": "Select the actions you want to take with the toggles below:"
-    "chooseActionAnswerText": "Select An Action"
-    "ignoreAnswerText": "Report Ignored"
-    "actionTakenAnswerText": "The actions you selected have been taken"
+    "chooseAction": "Selecione as ações que deseja realizar com os botões de alternância abaixo:"
+    "chooseActionAnswerText": "Selecione Uma Ação"
+    "ignoreAnswerText": "Relatório Ignorado"
+    "actionTakenAnswerText": "As ações que você selecionou foram tomadas"
   }
 
   "atAdmin.info": {
-    "delete": "Should the reported message be deleted? Note that bots are unable to delete messages older than 48h..."
-    "ban": "Should the reported user be banned?"
+    "delete": "A mensagem reportada deve ser removida? Note que bots são incapazes de remover mensagens mais velhas que 48h..."
+    "ban": "O usuário reportado deve ser banido?"
   }
 
 

From 6f2806e4884fbf528d95cad93b722ae2bbaf3a09 Mon Sep 17 00:00:00 2001
From: arthursiq5 <43865533+arthursiq5@users.noreply.github.com>
Date: Mon, 13 Sep 2021 20:21:47 -0300
Subject: [PATCH 16/32] =?UTF-8?q?Traduzida=20parte=20da=20verifica=C3=A7?=
 =?UTF-8?q?=C3=A3o?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Traduzidas mensagens de validação da verificação
---
 ptbr.hjson | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index a1da80d..67e98b9 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -408,22 +408,22 @@
      --------------------------------------------------------------------- */
   # ⚠️ IMPORTANT
   "joinverify.callbacks": {
-    "correctAnswerText": "Correct! %s more to go..."
-    "incorrectAnswerText": "Wrong. 3 more to go..."
-    "success": "Success!\n\nGood work human, you can now chat in: %s"
-    "successAnswerText": "Success! You can chat in %s now..."
-    "manuallyTrusted": "%s has manually trusted %s."
-    "manuallyTrustedAnswerText": "User Trusted"
-    "expired": "This Verify Request has Expired.\n\nYou may have been manually banned or trusted by the admins of the group. Or, this is a very old request."
-    "expiredAnswerText": "Verify Request Expired"
-
-    "settingsUnavailable": "Join Verify is not enabled right now, enable it first to change settings:"
-    "setTimeLimit": "Choose a Time Limit for Join Verify\n\nHow many minutes should unverified members be allowed, before being banned?"
-    "setTimeLimitAnswerText": "Select a Value"
-    "timeLimitChanged": "Join Verify Time Limit changed from %s to %s by %s"
+    "correctAnswerText": "Correto! %s mais para ir..."
+    "incorrectAnswerText": "Errado. 3 mais para ir..."
+    "success": "Sucesso!\n\nBom trabalho, humano, você pode agora falar em: %s"
+    "successAnswerText": "Sucesso! Você pode falar em %s agora..."
+    "manuallyTrusted": "%s foi manualmente verificado %s."
+    "manuallyTrustedAnswerText": "Usuário Verificado"
+    "expired": "Esta Requisição de Verificação Expirou.\n\nVocê pode ter sido manualmente banido ou verificado pelos administradores do grupo. Ou essa pode ser uma requisição muito antiga."
+    "expiredAnswerText": "Requisição de Verificação Expirou"
+
+    "settingsUnavailable": "A Verificação de Entrada não está habilitada agora, habilite-a primeiro para mudar as configurações:"
+    "setTimeLimit": "Escolha um Limite de Tempo para a Validação de Entrada\n\nEm quantos minutos usuários não verificados devem ser aprovados, antes de serem banidos?"
+    "setTimeLimitAnswerText": "Selecione um Valor"
+    "timeLimitChanged": "O Limite de Tempo para a Verificação de Entrada foi alterado de %s para %s por %s"
     # ℹ️ NOTE: Signatures are used for intelligent text switching. MUST be a uniquely identifiable portion of the full text,
     #          and NOT contain any formatting or assume the value of any dynamic values.
-    "timeLimitChangedSignature": "Join Verify Time Limit changed from "
+    "timeLimitChangedSignature": "Limite de Tempo para Verificação de Entrada alterado de "
     "timeLimitChangedAnswerText": "Novas Configurações Salvas"
   }
 
@@ -439,21 +439,21 @@
   # ⚠️ IMPORTANT
   "joinverify.joinevents.joinVerifyAddedByAdmin": "Join Verify is enabled but %s was added by %s, so they don't need to verify themselves."
   "joinverify.joinevents.userVerify": "Hey %s welcome to %s.\n\nTo chat, tap the \"Verify\" button and then \"Start\":"
-  "joinverify.joinevents.userVerifyTimed": "Hey %s welcome to %s.\n\nTo chat, tap the \"Verify\" button and then \"Start\". Otherwise, you will be banned in %s minutes:"
+  "joinverify.joinevents.userVerifyTimed": "Hey %s bem-vindo ao%s.\n\nPara conversar, pressione o botão de \"Verificar\" e então \"Iniciar\". De outra forma, você será banido em %s minutos:"
   "joinverify.joinevents.botVerify": "%s is a bot.\n\nAn admin can press \"Trust\" below to allow it to send messages:"
   "joinverify.joinevents.botVerifyTimed": "%s is a bot.\n\nAn admin can press \"Trust\" below to allow it to send messages, otherwise it'll be banned in %s minutes."
-  "joinverify.joinevents.userVerified": "%s has verified themselves as human."
+  "joinverify.joinevents.userVerified": "%s tem que se verificaram como humanos."
 
   # ⚠️ IMPORTANT
   "joinverify.preverify.callbacks": {
-    "success": "Click the temporary Invite Link below to join the group:\n%s\n\nif you were banned from this group, you will not be able to join"
-    "successAnswerText": "Success! Use the Invite Link to Join!"
-    "memberCount": "This group currently has %s members"
+    "success": "Clique no Link de Convite temporário abaixo para se unir ao grupo:\n%s\n\nse você foi banido desse grupo, você não será capaz de entrar novamente"
+    "successAnswerText": "Sucesso! Use o Link de Convite para Entrar!"
+    "memberCount": "Este grupo tem atualmente %s membros"
   }
 
   "joinverify.preverify.error.preVerifyInvalid": "The PreVerify Invite Link is invalid or the group has disabled JoinVerify."
   "joinverify.preverify.error.joinLockEnabled": "This group currently has JoinLock enabled, please try again later."
-  "joinverify.preverify.error.alreadyVerified": "You have previously verified yourself as human.\n\n%s"
+  "joinverify.preverify.error.alreadyVerified": "Você já foi verificado anteriormente como humano.\n\n%s"
   "joinverify.preverify.error.notAvailable": "Join Verify is not enabled right now, it must be enabled before you can use PreVerify:"
 
   "joinverify.preverify.steps": {

From 319227792276b2bb34473115ec69104afcbed3e0 Mon Sep 17 00:00:00 2001
From: VasconsaBR <90463966+VasconsaBR@users.noreply.github.com>
Date: Mon, 20 Sep 2021 17:40:14 -0300
Subject: [PATCH 17/32] Traduzida mensagem de emoji captcha e subsequentes

Traduzida as mensagens restantes referentes ao comando /JoinVerify
---
 ptbr.hjson | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 67e98b9..1c0e433 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -428,7 +428,7 @@
   }
 
   # ⚠️ IMPORTANT
-  "joinverify.generateCaptcha.tapMatchingEmojiBelow": "Tap The Matching Emoji Below:"
+  "joinverify.generateCaptcha.tapMatchingEmojiBelow": "Toque no emoji correspondente abaixo:"
   "joinverify.imageText": {
     "successTop": "Confirmado"
     "successBottom": "Humano"
@@ -437,11 +437,11 @@
   }
 
   # ⚠️ IMPORTANT
-  "joinverify.joinevents.joinVerifyAddedByAdmin": "Join Verify is enabled but %s was added by %s, so they don't need to verify themselves."
-  "joinverify.joinevents.userVerify": "Hey %s welcome to %s.\n\nTo chat, tap the \"Verify\" button and then \"Start\":"
+  "joinverify.joinevents.joinVerifyAddedByAdmin": "Join Verify está habilitado, mas %s foi adicionado por %s, então eles não precisam se verificar."
+  "joinverify.joinevents.userVerify": "Hey %s bem-vindo ao %s.\n\nPara conversar, toque no \"Verify\" botão e depois \"Start\":"
   "joinverify.joinevents.userVerifyTimed": "Hey %s bem-vindo ao%s.\n\nPara conversar, pressione o botão de \"Verificar\" e então \"Iniciar\". De outra forma, você será banido em %s minutos:"
-  "joinverify.joinevents.botVerify": "%s is a bot.\n\nAn admin can press \"Trust\" below to allow it to send messages:"
-  "joinverify.joinevents.botVerifyTimed": "%s is a bot.\n\nAn admin can press \"Trust\" below to allow it to send messages, otherwise it'll be banned in %s minutes."
+  "joinverify.joinevents.botVerify": "%s é um bot.\n\nUm administrador pode pressionar \"Trust\" abaixo para permitir o envio de mensagens:"
+  "joinverify.joinevents.botVerifyTimed": "%s é um bot.\n\nUm administrador pode pressionar \"Trust\" abaixo para permitir o envio de mensagens, caso contrário, será banido em %s minutos."
   "joinverify.joinevents.userVerified": "%s tem que se verificaram como humanos."
 
   # ⚠️ IMPORTANT
@@ -451,30 +451,30 @@
     "memberCount": "Este grupo tem atualmente %s membros"
   }
 
-  "joinverify.preverify.error.preVerifyInvalid": "The PreVerify Invite Link is invalid or the group has disabled JoinVerify."
-  "joinverify.preverify.error.joinLockEnabled": "This group currently has JoinLock enabled, please try again later."
+  "joinverify.preverify.error.preVerifyInvalid": "O Link de convite do PreVerify é inválido ou o grupo desativou o JoinVerify."
+  "joinverify.preverify.error.joinLockEnabled": "Este grupo atualmente tem JoinLock habilitado, por favor tente novamente mais tarde."
   "joinverify.preverify.error.alreadyVerified": "Você já foi verificado anteriormente como humano.\n\n%s"
-  "joinverify.preverify.error.notAvailable": "Join Verify is not enabled right now, it must be enabled before you can use PreVerify:"
+  "joinverify.preverify.error.notAvailable": "Join Verify não está habilitado agora, deve ser habilitado antes que você possa usar PreVerify:"
 
   "joinverify.preverify.steps": {
-    "one": "✴️ 1. Forward the above (replied to) message to a Public Channel where %s is an admin.\n2. Tap or right-click the forwarded message and Copy Link\n3. Send the copied public link to this chat.\n\nThe link should look like this:\nhttps://t.me/CalsiBotDev/99999"
-    "oneError.noVerificationString": "❌ Couldn't find the required verification string in the post. Make sure the post you linked to is the ownership verification message you forwarded."
-    "oneError.urlFormat": "❌ The link you sent doesn't look right. It should look like this:\nhttps://t.me/CalsiBotDev/99999"
-    "oneError.targetIsNotChannel": "❌ The link you have provided is for a Public Group.\n\nPreVerify is designed for use with Public Channels only."
-    "oneError.cantSendPost": "❌ Could not send the message, please ensure %s is an admin with enough permissions in %s.%s"
-    "oneSuccess": "✅ Okay, posted successfully!\n\nSee https://t.me/%s/%s for the post!\n\nTo fully protect your group, you must revoke all previous Invite Links. You can do this by:\n1. Revoking your personal Invite Link\n2. Demoting and then re-promoting all of your admins (except for CalsiBot). This will revoke any Invite Links they have shared."
+    "one": "✴️ 1. Encaminhar a mensagem acima (respondida) para um canal público onde %s é um administrador.\n2. Toque ou clique com o botão direito na mensagem encaminhada e Copy Link\n3. Envie o link público copiado para este chat.\n\nO link deve ser parecido com este:\nhttps://t.me/CalsiBotDev/99999"
+    "oneError.noVerificationString": "❌ Não foi possível encontrar a string de verificação necessária na postagem. Certifique-se de que a postagem vinculada seja a mensagem de verificação de propriedade que você encaminhou."
+    "oneError.urlFormat": "❌ O link que você enviou não parece correto. Deve ser assim:\nhttps://t.me/CalsiBotDev/99999"
+    "oneError.targetIsNotChannel": "❌ O link que você forneceu é para um grupo público.\n\nPreVerify é projetado para uso apenas com canais públicos."
+    "oneError.cantSendPost": "❌ Não foi possível enviar a mensagem, certifique-se %s é um administrador com permissões suficientes em %s.%s"
+    "oneSuccess": "✅ Okay, postado com sucesso!\n\nVer https://t.me/%s/%s para o post!\n\nPara proteger totalmente o seu grupo, você deve revogar todos os links de convite anteriores. Você pode fazer isso por:\n1. Revogando seu convite pessoal Link\n2. Rebaixar e promover novamente todos os seus administradores (exceto CalsiBot). Isso revogará todos os links de convite que eles compartilharam."
   }
 
   "joinverify.preverify.imageText": {
-    "title": "To join the group:"
-    "stepOne": "Tap Verify, then Start"
-    "stepTwo": "Pass the test"
-    "stepThree": "Join the group!"
+    "title": "Para entrar no grupo:"
+    "stepOne": "Tocar Verify, depois Start"
+    "stepTwo": "Pass o teste"
+    "stepThree": "Join o grupo!"
   }
 
-  "joinverify.preverify.main": "%s%s is protected by PreVerify."
-  "joinverify.preverify.verificationMessage": "This message is to verify ownership of this channel for CalsiBot's PreVerify feature.\n\n%s"
-  "joinverify.preverify.setUpCancelled": "PreVerify set up cancelled."
+  "joinverify.preverify.main": "%s%s é protegida pela PreVerify."
+  "joinverify.preverify.verificationMessage": "Esta mensagem é para verificar a propriedade deste canal para o recurso PreVerify do CalsiBot.\n\n%s"
+  "joinverify.preverify.setUpCancelled": "Configuração de PreVerify cancelada."
 
 
   /* ---------------------------------------------------------------------

From f80a6a4a96b77e674ce88e13609b625bd78c3474 Mon Sep 17 00:00:00 2001
From: arthursiq5 <43865533+arthursiq5@users.noreply.github.com>
Date: Tue, 21 Sep 2021 12:06:56 -0300
Subject: [PATCH 18/32] =?UTF-8?q?Adicionadas=20tradu=C3=A7=C3=B5es=20de=20?=
 =?UTF-8?q?prop=C3=B3sito=20geral?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 88 +++++++++++++++++++++++++++---------------------------
 1 file changed, 44 insertions(+), 44 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 1c0e433..4148b29 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -149,9 +149,9 @@
   }
 
   "generic.timePlural": {
-    "zero": "times"
-    "one": "time"
-    "other": "times"
+    "zero": "tempos"
+    "one": "tempo"
+    "other": "tempos"
   }
 
   "generic.weekPlural": {
@@ -258,8 +258,8 @@
      --------------------------------------------------------------------- */
   "comfy.hug": {
     "self": "%s reaches one arm around and hugs their own body. %s feels slightly less alone now."
-    "main": "%s just gave you a hug! :)"
-    "CalsiBot": "I can't be hugged :/"
+    "main": "%s te deu um abraço! :)"
+    "CalsiBot": "Eu não posso ser abraçado :/"
   }
 
   "comfy.cuddle": {
@@ -275,8 +275,8 @@
   }
 
   "comfy.poke": {
-    "self": "%s pokes their chest. It makes them remember that they should probably lose some weight."
-    "main": "*%s pokes %s* o_o"
+    "self": "%s cutucou seus peitos. Isso os faz lembrar que eles provavelmente deveriam perder um pouco de peso."
+    "main": "*%s cutucou %s* o_o"
     "CalsiBot": ">_<"
   }
 
@@ -329,13 +329,13 @@
   "fish.verdicts": {
     "failure": "Just like in real life, your bait failed."
     "blowfish": "You caught a Blowfish: 🐡"
-    "normal": "Not bad!\nYou caught a Normal Fish: 🐟"
-    "tropical": "Cool!\nYou caught a Tropical Fish: 🐠"
-    "squid": "Sweet!\nYou caught a Squid: 🦑"
-    "crab": "Awesome!\nYou caught a Crab: 🦀"
+    "normal": "Nada mal!\nVocê pegou um Peixe Normal: 🐟"
+    "tropical": "Legal!\nVocê pegou um Peixe Tropical: 🐠"
+    "squid": "Muito bom!\nVocê pegou uma Lula: 🦑"
+    "crab": "Incrível!\nVocê pegou um Caranguejo: 🦀"
     "dolphin": "WHOA!\nYou caught a Dolphin: 🐬"
-    "shark": "HOLY FUCKING SHIT!!\nYou caught a Shark: 🦈"
-    "crocodile": "ARGHHH!!!\nYou caught a Crocodile: 🐊"
+    "shark": "PUTA MERDA!!\nVocê pegou um Tubarão: 🦈"
+    "crocodile": "ARGHHH!!!\nVocê pegou um Crocodilo: 🐊"
     "whale": "THE OCEAN SEEMS TO SINK DOWN...\n\nWith all of your strength, you reel in your catch!\nYou caught a Whale: 🐳"
   }
 
@@ -350,7 +350,7 @@
   🐟 - Peixe Normal: %s
   🐠 - Peixe Tropical: %s
   🦀 - Caranguejo: %s
-  🦑 - Squid: %s
+  🦑 - Lula: %s
   🐬 - Golfinho: %s
   🦈 - Tubarão: %s
   🐊 - Crocodilos: %s
@@ -363,9 +363,9 @@
 
   "trophy.types": {
     "firstfish": "\n%s<%s> - Primeiro Peixe!"
-    "1000fish": "\n%s<%s> - One Thousand Fish"
-    "5000fish": "\n%s<%s> - Five Thousand Fish"
-    "10000fish": "\n%s<%s> - Ten Thousand Fish"
+    "1000fish": "\n%s<%s> - Mil Peixes"
+    "5000fish": "\n%s<%s> - Cinco Mil Peixes"
+    "10000fish": "\n%s<%s> - Dez Mil Peixes"
     "2018newyear": "\n%s<%s> - New Years 2018"
     "2018vday": "\n%s<%s> - VDay 2018"
     "2018xmas": "\n%s<%s> - Xmas 2018"
@@ -468,8 +468,8 @@
   "joinverify.preverify.imageText": {
     "title": "Para entrar no grupo:"
     "stepOne": "Tocar Verify, depois Start"
-    "stepTwo": "Pass o teste"
-    "stepThree": "Join o grupo!"
+    "stepTwo": "Passe o teste"
+    "stepThree": "Junte-se ao grupo!"
   }
 
   "joinverify.preverify.main": "%s%s é protegida pela PreVerify."
@@ -529,9 +529,9 @@
 
   "marry.error.cooldown": "You must wait 1 minute between each time you check stats.\n\n%s"
 
-  "marry.self": "You can't marry yourself, even if no one else wants to marry you..."
-  "marry.main": "💘 %s has proposed to you!"
-  "marry.CalsiBot": "Sorry, but I'm already married to my work... 🥺"
+  "marry.self": "Você não pode se casar consigo mesmo, mesmo que ninguém mais te queira..."
+  "marry.main": "💘 %s Te propôs casamento!"
+  "marry.CalsiBot": "Me desculpe, mas eu já estou casado com meu trabalho... 🥺"
 
   "marry.divorce.help": "💔 Not feeling the love anymore? /divorce can be used to split up with people you've previously married."
 
@@ -541,10 +541,10 @@
   "marry.divorce.main": "🖤 %s divorced %s\n(happened %s %s so far)\n\nMarried for: %s\n\n%s\n\nSee your /MarryStats"
   "marry.divorce.CalsiBot": "Let's see what my lawyers say about that... 🤧"
 
-  "marry.marrystats.error.noData": "🥺 %s has never been married."
+  "marry.marrystats.error.noData": "🥺 %s nunca foi casado."
   "marry.marrystats.error.noMutualData": "😶 %s has never been married to %s."
 
-  "marry.marrystats.CalsiBot": "Unlike you, CalsiBot is pure and has no marriage history."
+  "marry.marrystats.CalsiBot": "Ao contrário de você, CalsiBot é puro e não tem histórico de casamento."
 
   "marry.marrystats.own.information": "💖 %s – Marry Stats – 1️⃣:\n\n🙂 - Happiness: %s\n🥺 - Children: %s\n🏠 - Houses: %s\n💰 - Net Worth: $%s"
   "marry.marrystats.own.marriages": "💖 %s – Marry Stats – 2️⃣:\n\n❤️ Marriages:\nRequests accepted most by %s\nRequests rejected most by %s\nMarried: %s | Rejected: %s"
@@ -557,10 +557,10 @@
   "permaban.permaban": "Permaban"
 
   "permaban.callbacks": {
-    "userPermabanned": "This user was Permabanned by %s"
-    "userPermabannedAnswerText": "User Permabanned"
-    "userAlreadyPermabanned": "This user is already Permabanned."
-    "userAlreadyPermabannedAnswerText": "User Already Permabanned"
+    "userPermabanned": "Este usuário foi banido permanentemente por %s"
+    "userPermabannedAnswerText": "Usuário banido permanentemente"
+    "userAlreadyPermabanned": "Este usuário já está banido permanentemente."
+    "userAlreadyPermabannedAnswerText": "Usuário Já Banido Permanentemente"
 
     "userUnPermabanned": "This user was Un-Permabanned by %s"
     "userUnPermabannedAnswerText": "User Un-Permabanned"
@@ -628,14 +628,14 @@
     "maxWarnsValueChangedAnswerText": "New Max Warn Set"
   }
 
-  "warn.noReasonGiven": "No reason given"
+  "warn.noReasonGiven": "Sem razão dada"
 
   "warn.replyHint": "Reply to the user who you want to warn, e.g:\n\n/warn, or\n/warn <reason here>"
 
-  "warn.success": "%s was warned by %s.%s\n\n%s out of %s warns"
+  "warn.success": "%s foi advertido por %s.%s\n\n%s de %s advertências"
   "warn.userBanned": "%s was banned. Reached %s out of %s warns"
-  "warn.myWarns": "Warns for %s:"
-  "warn.noWarns": "No warns, pretty smart."
+  "warn.myWarns": "Advertências por %s:"
+  "warn.noWarns": "Sem advertências, muito esperto."
 
 
   /* ---------------------------------------------------------------------
@@ -646,15 +646,15 @@
   "start.error.JoinVerifyExpired": "Sorry, your Join Verify Request has expired.\n\nPlease re-join the group and try again."
   "start.main":
   '''
-  Hey %s, I'm %s!
+  Hey %s, eu sou %s!
 
   ✴️ I keep your group safe from evil and also have tons of other cool features like translations.
 
-  Most used Group Admin tools:
+  Ferramentas mais utilizadas de Administração de Grupos:
   /JoinVerify
   /restrict, /warn, /JoinLock, and /JoinLimit
 
-  See other commands:
+  Veja outros comandos:
   /ListCommands
   '''
 
@@ -673,22 +673,22 @@
 
   "misc.huh.main": "huh"
 
-  "misc.judge.main.truth": "%s is telling the truth."
-  "misc.judge.main.lying": "%s is lying!"
-  "misc.judge.CalsiBot": "I am beyond judgement."
+  "misc.judge.main.truth": "%s está falando a verdade."
+  "misc.judge.main.lying": "%s está mentindo!"
+  "misc.judge.CalsiBot": "Eu estou além do julgamento."
 
-  "misc.coin.main.heads": "%s flipped a coin!\n\nIt's heads!"
-  "misc.coin.main.tails": "%s flipped a coin!\n\nIt's tails!"
+  "misc.coin.main.heads": "%s jogou uma moeda!\n\nDeu cara!"
+  "misc.coin.main.tails": "%s jogou uma moeda!\n\nDeu coroa!"
 
-  "misc.covfefe.tooLong": "❌ Too long. ☕😐"
-  "misc.covfefe.replyHint": "Reply to the message you want to covfefe!"
+  "misc.covfefe.tooLong": "❌ Muito longo. ☕😐"
+  "misc.covfefe.replyHint": "Responda à mensagem que você quer covfefe!"
 
   "misc.spurdo.tooLong": "❌ too lonk :dd 🥺"
   "misc.spurdo.replyHint": "reply to de meszage you wand to spurdo-fy :DD"
 
   "misc.listcommands.main":
   '''
-  Almost every CalsiBot command:
+  Quase todos os comandos do CalsiBot:
 
   Comfy Commands:
   /hug, /cuddle, /snuggle, /ruffle
@@ -713,7 +713,7 @@
   Text Modification Commands:
   /covfefe, /spurdo, /emojify
 
-  Other:
+  Outros:
   /boi, /denko, /huh
   /name, /me, /edgy
   "sed" (text switching/replacement)

From 2b556d0dd294e9556ab7762863d30d1aed02e7c4 Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Fri, 1 Oct 2021 18:27:06 -0300
Subject: [PATCH 19/32] =?UTF-8?q?Traduzida=20sess=C3=A3o=20Comfy?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 4148b29..6d3c459 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -257,21 +257,21 @@
                       Comfy - Used for /hug, /cuddle, etc.
      --------------------------------------------------------------------- */
   "comfy.hug": {
-    "self": "%s reaches one arm around and hugs their own body. %s feels slightly less alone now."
+    "self": "%s estende um braço e abraça a si mesmo. %s se sente bem menos sozinho agora."
     "main": "%s te deu um abraço! :)"
     "CalsiBot": "Eu não posso ser abraçado :/"
   }
 
   "comfy.cuddle": {
-    "self": "%s lays face-down on their bed, and tries to cuddle both sides. %s feels slightly less sad now."
-    "main": "%s cuddles %s tightly"
-    "CalsiBot": "sighhh ☁️😌☁️"
+    "self": "%s deita de bruços na cama e tenta abraçar suas laterais. %s se sente bem menos triste agora."
+    "main": "%s abraça %s com força"
+    "CalsiBot": "suspiro ☁️😌☁️"
   }
 
   "comfy.snuggle": {
-    "self": "%s draws up their knees and tries to snuggle themselves. %s feels slightly less unloved now."
-    "main": "%s contentedly snuggles %s"
-    "CalsiBot": "🥺 *relaxed bot noises*"
+    "self": "%s encolhe os joelhos e tenta se aconchegar. %s se sente significantemente mais amado agora."
+    "main": "%s aconchega %s com satisfação"
+    "CalsiBot": "🥺 *barulhos de bot relaxado*"
   }
 
   "comfy.poke": {
@@ -281,20 +281,20 @@
   }
 
   "comfy.pat": {
-    "self": "%s awkwardly reaches one hand around to pat themselves on the head. 🙃"
-    "main": "*%s pats %s on the head* :V"
+    "self": "%s desajeitadamente estende uma das mãos para dar um tapinha na própria cabeça. 🙃"
+    "main": "*%s dá tapinas na cabeça de %s* :V"
     "CalsiBot": "rawr xDddd"
   }
 
   "comfy.ruffle": {
-    "self": "%s ruffles their own hair... Yikes. 😐"
-    "main": "*%s ruffles %s's hair* :&"
-    "CalsiBot": "You're meant to ruffle the hair on my head...not...there. 😳"
+    "self": "%s bagunça o próprio cabelo... Caramba. 😐"
+    "main": "*%s bagunça o cabelo de %s* :&"
+    "CalsiBot": "Você deveria bagunçar o cabelo da minha cabeça... não... aí. 😳"
   }
 
   "comfy.highfive": {
-    "self": "%s tries to highfive themselves by smacking their own two hands together. %s misses, and sinks deeper into depression."
-    "main": "%s just high-fived you for this!"
+    "self": "%s tenta se cumprimentar batendo nas próprias mãos. %s erra e se afunda ainda mais na depressão."
+    "main": "%s cumprimentou você por isso!"
     "CalsiBot": ":D"
   }
 

From a185b6f77b2dff2381c902af2b90991ebcdc7d1f Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Fri, 1 Oct 2021 18:34:18 -0300
Subject: [PATCH 20/32] =?UTF-8?q?Traduzida=20sess=C3=A3o=20de=20peixes?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 6d3c459..5250616 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -321,14 +321,14 @@
   /* ---------------------------------------------------------------------
                       Fish - Used for /fish, /MyFish, etc.
      --------------------------------------------------------------------- */
-  "fish.fish": "Fish"
-  "fish.fishing": "Fishing"
-  "fish.noFish": "It looks like %s has never caught a fish before!\n\nHave a go: /Fish"
-  "fish.noTrophyFish": "You don't currently have any Trophy Fish 😢 - but don't worry!\n\nCatch one /Fish to earn your first!\n\n/MyFish ||| /Fish"
+  "fish.fish": "Peixe"
+  "fish.fishing": "Pescando"
+  "fish.noFish": "Parece que %s nunca pegou um peixe antes!\n\nDê uma chance: /Fish"
+  "fish.noTrophyFish": "Atualmente você não tem nenhum Troféu de Peixe 😢 - mas não se preocupe!\n\nUse /Fish para pegar seu primeiro peixe!\n\n/MyFish ||| /Fish"
 
   "fish.verdicts": {
-    "failure": "Just like in real life, your bait failed."
-    "blowfish": "You caught a Blowfish: 🐡"
+    "failure": "Assim como na vida real, sua isca falhou."
+    "blowfish": "Você pegou um baiacu: 🐡"
     "normal": "Nada mal!\nVocê pegou um Peixe Normal: 🐟"
     "tropical": "Legal!\nVocê pegou um Peixe Tropical: 🐠"
     "squid": "Muito bom!\nVocê pegou uma Lula: 🦑"
@@ -336,7 +336,7 @@
     "dolphin": "WHOA!\nYou caught a Dolphin: 🐬"
     "shark": "PUTA MERDA!!\nVocê pegou um Tubarão: 🦈"
     "crocodile": "ARGHHH!!!\nVocê pegou um Crocodilo: 🐊"
-    "whale": "THE OCEAN SEEMS TO SINK DOWN...\n\nWith all of your strength, you reel in your catch!\nYou caught a Whale: 🐳"
+    "whale": "O OCEANO PARECE ESTAR AFUNDANDO...\n\nCom toda a sua força, você puxa a vara de pesca!\nVocê pegou uma baleia: 🐳"
   }
 
   "fish.viewYourFish": "\n\nVer seus peixes: /MyFish"
@@ -344,7 +344,7 @@
 
   "fish.myFish":
   '''
-  🎣 %s – Fish:
+  🎣 %s – Peixe:
 
   🐡 - Baiacu: %s
   🐟 - Peixe Normal: %s
@@ -366,11 +366,11 @@
     "1000fish": "\n%s<%s> - Mil Peixes"
     "5000fish": "\n%s<%s> - Cinco Mil Peixes"
     "10000fish": "\n%s<%s> - Dez Mil Peixes"
-    "2018newyear": "\n%s<%s> - New Years 2018"
-    "2018vday": "\n%s<%s> - VDay 2018"
-    "2018xmas": "\n%s<%s> - Xmas 2018"
-    "2019newyear": "\n%s<%s> - New Years 2019"
-    "2020xmas": "\n%s<%s> - Xmas 2020"
+    "2018newyear": "\n%s<%s> - Ano Novo 2018"
+    "2018vday": "\n%s<%s> - Dia dos Namorados 2018"
+    "2018xmas": "\n%s<%s> - Natal 2018"
+    "2019newyear": "\n%s<%s> - Ano Novo 2019"
+    "2020xmas": "\n%s<%s> - Natal 2020"
   }
 
 

From c30e0f6d8223fb263417924b92387ed48f8bd186 Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Fri, 1 Oct 2021 18:48:22 -0300
Subject: [PATCH 21/32] =?UTF-8?q?Traduzida=20sess=C3=A3o=20JoinEvents?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 5250616..08a30c1 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -377,10 +377,10 @@
   /* ---------------------------------------------------------------------
                         JoinEvents - Used for Join Flow
      --------------------------------------------------------------------- */
-  "joinevents.error.CalsiBotNotEnoughPermissions": "A Welcome Message, JoinLock, JoinVerify or JoinLimit is currently enabled, but I don't have enough Admin permissions right now...\n\nPlease ensure that I can change group info, and ban users."
-  "joinevents.userPermabanned": "%s was permanently banned from this group by an admin.\n\nI have removed them."
-  "joinevents.joinlockAddedByAdmin": "Join Lock is enabled but %s was added by %s, so they have not been kicked."
-  "joinevents.joinlockMemberBanned": "%s was banned because Join Lock is enabled."
+  "joinevents.error.CalsiBotNotEnoughPermissions": "Uma mensagem de boas-vindas, JoinLock, JoinVerify ou JoinLimit está ativada no momento, mas não tenho permissões de administrador suficientes no momento...\n\nPor favor, garanta que eu possa alterar informações do grupo, e banir usuários."
+  "joinevents.userPermabanned": "%s foi removido permanentemente deste grupo por um administrador.\n\nEu os removi."
+  "joinevents.joinlockAddedByAdmin": "Join Lock está habilitado mas %s foi adicionado por %s, então eles não foram kickados."
+  "joinevents.joinlockMemberBanned": "%s foi banido porque o Join Lock está habilitado."
 
   /* ---------------------------------------------------------------------
                         JoinConfig - Used for Join Flow

From 7ef6b5c522d3c2577ff0eb2d02ffd2e89c856731 Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Fri, 1 Oct 2021 19:49:19 -0300
Subject: [PATCH 22/32] =?UTF-8?q?Iniciada=20tradu=C3=A7=C3=A3o=20de=20op?=
 =?UTF-8?q?=C3=A7=C3=B5es=20de=20boas=20vindas?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 08a30c1..c76603e 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -385,18 +385,18 @@
   /* ---------------------------------------------------------------------
                         JoinConfig - Used for Join Flow
      --------------------------------------------------------------------- */
-  "joinconfig.welcome.help": "/SetWelcome allows you to set a Welcome Message for your chat\n\nYour message should be like the example below:"
-  "joinconfig.welcome.error.somethingWrong": "Sorry, but there's something wrong with the message you posted.\n\nPlease double-check your formatting, and make sure you haven't included any weird characters."
-  "joinconfig.welcome.success": "Great, your new Welcome Message has been set. Check above to see how it'll look!\n\nYou can use /DeleteWelcome to remove it."
-  "joinconfig.welcome.removed": "The Welcome Message has been removed.\n\nYou can use /SetWelcome, followed by the message you'd like, to set a new one."
-  "joinconfig.welcome.alreadyRemoved": "There is currently no Welcome Message set to remove.\n\nYou can use /SetWelcome, followed by the message you'd like, to set one."
+  "joinconfig.welcome.help": "/SetWelcome permite que você defina uma mensagem de boas vindas para seu chat\n\nSua mensagem deve ser como o exemplo abaixo:"
+  "joinconfig.welcome.error.somethingWrong": "Desculpe, mas tem alguma coisa errada com a mensagem que você postou.\n\nPor favor, verifique a sua formatação, e garanta que você não incluiu nenhum caractere estranho."
+  "joinconfig.welcome.success": "Ótimo, sua mensagem de boas vindas foi definida. Verifique acima como ela vai ficar!\n\nVocê pode usar /DeleteWelcome para removê-la."
+  "joinconfig.welcome.removed": "A mensagem de boas vindas foi removida.\n\nVocê pode usar /SetWelcome, seguido pela mensagem que você quiser, para definir uma nova."
+  "joinconfig.welcome.alreadyRemoved": "Atualmente não tem uma mensagem de boas vindas definida para remover.\n\nVocê pode usar /SetWelcome, seguido pela mensagem que você quiser, para definir uma nova."
 
   "joinconfig.joinlimit.help": "/JoinLimit allows you to set the default restrictions for any members who join your chat\n\nYour message should be like the example below:"
   "joinconfig.joinlimit.success": "Your /JoinLimit has been set!\n\nNew members will automatically be restricted %s, until an admin unrestricts them."
   "joinconfig.joinlimit.successTimed": "Your /JoinLimit has been set!\n\nNew members will automatically be restricted %s, for the time limit you specified."
 
-  "joinconfig.title.help": "/%s allows you to set the chat's title with a message.\n\nYour message should be like this:\n/%s New chat title\n\nTip: Have a chat name you always use in titles? Check out /cn"
-  "joinconfig.title.replyToTextHint": "If you're replying to another message to set the chat's title, it must be text-only.\n\nTip: Have a chat name you always use in titles? Check out /cn"
+  "joinconfig.title.help": "/%s permite que você defina o título do chat com uma mensagem.\n\nSua mensagem deve parecer com isso:\n/%s Novo Título do chat\n\nDica: Tem um nome de chat que você sempre usa em títulos? Verifique /cn"
+  "joinconfig.title.replyToTextHint": "Se você está respondendo a outra mensagem para definir o título do chat, ele deve ser apenas texto.\n\nDica: Tem um nome de chat que você sempre usa em títulos? Verifique /cn"
 
   "joinconfig.chatname.help": "/%s allows you to set the chat's name. This name will always appear in front of any chat title set using /t or /title.\n\nYour message should be like this:\n/%s MyChatName"
   "joinconfig.chatname.replyToTextHint": "If you're replying to another message to set the chat's name, it must be text-only."

From 6e87606ce7977bd5272f8a360ae1bbc9b47ba23b Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Sun, 17 Oct 2021 14:57:19 -0300
Subject: [PATCH 23/32] =?UTF-8?q?Corrigida=20tradu=C3=A7=C3=A3o=20de=20hor?=
 =?UTF-8?q?as?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index c76603e..a1f5572 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -149,9 +149,9 @@
   }
 
   "generic.timePlural": {
-    "zero": "tempos"
-    "one": "tempo"
-    "other": "tempos"
+    "zero": "horas"
+    "one": "hora"
+    "other": "horas"
   }
 
   "generic.weekPlural": {

From 7ac756fded02f43f42a5a4a4a15fcab8ad224e14 Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Sun, 17 Oct 2021 14:57:51 -0300
Subject: [PATCH 24/32] Traduzida mensagem de pesca de golfinho

---
 ptbr.hjson | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index a1f5572..40b767e 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -333,7 +333,7 @@
     "tropical": "Legal!\nVocê pegou um Peixe Tropical: 🐠"
     "squid": "Muito bom!\nVocê pegou uma Lula: 🦑"
     "crab": "Incrível!\nVocê pegou um Caranguejo: 🦀"
-    "dolphin": "WHOA!\nYou caught a Dolphin: 🐬"
+    "dolphin": "WHOA!\nVocê pegou um Golfinho: 🐬"
     "shark": "PUTA MERDA!!\nVocê pegou um Tubarão: 🦈"
     "crocodile": "ARGHHH!!!\nVocê pegou um Crocodilo: 🐊"
     "whale": "O OCEANO PARECE ESTAR AFUNDANDO...\n\nCom toda a sua força, você puxa a vara de pesca!\nVocê pegou uma baleia: 🐳"

From c7028ea50fe776ee3216c48fabd77c8cf325b345 Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Sun, 17 Oct 2021 15:02:57 -0300
Subject: [PATCH 25/32] =?UTF-8?q?Corrigida=20mensagem=20de=20defini=C3=A7?=
 =?UTF-8?q?=C3=A3o=20do=20nome=20do=20chat?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 40b767e..b6e009e 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -398,9 +398,9 @@
   "joinconfig.title.help": "/%s permite que você defina o título do chat com uma mensagem.\n\nSua mensagem deve parecer com isso:\n/%s Novo Título do chat\n\nDica: Tem um nome de chat que você sempre usa em títulos? Verifique /cn"
   "joinconfig.title.replyToTextHint": "Se você está respondendo a outra mensagem para definir o título do chat, ele deve ser apenas texto.\n\nDica: Tem um nome de chat que você sempre usa em títulos? Verifique /cn"
 
-  "joinconfig.chatname.help": "/%s allows you to set the chat's name. This name will always appear in front of any chat title set using /t or /title.\n\nYour message should be like this:\n/%s MyChatName"
+  "joinconfig.chatname.help": "/%s permite que você altere o nome do chat. Esse nome vai sempre aparecer na frente de qualquer título do chat definido usando /t ou /title.\n\nSua mensagem deve ser algo como:\n/%s MeuNomeDeChat"
   "joinconfig.chatname.replyToTextHint": "If you're replying to another message to set the chat's name, it must be text-only."
-  "joinconfig.chatname.success": "Your Chat Name has been set to:\n%s\n\nThis will appear at the start of every chat title set using /t or /title."
+  "joinconfig.chatname.success": "Seu Nome do Chat foi definido como:\n%s\n\nEle vai aparecer no início de todos os títulos de chat definidos usando /t ou /title."
 
 
   /* ---------------------------------------------------------------------

From 8755e822b9e556acb616452b78350b3359075647 Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Sun, 17 Oct 2021 15:24:25 -0300
Subject: [PATCH 26/32] Corrigidas mensagens de JoinConfig

---
 ptbr.hjson | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index b6e009e..37831cb 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -391,15 +391,15 @@
   "joinconfig.welcome.removed": "A mensagem de boas vindas foi removida.\n\nVocê pode usar /SetWelcome, seguido pela mensagem que você quiser, para definir uma nova."
   "joinconfig.welcome.alreadyRemoved": "Atualmente não tem uma mensagem de boas vindas definida para remover.\n\nVocê pode usar /SetWelcome, seguido pela mensagem que você quiser, para definir uma nova."
 
-  "joinconfig.joinlimit.help": "/JoinLimit allows you to set the default restrictions for any members who join your chat\n\nYour message should be like the example below:"
-  "joinconfig.joinlimit.success": "Your /JoinLimit has been set!\n\nNew members will automatically be restricted %s, until an admin unrestricts them."
-  "joinconfig.joinlimit.successTimed": "Your /JoinLimit has been set!\n\nNew members will automatically be restricted %s, for the time limit you specified."
+  "joinconfig.joinlimit.help": "/JoinLimit permite que você defina as restrições padrão para qualquer membro que se una ao seu chat\n\nSua mensagem deve ser parecida com o exemplo abaixo:"
+  "joinconfig.joinlimit.success": "Seu /JoinLimit foi definido!\n\nNovos membros vão automaticamente serem restritos %s, até que um administrador remova a restrição deles."
+  "joinconfig.joinlimit.successTimed": "Seu /JoinLimit foi definido!\n\nNovos membros vão automaticamente serem restritos %s, pelo limite de tempo que você especificou."
 
   "joinconfig.title.help": "/%s permite que você defina o título do chat com uma mensagem.\n\nSua mensagem deve parecer com isso:\n/%s Novo Título do chat\n\nDica: Tem um nome de chat que você sempre usa em títulos? Verifique /cn"
   "joinconfig.title.replyToTextHint": "Se você está respondendo a outra mensagem para definir o título do chat, ele deve ser apenas texto.\n\nDica: Tem um nome de chat que você sempre usa em títulos? Verifique /cn"
 
   "joinconfig.chatname.help": "/%s permite que você altere o nome do chat. Esse nome vai sempre aparecer na frente de qualquer título do chat definido usando /t ou /title.\n\nSua mensagem deve ser algo como:\n/%s MeuNomeDeChat"
-  "joinconfig.chatname.replyToTextHint": "If you're replying to another message to set the chat's name, it must be text-only."
+  "joinconfig.chatname.replyToTextHint": "Se você está respondendo a outra mensagem para definir o nome do chat, ela deve ser apenas texto."
   "joinconfig.chatname.success": "Seu Nome do Chat foi definido como:\n%s\n\nEle vai aparecer no início de todos os títulos de chat definidos usando /t ou /title."
 
 

From de0970e30d9f2cb1c76f8d7bab5d3ec64309d773 Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Sun, 17 Oct 2021 15:26:22 -0300
Subject: [PATCH 27/32] =?UTF-8?q?Traduzidas=20mensagens=20de=20restri?=
 =?UTF-8?q?=C3=A7=C3=A3o?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 37831cb..82b7b38 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -480,9 +480,9 @@
   /* ---------------------------------------------------------------------
                         JoinLimit - Used for /JoinLimit
      --------------------------------------------------------------------- */
-  "joinlimit.joinevents.userLimited": "%s has been restricted %s because /JoinLimit is enabled."
-  "joinlimit.joinevents.userLimitedTimed": "%s has been restricted %s until %s (UTC) because /JoinLimit is enabled."
-  "joinlimit.joinevents.signature": " has been restricted "
+  "joinlimit.joinevents.userLimited": "%s foi restrito %s porque /JoinLimit está habilitado."
+  "joinlimit.joinevents.userLimitedTimed": "%s foi restrito %s até %s (UTC) porque /JoinLimit está habilitado."
+  "joinlimit.joinevents.signature": " foi restrito "
 
 
   /* ---------------------------------------------------------------------

From 58dd068a1ada0f36d7567bb6d86488d062f1a8fb Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Sun, 17 Oct 2021 17:42:41 -0300
Subject: [PATCH 28/32] =?UTF-8?q?Tradu=C3=A7=C3=B5es=20da=20sess=C3=A3o=20?=
 =?UTF-8?q?de=20casamento?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 82b7b38..8d95f28 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -510,45 +510,45 @@
     "other": "casas"
   }
 
-  "marry.result.bothGainedHappiness": "🙂 Both gained %s happiness each."
-  "marry.result.oneLostHappiness": "🙂 %s lost %s happiness."
+  "marry.result.bothGainedHappiness": "🙂 Ambos ganharam %s felicidade cada um."
+  "marry.result.oneLostHappiness": "🙂 %s perdeu %s felicidade."
 
-  "marry.result.bothGainedChildren": "🥺 Both gained %s %s each."
-  "marry.result.oneTookChildrenFrom": "🥺 %s took %s %s from %s."
-  "marry.result.noChildrenGained": "🚫 No children gained this time."
+  "marry.result.bothGainedChildren": "🥺 Ambos ganharam %s %s cada um."
+  "marry.result.oneTookChildrenFrom": "🥺 %s levou %s %s de %s."
+  "marry.result.noChildrenGained": "🚫 Não tiveram crianças dessa vez."
 
-  "marry.result.bothGainedHouses": "🏠 Both gained %s %s each."
-  "marry.result.oneTookHousesFrom": "🏠 %s took %s %s from %s."
-  "marry.result.noHousesGained": "🚫 No houses gained this time."
+  "marry.result.bothGainedHouses": "🏠 Ambos ganharam %s %s cada um."
+  "marry.result.oneTookHousesFrom": "🏠 %s levou %s %s de %s."
+  "marry.result.noHousesGained": "🚫 Não tiveram casas dessa vez."
 
-  "marry.result.bothGainedNetWorth": "💰 Both gained $%s each."
-  "marry.result.oneTookNetWorthFrom": "💰 %s took $%s from %s."
-  "marry.result.noNetWorthGained": "🚫 No net worth gained this time."
+  "marry.result.bothGainedNetWorth": "💰 Ambos ganharam $%s cada um."
+  "marry.result.oneTookNetWorthFrom": "💰 %s levou $%s de %s."
+  "marry.result.noNetWorthGained": "🚫 Nenhum patrimônio líquido ganho desta vez."
 
-  "marry.help": "💍 Reply to someone you like with /marry to make it official."
+  "marry.help": "💍 Responda a alguém que você gosta muito com /marry para tornar oficial."
 
-  "marry.error.cooldown": "You must wait 1 minute between each time you check stats.\n\n%s"
+  "marry.error.cooldown": "Você deve esperar 1 minuto entre cada vez que você checar o status.\n\n%s"
 
   "marry.self": "Você não pode se casar consigo mesmo, mesmo que ninguém mais te queira..."
   "marry.main": "💘 %s Te propôs casamento!"
   "marry.CalsiBot": "Me desculpe, mas eu já estou casado com meu trabalho... 🥺"
 
-  "marry.divorce.help": "💔 Not feeling the love anymore? /divorce can be used to split up with people you've previously married."
+  "marry.divorce.help": "💔 Não está mais sentido amor? /divorce pode ser usado para se separar da pessoa com quem você estava anteriormente casado."
 
-  "marry.divorce.error.notMarried": "😐 You're not currently married to %s, so you can't divorce them..."
+  "marry.divorce.error.notMarried": "😐 Você não está atualmente casado com %s, então você não pode se divorciar..."
 
-  "marry.divorce.self": "Did you mean:\n/kms"
-  "marry.divorce.main": "🖤 %s divorced %s\n(happened %s %s so far)\n\nMarried for: %s\n\n%s\n\nSee your /MarryStats"
-  "marry.divorce.CalsiBot": "Let's see what my lawyers say about that... 🤧"
+  "marry.divorce.self": "Você quis dizer:\n/kms"
+  "marry.divorce.main": "🖤 %s se divorciou de %s\n(aconteceu %s %s tão rápido)\n\nCasado por: %s\n\n%s\n\nVeja seu /MarryStats"
+  "marry.divorce.CalsiBot": "Vamos ver o que meus advogadis dizem sobre isso... 🤧"
 
   "marry.marrystats.error.noData": "🥺 %s nunca foi casado."
-  "marry.marrystats.error.noMutualData": "😶 %s has never been married to %s."
+  "marry.marrystats.error.noMutualData": "😶 %s nunca se casou com %s."
 
   "marry.marrystats.CalsiBot": "Ao contrário de você, CalsiBot é puro e não tem histórico de casamento."
 
-  "marry.marrystats.own.information": "💖 %s – Marry Stats – 1️⃣:\n\n🙂 - Happiness: %s\n🥺 - Children: %s\n🏠 - Houses: %s\n💰 - Net Worth: $%s"
-  "marry.marrystats.own.marriages": "💖 %s – Marry Stats – 2️⃣:\n\n❤️ Marriages:\nRequests accepted most by %s\nRequests rejected most by %s\nMarried: %s | Rejected: %s"
-  "marry.marrystats.own.divorces": "💖 %s – Marry Stats – 3️⃣:\n\n🖤 Divorces:\nDivorced from %s most\nTotal: %s"
+  "marry.marrystats.own.information": "💖 %s – Status de Casamento – 1️⃣:\n\n🙂 - Felicidade: %s\n🥺 - Crianças: %s\n🏠 - Casas: %s\n💰 - Patrimônio Líquido: $%s"
+  "marry.marrystats.own.marriages": "💖 %s – Status de Casamento – 2️⃣:\n\n❤️ Casamentos:\nSolicitações aceitas na maioria por %s\nRequests rejected most by %s\nCasado: %s | Rejeitado: %s"
+  "marry.marrystats.own.divorces": "💖 %s – Status de Casamento – 3️⃣:\n\n🖤 Divórcios:\Divorciado de %s em maioria\nTotal: %s"
 
 
   /* ---------------------------------------------------------------------

From ccec151c5560d2387552bce01a8548bb6f654461 Mon Sep 17 00:00:00 2001
From: VasconsaBR <90463966+VasconsaBR@users.noreply.github.com>
Date: Sun, 17 Oct 2021 17:56:26 -0300
Subject: [PATCH 29/32] =?UTF-8?q?Traduzida=20as=20sess=C3=B5es=20/Permaban?=
 =?UTF-8?q?=20e=20/UnPermaban?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 54 +++++++++++++++++++++++++++---------------------------
 1 file changed, 27 insertions(+), 27 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 8d95f28..8a6634f 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -510,45 +510,45 @@
     "other": "casas"
   }
 
-  "marry.result.bothGainedHappiness": "🙂 Ambos ganharam %s felicidade cada um."
-  "marry.result.oneLostHappiness": "🙂 %s perdeu %s felicidade."
+  "marry.result.bothGainedHappiness": "🙂 Both gained %s happiness each."
+  "marry.result.oneLostHappiness": "🙂 %s lost %s happiness."
 
-  "marry.result.bothGainedChildren": "🥺 Ambos ganharam %s %s cada um."
-  "marry.result.oneTookChildrenFrom": "🥺 %s levou %s %s de %s."
-  "marry.result.noChildrenGained": "🚫 Não tiveram crianças dessa vez."
+  "marry.result.bothGainedChildren": "🥺 Both gained %s %s each."
+  "marry.result.oneTookChildrenFrom": "🥺 %s took %s %s from %s."
+  "marry.result.noChildrenGained": "🚫 No children gained this time."
 
-  "marry.result.bothGainedHouses": "🏠 Ambos ganharam %s %s cada um."
-  "marry.result.oneTookHousesFrom": "🏠 %s levou %s %s de %s."
-  "marry.result.noHousesGained": "🚫 Não tiveram casas dessa vez."
+  "marry.result.bothGainedHouses": "🏠 Both gained %s %s each."
+  "marry.result.oneTookHousesFrom": "🏠 %s took %s %s from %s."
+  "marry.result.noHousesGained": "🚫 No houses gained this time."
 
-  "marry.result.bothGainedNetWorth": "💰 Ambos ganharam $%s cada um."
-  "marry.result.oneTookNetWorthFrom": "💰 %s levou $%s de %s."
-  "marry.result.noNetWorthGained": "🚫 Nenhum patrimônio líquido ganho desta vez."
+  "marry.result.bothGainedNetWorth": "💰 Both gained $%s each."
+  "marry.result.oneTookNetWorthFrom": "💰 %s took $%s from %s."
+  "marry.result.noNetWorthGained": "🚫 No net worth gained this time."
 
-  "marry.help": "💍 Responda a alguém que você gosta muito com /marry para tornar oficial."
+  "marry.help": "💍 Reply to someone you like with /marry to make it official."
 
-  "marry.error.cooldown": "Você deve esperar 1 minuto entre cada vez que você checar o status.\n\n%s"
+  "marry.error.cooldown": "You must wait 1 minute between each time you check stats.\n\n%s"
 
   "marry.self": "Você não pode se casar consigo mesmo, mesmo que ninguém mais te queira..."
   "marry.main": "💘 %s Te propôs casamento!"
   "marry.CalsiBot": "Me desculpe, mas eu já estou casado com meu trabalho... 🥺"
 
-  "marry.divorce.help": "💔 Não está mais sentido amor? /divorce pode ser usado para se separar da pessoa com quem você estava anteriormente casado."
+  "marry.divorce.help": "💔 Not feeling the love anymore? /divorce can be used to split up with people you've previously married."
 
-  "marry.divorce.error.notMarried": "😐 Você não está atualmente casado com %s, então você não pode se divorciar..."
+  "marry.divorce.error.notMarried": "😐 You're not currently married to %s, so you can't divorce them..."
 
-  "marry.divorce.self": "Você quis dizer:\n/kms"
-  "marry.divorce.main": "🖤 %s se divorciou de %s\n(aconteceu %s %s tão rápido)\n\nCasado por: %s\n\n%s\n\nVeja seu /MarryStats"
-  "marry.divorce.CalsiBot": "Vamos ver o que meus advogadis dizem sobre isso... 🤧"
+  "marry.divorce.self": "Did you mean:\n/kms"
+  "marry.divorce.main": "🖤 %s divorced %s\n(happened %s %s so far)\n\nMarried for: %s\n\n%s\n\nSee your /MarryStats"
+  "marry.divorce.CalsiBot": "Let's see what my lawyers say about that... 🤧"
 
   "marry.marrystats.error.noData": "🥺 %s nunca foi casado."
-  "marry.marrystats.error.noMutualData": "😶 %s nunca se casou com %s."
+  "marry.marrystats.error.noMutualData": "😶 %s has never been married to %s."
 
   "marry.marrystats.CalsiBot": "Ao contrário de você, CalsiBot é puro e não tem histórico de casamento."
 
-  "marry.marrystats.own.information": "💖 %s – Status de Casamento – 1️⃣:\n\n🙂 - Felicidade: %s\n🥺 - Crianças: %s\n🏠 - Casas: %s\n💰 - Patrimônio Líquido: $%s"
-  "marry.marrystats.own.marriages": "💖 %s – Status de Casamento – 2️⃣:\n\n❤️ Casamentos:\nSolicitações aceitas na maioria por %s\nRequests rejected most by %s\nCasado: %s | Rejeitado: %s"
-  "marry.marrystats.own.divorces": "💖 %s – Status de Casamento – 3️⃣:\n\n🖤 Divórcios:\Divorciado de %s em maioria\nTotal: %s"
+  "marry.marrystats.own.information": "💖 %s – Marry Stats – 1️⃣:\n\n🙂 - Happiness: %s\n🥺 - Children: %s\n🏠 - Houses: %s\n💰 - Net Worth: $%s"
+  "marry.marrystats.own.marriages": "💖 %s – Marry Stats – 2️⃣:\n\n❤️ Marriages:\nRequests accepted most by %s\nRequests rejected most by %s\nMarried: %s | Rejected: %s"
+  "marry.marrystats.own.divorces": "💖 %s – Marry Stats – 3️⃣:\n\n🖤 Divorces:\nDivorced from %s most\nTotal: %s"
 
 
   /* ---------------------------------------------------------------------
@@ -562,13 +562,13 @@
     "userAlreadyPermabanned": "Este usuário já está banido permanentemente."
     "userAlreadyPermabannedAnswerText": "Usuário Já Banido Permanentemente"
 
-    "userUnPermabanned": "This user was Un-Permabanned by %s"
-    "userUnPermabannedAnswerText": "User Un-Permabanned"
-    "userAlreadyNotPermabanned": "This user is already not Permabanned."
-    "userAlreadyNotPermabannedAnswerText": "User Already Not Permabanned"
+    "userUnPermabanned": "Este usuário foi desbanido permanentemente por %s"
+    "userUnPermabannedAnswerText": "Usuário desbanido permanentemente"
+    "userAlreadyNotPermabanned": "Este usuário já não está permanentemente banido."
+    "userAlreadyNotPermabannedAnswerText": "Usuário já não está banido permanentemente"
   }
 
-  "permaban.replyHint": "Reply to the user who you want to permaban"
+  "permaban.replyHint": "Responda ao usuário que você deseja permaban"
 
 
   /* ---------------------------------------------------------------------

From ef0f2bf69e46aac7e8cb8eb4a43f83e45d736bf6 Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Sun, 17 Oct 2021 17:56:48 -0300
Subject: [PATCH 30/32] =?UTF-8?q?Iniciada=20sess=C3=A3o=20de=20alertas?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index 8d95f28..c443071 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -608,20 +608,20 @@
                   Warn - Used for /warn, /Warns, /MyWarns
      --------------------------------------------------------------------- */
   "warn.warned": "avisado"
-  "warn.checkWarnsOf": "check the warns of"
+  "warn.checkWarnsOf": "verifique os avisos de"
 
   "warn.callbacks": {
-    "warnRemovedBy": "Warn was removed by %s"
-    "warnRemovedAnswerText": "Warn Removed!"
-    "noWarns": "This user doesn't currently have any warns"
-    "noWarnsToRemoveAnswerText": "No Warns to Remove"
-    "noWarnsToShowAnswerText": "No Warns to Show"
-    "previousWarns": "This user's warns:"
-    "previousWarnsAnswerText": "Previous Warns Loaded"
-    "confirmRemoveAllWarns": "Are you sure you want to remove all of this user's warns?"
-    "confirmRemoveAllWarnsAnswerText": "Are You Sure?"
+    "warnRemovedBy": "O aviso foi removido por %s"
+    "warnRemovedAnswerText": "Aviso Removido!"
+    "noWarns": "Este usuário não possui avisos atualmente"
+    "noWarnsToRemoveAnswerText": "Sem Avisos para Remover"
+    "noWarnsToShowAnswerText": "Sem Avisos para Mostrar"
+    "previousWarns": "Avisosdesse usuário"
+    "previousWarnsAnswerText": "Avisos Anteriores Carregados"
+    "confirmRemoveAllWarns": "Tem certeza que quer remover todos os avisos desse usuário?"
+    "confirmRemoveAllWarnsAnswerText": "Tem Certeza?"
     "allWarnsRemovedBy": "All of this user's previous warns have been removed by %s"
-    "allWarnsRemovedAnswerText": "Previous Warns Removed"
+    "allWarnsRemovedAnswerText": "Avisos Anteriores Removidos"
     "chooseMaxWarnsValue": "At which number of warns should a user be banned?"
     "chooseMaxWarnsValueAnswerText": "Select a Value"
     "maxWarnsValueChangedBy": "Max Warn changed from %s to %s by %s"

From 5317349fb754521cc56b7816b3d3cf730cc4ce91 Mon Sep 17 00:00:00 2001
From: VasconsaBR <90463966+VasconsaBR@users.noreply.github.com>
Date: Sun, 17 Oct 2021 18:15:51 -0300
Subject: [PATCH 31/32] =?UTF-8?q?Traduzida=20as=20sess=C3=B5es=20/restrict?=
 =?UTF-8?q?,=20/unrestrict,=20/unban?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index da6fb0b..c5c051e 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -577,31 +577,31 @@
   "restrict.restricted": "restrito"
 
   "restrict.callbacks": {
-    "restrictionsReset": "Restrictions were reset by %s"
-    "restrictionsUpdated": "Restrictions updated by %s"
-    "restrictCancelled": "/restrict cancelled by %s"
+    "restrictionsReset": "As restrições foram redefinidas por %s"
+    "restrictionsUpdated": "Restrições atualizadas por %s"
+    "restrictCancelled": "/restrict cancelada por %s"
   }
 
   "restrict.info": {
-    "messages": "Controls if the user can send any messages at all."
-    "media": "Controls if the user can send audio, documents, photos, videos, video notes, and voice notes."
-    "stickergifs": "Controls if the user can send animations, games, stickers, and use inline bots."
-    "linkpreviews": "Controls if the user can add link previews to their messages."
+    "messages": "Controla se o usuário pode enviar qualquer mensagem."
+    "media": "Controla se o usuário pode enviar áudio, documentos, fotos, vídeos, notas de vídeo e notas de voz."
+    "stickergifs": "Controla se o usuário pode enviar animações, jogos, adesivos e usar bots inline."
+    "linkpreviews": "Controla se o usuário pode adicionar visualizações de link às suas mensagens."
   }
 
   "restrict.types": {
-    "messages": "from sending any Messages here"
-    "media": "from sending any Media messages here"
-    "stickergifs": "from sending any Stickers or GIFs here"
-    "linkpreviews": "from adding any Link Previews to their messages"
+    "messages": "de enviar qualquer mensagem aqui"
+    "media": "de enviar qualquer mensagem de mídia aqui"
+    "stickergifs": "de enviar adesivos ou GIFs aqui"
+    "linkpreviews": "de adicionar qualquer visualização de link às suas mensagens"
   }
 
-  "restrict.success": "%s has now been restricted %s by %s"
-  "restrict.successTimed": "%s has now been restricted %s until %s (UTC) by %s"
-  "restrict.replyHint": "Reply to the user whose restrictions you want to edit"
+  "restrict.success": "%s agora foi restrito %s por %s"
+  "restrict.successTimed": "%s agora foi restrito %s até %s (UTC) por %s"
+  "restrict.replyHint": "Responder ao usuário cujas restrições você deseja editar"
 
-  "restrict.main": "Use the toggles below to choose what %s can send here:"
-  "restrict.mainTimed": "Use the toggles below to choose what %s can send here:\n\nThe restrictions will automatically expire on:\n%s %s"
+  "restrict.main": "Use os botões de alternância abaixo para escolher o que %s pode enviar aqui:"
+  "restrict.mainTimed": "Use os botões de alternância abaixo para escolher o que %s pode enviar aqui:\n\nAs restrições irão expirar automaticamente em:\n%s %s"
 
 
   /* ---------------------------------------------------------------------

From b7f7d519176dba56d19df4191d6359463f1b00e2 Mon Sep 17 00:00:00 2001
From: arthursiq5 
Date: Sun, 17 Oct 2021 18:58:51 -0300
Subject: [PATCH 32/32] =?UTF-8?q?Corrigido=20erro=20na=20sess=C3=A3o=20de?=
 =?UTF-8?q?=20casamento?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ptbr.hjson | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/ptbr.hjson b/ptbr.hjson
index c5c051e..3f656f7 100644
--- a/ptbr.hjson
+++ b/ptbr.hjson
@@ -510,45 +510,45 @@
     "other": "casas"
   }
 
-  "marry.result.bothGainedHappiness": "🙂 Both gained %s happiness each."
-  "marry.result.oneLostHappiness": "🙂 %s lost %s happiness."
+  "marry.result.bothGainedHappiness": "🙂 Ambos ganharam %s felicidade cada um."
+  "marry.result.oneLostHappiness": "🙂 %s perdeu %s felicidade."
 
-  "marry.result.bothGainedChildren": "🥺 Both gained %s %s each."
-  "marry.result.oneTookChildrenFrom": "🥺 %s took %s %s from %s."
-  "marry.result.noChildrenGained": "🚫 No children gained this time."
+  "marry.result.bothGainedChildren": "🥺 Ambos ganharam %s %s cada um."
+  "marry.result.oneTookChildrenFrom": "🥺 %s levou %s %s de %s."
+  "marry.result.noChildrenGained": "🚫 Não tiveram crianças dessa vez."
 
-  "marry.result.bothGainedHouses": "🏠 Both gained %s %s each."
-  "marry.result.oneTookHousesFrom": "🏠 %s took %s %s from %s."
-  "marry.result.noHousesGained": "🚫 No houses gained this time."
+  "marry.result.bothGainedHouses": "🏠 Ambos ganharam %s %s cada um."
+  "marry.result.oneTookHousesFrom": "🏠 %s levou %s %s de %s."
+  "marry.result.noHousesGained": "🚫 Não tiveram casas dessa vez."
 
-  "marry.result.bothGainedNetWorth": "💰 Both gained $%s each."
-  "marry.result.oneTookNetWorthFrom": "💰 %s took $%s from %s."
-  "marry.result.noNetWorthGained": "🚫 No net worth gained this time."
+    "marry.result.bothGainedNetWorth": "💰 Ambos ganharam $%s cada um."
+  "marry.result.oneTookNetWorthFrom": "💰 %s levou $%s de %s."
+  "marry.result.noNetWorthGained": "🚫 Nenhum patrimônio líquido ganho desta vez."
 
-  "marry.help": "💍 Reply to someone you like with /marry to make it official."
+  "marry.help": "💍 Responda a alguém que você gosta muito com /marry para tornar oficial."
 
-  "marry.error.cooldown": "You must wait 1 minute between each time you check stats.\n\n%s"
+  "marry.error.cooldown": "Você deve esperar 1 minuto entre cada vez que você checar o status.\n\n%s"
 
   "marry.self": "Você não pode se casar consigo mesmo, mesmo que ninguém mais te queira..."
   "marry.main": "💘 %s Te propôs casamento!"
   "marry.CalsiBot": "Me desculpe, mas eu já estou casado com meu trabalho... 🥺"
 
-  "marry.divorce.help": "💔 Not feeling the love anymore? /divorce can be used to split up with people you've previously married."
+  "marry.divorce.help": "💔 Não está mais sentido amor? /divorce pode ser usado para se separar da pessoa com quem você estava anteriormente casado."
 
-  "marry.divorce.error.notMarried": "😐 You're not currently married to %s, so you can't divorce them..."
+  "marry.divorce.error.notMarried": "😐 Você não está atualmente casado com %s, então você não pode se divorciar..."
 
-  "marry.divorce.self": "Did you mean:\n/kms"
-  "marry.divorce.main": "🖤 %s divorced %s\n(happened %s %s so far)\n\nMarried for: %s\n\n%s\n\nSee your /MarryStats"
-  "marry.divorce.CalsiBot": "Let's see what my lawyers say about that... 🤧"
+  "marry.divorce.self": "Você quis dizer:\n/kms"
+  "marry.divorce.main": "🖤 %s se divorciou de %s\n(aconteceu %s %s tão rápido)\n\nCasado por: %s\n\n%s\n\nVeja seu /MarryStats"
+  "marry.divorce.CalsiBot": "Vamos ver o que meus advogadis dizem sobre isso... 🤧"
 
   "marry.marrystats.error.noData": "🥺 %s nunca foi casado."
-  "marry.marrystats.error.noMutualData": "😶 %s has never been married to %s."
+  "marry.marrystats.error.noMutualData": "😶 %s nunca se casou com %s."
 
   "marry.marrystats.CalsiBot": "Ao contrário de você, CalsiBot é puro e não tem histórico de casamento."
 
-  "marry.marrystats.own.information": "💖 %s – Marry Stats – 1️⃣:\n\n🙂 - Happiness: %s\n🥺 - Children: %s\n🏠 - Houses: %s\n💰 - Net Worth: $%s"
-  "marry.marrystats.own.marriages": "💖 %s – Marry Stats – 2️⃣:\n\n❤️ Marriages:\nRequests accepted most by %s\nRequests rejected most by %s\nMarried: %s | Rejected: %s"
-  "marry.marrystats.own.divorces": "💖 %s – Marry Stats – 3️⃣:\n\n🖤 Divorces:\nDivorced from %s most\nTotal: %s"
+  "marry.marrystats.own.information": "💖 %s – Status de Casamento – 1️⃣:\n\n🙂 - Felicidade: %s\n🥺 - Crianças: %s\n🏠 - Casas: %s\n💰 - Patrimônio Líquido: $%s"
+  "marry.marrystats.own.marriages": "💖 %s – Status de Casamento – 2️⃣:\n\n❤️ Casamentos:\nSolicitações aceitas na maioria por %s\nRequests rejected most by %s\nCasado: %s | Rejeitado: %s"
+  "marry.marrystats.own.divorces": "💖 %s – Status de Casamento – 3️⃣:\n\n🖤 Divórcios:\nDivorciado de %s em maioria\nTotal: %s"
 
 
   /* ---------------------------------------------------------------------