add initial complete webui, more ai commands for moderation, add api
This commit is contained in:
parent
19e794e34c
commit
173d4e7a52
112 changed files with 8176 additions and 780 deletions
4
telegram/locales/config.ts
Executable file
4
telegram/locales/config.ts
Executable file
|
@ -0,0 +1,4 @@
|
|||
export const langs = [
|
||||
{ code: 'en', label: 'English' },
|
||||
{ code: 'pt', label: 'Português' }
|
||||
];
|
237
telegram/locales/english.json
Executable file
237
telegram/locales/english.json
Executable file
|
@ -0,0 +1,237 @@
|
|||
{
|
||||
"userNotFound": "User not found.",
|
||||
"botWelcome": "*Hello! I'm {botName}!*\nI was made with love by some nerds who really love programming!\n\n*By using {botName}, you affirm that you have read to and agree with the privacy policy (/privacy). This helps you understand where your data goes when using this bot.*\n\nAlso, you can use /help to see the bot commands!",
|
||||
"botHelp": "*Hey, I'm {botName}, a simple bot made entirely from scratch in Telegraf and Node.js by some nerds who really love programming.*\n\nCheck out the source code: [Click here to go to GitHub]({sourceLink})\n\nClick on the buttons below to see which commands you can use!\n",
|
||||
"botPrivacy": "Check out [this link]({botPrivacy}) to read the bot's privacy policy.",
|
||||
"botAbout": "*About the bot*\n\nThe bot base was originally created by [Lucas Gabriel (lucmsilva)](https://github.com/lucmsilva651), now maintained by several people.\n\nThe bot's purpose is to bring fun to your groups here on Telegram in a relaxed and simple way. The bot also features some very useful commands, which you can see using the help command (/help).\n\nSpecial thanks to @givfnz2 for his many contributions to the bot!\n\nSee the source code: [Click here to go to GitHub]({sourceLink})",
|
||||
"aboutBot": "About the bot",
|
||||
"varStrings": {
|
||||
"varYes": "Yes",
|
||||
"varNo": "No",
|
||||
"varTo": "to",
|
||||
"varIs": "is",
|
||||
"varWas": "was",
|
||||
"varNone": "None",
|
||||
"varUnknown": "Unknown",
|
||||
"varBack": "⬅️ Back",
|
||||
"varMore": "➡️ More",
|
||||
"varLess": "➖ Less"
|
||||
},
|
||||
"unexpectedErr": "An unexpected error occurred: {error}",
|
||||
"errInvalidOption": "Whoops! Invalid option!",
|
||||
"commandDisabled": "🚫 This command is currently disabled for your account.\n\nYou can enable it in the web interface: {frontUrl}",
|
||||
"kickingMyself": "*Since you don't need me, I'll leave.*",
|
||||
"kickingMyselfErr": "Error leaving the chat.",
|
||||
"noPermission": "You don't have permission to run this command.",
|
||||
"privateOnly": "This command should only be used in private chats, not in groups.",
|
||||
"groupOnly": "This command should only be used in groups, not in private chats.",
|
||||
"botNameChanged": "*Bot name changed to* `{botName}`.",
|
||||
"botNameErr": "*Error changing bot name:*\n`{tgErr}`",
|
||||
"botDescChanged": "*Bot description changed to* `{botDesc}`.",
|
||||
"botDescErr": "*Error changing bot description:*\n`{tgErr}`",
|
||||
"gayAmount": "You are *{randomNum}%* gay!",
|
||||
"furryAmount": "You are *{randomNum}%* furry!",
|
||||
"randomNum": "*Generated number (0-10):* `{number}`.",
|
||||
"userInfo": "*User info*\n\n*Name:* `{userName}`\n*Username:* `{userHandle}`\n*User ID:* `{userId}`\n*Language:* `{userLang}`\n*Premium user:* `{userPremium}`",
|
||||
"chatInfo": "*Chat info*\n\n*Name:* `{chatName}`\n*Chat ID:* `{chatId}`\n*Handle:* `{chatHandle}`\n*Type:* `{chatType}`\n*Members:* `{chatMembersCount}`\n*Is a forum:* `{isForum}`",
|
||||
"funEmojiResult": "*You rolled {emoji} and got* `{value}`*!*\nYou don't know what that means? Me neither!",
|
||||
"gifErr": "*Something went wrong while sending the GIF. Please try again later.*\n\n{err}",
|
||||
"lastFm": {
|
||||
"helpEntry": "🎵 Last.fm",
|
||||
"helpDesc": "🎵 *Last.fm*\n\n- /lt | /lmu | /last | /lfm: Shows the last song from your Last.fm profile + the number of plays.\n- /setuser `<user>`: Sets the user for the command above.",
|
||||
"noUser": "*Please provide a Last.fm username.*\nExample: `/setuser <username>`",
|
||||
"noUserSet": "*You haven't set your Last.fm username yet.*\nUse the command /setuser to set.\n\nExample: `/setuser <username>`",
|
||||
"noRecentTracks": "*No recent tracks found for Last.fm user* `{lastfmUser}`*.*",
|
||||
"userHasBeenSet": "*Your Last.fm username has been set to:* `{lastUser}`.",
|
||||
"listeningTo": "{lastfmUser} *{nowPlaying} listening {playCount}*:\n\n{trackName} by {artistName}",
|
||||
"playCount": "to, for the {plays}th time",
|
||||
"apiErr": "*Error retrieving data for Last.fm user* {lastfmUser}.\n\n`{err}`"
|
||||
},
|
||||
"gitCurrentCommit": "*Current commit:* `{commitHash}`",
|
||||
"gitErrRetrievingCommit": "*Error retrieving commit:* {error}",
|
||||
"weatherStatus": {
|
||||
"provideLocation": "*Please provide a location.*",
|
||||
"invalidLocation": "*Invalid location. Try again.*",
|
||||
"resultMsg": "*Weather in {addressFirst}:*\n\n*Status:* `{getStatusEmoji(iconCode)} {wxPhraseLong}`\n*Temperature:* `{temperature} °{temperatureUnit}`\n*Feels like:* `{temperatureFeelsLike} °{temperatureUnit2}`\n*Humidity:* `{relativeHumidity}%`\n*Wind speed:* `{windSpeed} {speedUnit}`",
|
||||
"apiErr": "*An error occurred while retrieving the weather. Please try again later.*\n\n`{error}`",
|
||||
"apiKeyErr": "*An API key was not set by the bot owner. Please try again later.*"
|
||||
},
|
||||
"mainCommands": "ℹ️ Main Commands",
|
||||
"mainCommandsDesc": "ℹ️ *Main Commands*\n\n- /help: Show bot's help\n- /start: Start the bot\n- /privacy: Read the bot's Privacy Policy\n- /settings: Show your user settings",
|
||||
"usefulCommands": "🛠️ Useful Commands",
|
||||
"usefulCommandsDesc": "🛠️ *Useful commands*\n\n- /chatinfo: Send information about the group\n- /userinfo: Send information about yourself\n- /d | /device `<model>`: Search for a device on GSMArena and show its specs.\n/codename | /whatis `<device codename>`: Shows what device is based on the codename. Example: `/codename begonia`\n- /weather | /clima `<city>`: See weather status for a specific location.\n- /modarchive | /tma `<module id>`: Download a module from The Mod Archive.\n- /http `<HTTP code>`: Send details about a specific HTTP code. Example: `/http 404`",
|
||||
"funnyCommands": "😂 Funny Commands",
|
||||
"funnyCommandsDesc": "😂 *Funny Commands*\n\n- /gay: Check if you are gay\n- /furry: Check if you are a furry\n- /random: Pick a random number between 0-10",
|
||||
"interactiveEmojis": "🎲 Interactive Emojis",
|
||||
"interactiveEmojisDesc": "🎲 *Interactive emojis*\n\n- /dice: Roll a dice\n- /idice: Infinitely roll a colored dice\n- /slot: Try to combine the figures!\n- /ball: Try to kick the ball into the goal!\n- /bowling: Try to hit the pins!\n- /dart: Try to hit the target!",
|
||||
"animalCommands": "🐱 Animals",
|
||||
"animalCommandsDesc": "🐱 *Animals*\n\n- /soggy | /soggycat `<1 | 2 | 3 | 4 | orig | thumb | sticker | alt>`: Sends the [Soggy cat meme](https://knowyourmeme.com/memes/soggy-cat)\n- /cat: Sends a random picture of a cat.\n- /fox: Sends a random picture of a fox.\n- /duck: Sends a random picture of a duck.\n- /dog: Sends a random picture of a dog.\n- /httpcat `<http code>`: Send cat memes from http.cat with your specified HTTP code. Example: `/httpcat 404`",
|
||||
"ai": {
|
||||
"helpEntry": "✨ AI Commands",
|
||||
"helpDesc": "✨ *AI Commands*\n\n- /ask `<prompt>`: Ask a question to an AI model\n- /think `<prompt>`: Ask a thinking model about a question\n- /ai `<prompt>`: Ask your custom-set AI model a question\n- /aistop: Stop your current AI request\n- /aistats: Show your AI usage stats",
|
||||
"helpDescAdmin": "✨ *AI Commands*\n\n- /ask `<prompt>`: Ask a question to an AI model\n- /think `<prompt>`: Ask a thinking model about a question\n- /ai `<prompt>`: Ask your custom-set AI model a question\n- /aistop: Stop your current AI request\n- /aistats: Show your AI usage stats\n\n*Admin Commands:*\n- /queue: List current AI queue\n- /qdel `<user_id>`: Clear queue items for a user\n- /qlimit `<user_id>` `<duration>`: Timeout user from AI commands\n- /setexec `<user_id>` `<duration>`: Set max execution time for user\n- /rlimit `<user_id>`: Remove all AI limits for user\n- /limits: List all current AI limits",
|
||||
"disabled": "✨ AI features are currently disabled globally.",
|
||||
"disabledForUser": "✨ AI features are disabled for your account. You can enable them with the /settings command.",
|
||||
"pulling": "🔄 Model {model} not found locally, pulling...",
|
||||
"askGenerating": "✨ Generating response with {model}...",
|
||||
"askNoMessage": "✨ You need to ask me a question!",
|
||||
"languageCode": "Language",
|
||||
"thinking": "`🧠 Thinking...`",
|
||||
"finishedThinking": "`🧠 Done thinking.`",
|
||||
"urlWarning": "\n\n⚠️ Note: The model cannot access or visit links!",
|
||||
"inQueue": "ℹ️ You are {position} in the queue.",
|
||||
"queueFull": "🚫 You already have too many requests in the queue. Please wait for them to finish.",
|
||||
"startingProcessing": "✨ Starting to process your request...",
|
||||
"systemPrompt": "You are a friendly assistant called {botName}.\nCurrent Date/Time (UTC): {date}\n\n---\n\nUser message:\n{message}",
|
||||
"statusWaitingRender": "⏳ Streaming...",
|
||||
"statusRendering": "🖼️ Rendering...",
|
||||
"statusComplete": "✅ Complete!",
|
||||
"modelHeader": "🤖 *{model}* 🌡️ *{temperature}* {status}",
|
||||
"noChatFound": "No chat found",
|
||||
"pulled": "✅ Pulled {model} successfully, please retry the command.",
|
||||
"selectTemperature": "*Please select a temperature:*",
|
||||
"temperatureExplanation": "Temperature controls the randomness of the AI's responses. Lower values (e.g., 0.2) make the model more focused and deterministic, while higher values (e.g., 1.2 or above) make it more creative and random.",
|
||||
"queueEmpty": "✅ The AI queue is currently empty.",
|
||||
"queueList": "📋 *AI Queue Status*\n\n{queueItems}\n\n*Total items:* {totalItems}",
|
||||
"queueItem": "• User: {username} ({userId})\n Model: {model}\n Status: {status}\n",
|
||||
"queueCleared": "✅ Cleared {count} queue items for user {userId}.",
|
||||
"queueClearError": "❌ Error clearing queue for user {userId}: {error}",
|
||||
"noQueueItems": "ℹ️ No queue items found for user {userId}.",
|
||||
"userTimedOut": "⏱️ User {userId} has been timed out from AI commands until {timeoutEnd}.",
|
||||
"userTimeoutRemoved": "✅ AI timeout removed for user {userId}.",
|
||||
"userTimeoutError": "❌ Error setting timeout for user {userId}: {error}",
|
||||
"invalidDuration": "❌ Invalid duration format. Use: 1m, 1h, 1d, 1w, etc.",
|
||||
"userExecTimeSet": "⏱️ Max execution time set to {duration} for user {userId}.",
|
||||
"userExecTimeRemoved": "✅ Max execution time limit removed for user {userId}.",
|
||||
"userExecTimeError": "❌ Error setting execution time for user {userId}: {error}",
|
||||
"invalidUserId": "❌ Invalid user ID. Please provide a valid Telegram user ID.",
|
||||
"userNotFound": "❌ User {userId} not found in database.",
|
||||
"userTimedOutFromAI": "⏱️ You are currently timed out from AI commands until {timeoutEnd}.",
|
||||
"requestTooLong": "⏱️ Your request is taking too long. It has been cancelled to prevent system overload.",
|
||||
"userLimitsRemoved": "✅ All AI limits removed for user {userId}.",
|
||||
"userLimitRemoveError": "❌ Error removing limits for user {userId}: {error}",
|
||||
"limitsHeader": "📋 *Current AI Limits*",
|
||||
"noLimitsSet": "✅ No AI limits are currently set.",
|
||||
"timeoutLimitsHeader": "*🔒 Users with AI Timeouts:*",
|
||||
"timeoutLimitItem": "• {displayName} ({userId}) - Until: {timeoutEnd}",
|
||||
"execLimitsHeader": "*⏱️ Users with Execution Time Limits:*",
|
||||
"execLimitItem": "• {displayName} ({userId}) - Max: {execTime}",
|
||||
"limitsListError": "❌ Error retrieving limits: {error}",
|
||||
"requestStopped": "🛑 Your AI request has been stopped.",
|
||||
"requestRemovedFromQueue": "🛑 Your AI request has been removed from the queue.",
|
||||
"noActiveRequest": "ℹ️ You don't have any active AI requests to stop.",
|
||||
"executionTimeoutReached": "\n\n⏱️ Max execution time limit reached!"
|
||||
},
|
||||
"maInvalidModule": "Please provide a valid module ID from The Mod Archive.\nExample: `/modarchive 81574`",
|
||||
"maDownloadError": "Error downloading the file. Check the module ID and try again.",
|
||||
"ytDownload": {
|
||||
"helpEntry": "📺 Video Download",
|
||||
"helpDesc": "📺 *Video Download*\n\n- /yt | /ytdl | /sdl | /dl | /video `<video link>`: Download a video from some platforms (e.g. YouTube, Instagram, Facebook, etc.).\n\n See [this link](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md) for more information and which services are supported.\n\n*Note: Telegram is currently limiting bot uploads to 50MB, which means that if the video you want to download is larger than 50MB, the quality will be reduced to try to upload it anyway. We're trying our best to work around or fix this problem.*",
|
||||
"downloadingVid": "⬇️ *Downloading video...*",
|
||||
"libNotFound": "*It seems that the yt-dlp executable does not exist on our server...\n\nIn that case, the problem is on our end! Please wait until we have noticed and solved the problem.*",
|
||||
"checkingSize": "🔎 *Checking if the video exceeds the 50MB limit...*",
|
||||
"uploadingVid": "⬆️ *Uploading video...*",
|
||||
"msgDesc": "{userMention}*, there is your downloaded video.*",
|
||||
"downloadErr": "*Error during YT video download:*\n\n`{err}`",
|
||||
"uploadErr": "Error uploading file. Please try again later.",
|
||||
"uploadLimit": "*This video exceeds the 50 MB upload limit imposed by Telegram on our bot. Please try another video. We're doing our best to increase this limit.*",
|
||||
"sizeLimitWarn": "*This video had its quality reduced because it exceeded the 50MB limit for uploads imposed by Telegram.*",
|
||||
"noLink": "Please provide a link to a video to download.",
|
||||
"botDetection": "My server is being rate limited by the video provider! Please try again later, or ask the bot owner to add their cookies/account."
|
||||
},
|
||||
"settings": {
|
||||
"helpEntry": "🔧 Settings",
|
||||
"helpDesc": "🔧 *Settings*\n\n- /settings: Show your settings",
|
||||
"mainSettings": "🔧 *Settings*\n\n- AI Enabled: {aiEnabled}\n- /ai Custom Model: {aiModel}\n- AI Temperature: {aiTemperature}\n- Total AI Requests: {aiRequests}\n- Total AI Characters Sent/Recieved: {aiCharacters}\n- Language: {languageCode}",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"selectSetting": "Please select a setting to modify or view.",
|
||||
"ai": {
|
||||
"aiEnabled": "AI Enabled",
|
||||
"aiModel": "AI Model",
|
||||
"aiTemperature": "AI Temperature",
|
||||
"aiRequests": "Total AI Requests",
|
||||
"aiCharacters": "Total AI Characters Sent/Recieved",
|
||||
"languageCode": "Language",
|
||||
"aiEnabledSetTo": "AI Enabled set to {aiEnabled}",
|
||||
"aiModelSetTo": "AI Model set to {aiModel}",
|
||||
"aiTemperatureSetTo": "AI Temperature set to {aiTemperature}",
|
||||
"selectSeries": "*Please select a model series.*\n\nThis will be set as the default model for the /ai command.",
|
||||
"seriesDescription": "{seriesDescription}",
|
||||
"selectParameterSize": "*Please select a parameter size for {seriesLabel}*.",
|
||||
"parameterSizeExplanation": "Parameter size (e.g. 2B, 4B) refers to the number of parameters in the model. Larger models may be more capable but require more resources.",
|
||||
"modelSetTo": "Model set to {aiModel} ({parameterSize})",
|
||||
"selectTemperature": "*Please select a temperature:*",
|
||||
"temperatureExplanation": "Temperature controls the randomness of the AI's responses. Lower values (e.g., 0.2) make the model more focused and deterministic, while higher values (e.g., 1.2 or above) make it more creative and random.",
|
||||
"showThinking": "Show Model Thinking"
|
||||
},
|
||||
"selectLanguage": "*Please select a language:*",
|
||||
"languageCodeSetTo": "Language set to {languageCode}",
|
||||
"unknownAction": "Unknown action."
|
||||
},
|
||||
"botUpdated": "Bot updated with success.\n\n```{result}```",
|
||||
"errorUpdatingBot": "Error updating bot\n\n{error}",
|
||||
"catImgErr": "Sorry, but I couldn't get the cat photo you wanted.",
|
||||
"catGifErr": "Sorry, but I couldn't get the cat GIF you wanted.",
|
||||
"dogImgErr": "Sorry, but I couldn't get the dog photo you wanted.",
|
||||
"mlpInvalidCharacter": "Please provide a valid character name.",
|
||||
"mlpInvalidEpisode": "Please provide a valid episode number.",
|
||||
"foxApiErr": "An error occurred while fetching data from the API.\n\n`{error}`",
|
||||
"duckApiErr": "An error occurred while fetching data from the API.\n\n`{error}`",
|
||||
"httpCodes": {
|
||||
"invalidCode": "Please enter a valid HTTP code.",
|
||||
"fetchErr": "An error occurred while fetching the HTTP code.",
|
||||
"notFound": "HTTP code not found.",
|
||||
"resultMsg": "*HTTP Code*: {code}\n*Name*: `{message}`\n*Description*: {description}"
|
||||
},
|
||||
"ponyApi": {
|
||||
"helpEntry": "🐴 My Little Pony",
|
||||
"helpDesc": "🐴 *My Little Pony*\n\n- /mlp: Displays this help message.\n- /mlpchar `<character name>`: Shows specific information about a My Little Pony character. Example: `/mlpchar Twilight Sparkle`\n- /mlpep: Shows specific information about a My Little Pony episode. Example: `/mlpep 136`\n- /mlpcomic `<comic name>`: Shows specific information about a My Little Pony comic. Example: `/mlpcomic Nightmare Rarity`\n- /rpony | /randompony | /mlpart: Sends a random artwork made by the My Little Pony community.",
|
||||
"charRes": "*{name} (ID: {id})*\n\n*Alias:* `{alias}`\n*Sex:* `{sex}`\n*Residence:* `{residence}`\n*Occupation:* `{occupation}`\n*Kind:* `{kind}`\n\n*Fandom URL:*\n[{url}]({url})",
|
||||
"epRes": "*{name} (ID: {id})*\n\n*Season:* `{season}`\n*Episode:* `{episode}`\n*Overall Ep.:* `{overall}`\n*Release date:* `{airdate}`\n*Story by:* `{storyby}`\n*Written by:* `{writtenby}`\n*Storyboard:* `{storyboard}`\n\n*Fandom URL:*\n[{url}]({url})",
|
||||
"comicRes": "*{name} (ID: {id})*\n\n*Series:* `{series}`\n*Writer:* `{writer}`\n*Artist:* `{artist}`\n*Colorist:* `{colorist}`\n*Letterer:* `{letterer}`\n*Editor:* `{editor}`\n\n*Fandom URL:*\n[{url}]({url})",
|
||||
"noCharName": "Please provide the character's name.",
|
||||
"noCharFound": "No character found.",
|
||||
"noEpisodeNum": "Please provide the episode's number.",
|
||||
"noEpisodeFound": "No episode found.",
|
||||
"noComicName": "Please provide the comic's name.",
|
||||
"noComicFound": "No comic found.",
|
||||
"searching": "Searching for a character…",
|
||||
"apiErr": "An error occurred while fetching data from the API.\n\n`{error}`"
|
||||
},
|
||||
"codenameCheck": {
|
||||
"noCodename": "Please provide a codename to search.",
|
||||
"invalidCodename": "Invalid codename.",
|
||||
"notFound": "Phone not found.",
|
||||
"resultMsg": "*Name:* `{name}`\n*Brand:* `{brand}`\n*Model:* `{model}`\n*Codename:* `{codename}`",
|
||||
"apiErr": "An error occurred while fetching data from the API.\n\n`{err}`"
|
||||
},
|
||||
"chatNotFound": "Chat not found.",
|
||||
"noFileProvided": "Please provide a file to send.",
|
||||
"gsmarenaProvidePhoneName": "Please provide the phone name.",
|
||||
"gsmarenaSearchingFor": "Searching for `{phone}`...",
|
||||
"gsmarenaNoPhonesFound": "No phones found for `{phone}`.",
|
||||
"gsmarenaNoPhonesFoundBoth": "No phones found for `{name}` and `{phone}`.",
|
||||
"gsmarenaSelectDevice": "Please select your device:",
|
||||
"gsmarenaNotAllowed": "you are not allowed to interact with this.",
|
||||
"gsmarenaInvalidOrExpired": "Whoops, invalid or expired option. Please try again.",
|
||||
"gsmarenaDeviceDetails": "these are the details of your device:",
|
||||
"gsmarenaErrorFetchingDetails": "Error fetching phone details.",
|
||||
"info": {
|
||||
"ping": "Pong!",
|
||||
"pinging": "Pinging...",
|
||||
"pong": "Pong in {ms}ms.",
|
||||
"botInfo": "Kowalski is a multipurpose bot with a variety of features, including AI, moderation, and more.",
|
||||
"credits": "Kowalski was created by ihatenodejs/Aidan, with contributions from the open-source community. It is licensed under the Unlicense license."
|
||||
},
|
||||
"aiStats": {
|
||||
"header": "✨ *Your AI Usage Stats*",
|
||||
"requests": "*Total AI Requests:* {aiRequests}",
|
||||
"characters": "*Total AI Characters:* {aiCharacters}\n_That's around {bookCount} books of text!_"
|
||||
},
|
||||
"twoFactor": {
|
||||
"helpEntry": "🔒 2FA",
|
||||
"helpDesc": "🔒 *2FA*\n\n- /2fa: Show your 2FA settings",
|
||||
"codeMessage": "🔒 *{botName} 2FA*\n\nYour 2FA code is: `{code}`"
|
||||
}
|
||||
}
|
232
telegram/locales/portuguese.json
Executable file
232
telegram/locales/portuguese.json
Executable file
|
@ -0,0 +1,232 @@
|
|||
{
|
||||
"botWelcome": "*Olá! Eu sou o {botName}!*\nEu fui feito com amor por uns nerds que amam programação!\n\n*Ao usar o {botName}, você afirma que leu e concorda com a política de privacidade (/privacy). Isso ajuda você a entender onde seus dados vão ao usar este bot.*\n\nAlém disso, você pode usar /help para ver os meus comandos!",
|
||||
"botHelp": "*Oi, eu sou o {botName}, um bot simples feito do zero em Telegraf e Node.js por uns nerds que gostam de programação.*\n\nVeja o código fonte: [Clique aqui para ir ao GitHub]({sourceLink})\n\nClique nos botões abaixo para ver quais comandos você pode usar!\n",
|
||||
"botPrivacy": "Acesse [este link]({botPrivacy}) para ler a política de privacidade do bot.",
|
||||
"botAbout": "*Sobre o bot*\n\nA base deste bot foi feita originalmente por [Lucas Gabriel (lucmsilva)](https://github.com/lucmsilva651), agora sendo mantido por várias pessoas.\n\nA intenção do bot é trazer diversão para os seus grupos aqui no Telegram de uma maneira bem descontraida e simples. O bot também conta com alguns comandos bem úteis, que você consegue ver com o comando de ajuda (/help).\n\nAgradecimento especial ao @givfnz2 pelas suas várias contribuições ao bot!\n\nVeja o código fonte: [Clique aqui para ir ao GitHub]({sourceLink})",
|
||||
"aboutBot": "Sobre o bot",
|
||||
"varStrings": {
|
||||
"varYes": "Sim",
|
||||
"varNo": "Não",
|
||||
"varTo": "",
|
||||
"varIs": "está",
|
||||
"varWas": "estava",
|
||||
"varNone": "Nenhum",
|
||||
"varUnknown": "Desconhecido",
|
||||
"varBack": "⬅️ Voltar",
|
||||
"varMore": "➡️ Mais",
|
||||
"varLess": "➖ Menos"
|
||||
},
|
||||
"unexpectedErr": "Ocorreu um erro inesperado: {error}",
|
||||
"errInvalidOption": "Ops! Opção inválida!",
|
||||
"commandDisabled": "🚫 Este comando está atualmente desativado para sua conta.\n\nVocê pode habilitá-lo na interface web: {frontUrl}",
|
||||
"kickingMyself": "*Já que você não precisa de mim, vou sair daqui.*",
|
||||
"kickingMyselfErr": "Erro ao sair do chat.",
|
||||
"noPermission": "Você não tem permissão para executar este comando.",
|
||||
"privateOnly": "Este comando deve ser usado apenas em chats privados, não em grupos.",
|
||||
"groupOnly": "Este comando deve ser usado apenas em grupos, não em chats privados.",
|
||||
"botNameChanged": "*Nome do bot alterado para* `{botName}`.",
|
||||
"botNameErr": "*Erro ao alterar o nome do bot:*\n`{tgErr}`",
|
||||
"botDescChanged": "*Descrição do bot alterada para* `{botDesc}`.",
|
||||
"botDescErr": "*Erro ao alterar a descrição do bot:*\n`{tgErr}`",
|
||||
"gayAmount": "Você é *{randomNum}%* gay!",
|
||||
"furryAmount": "Você é *{randomNum}%* furry!",
|
||||
"randomNum": "*Número gerado (0-10):* `{number}`.",
|
||||
"userInfo": "*Informações do usuário*\n\n*Nome:* `{userName}`\n*Usuário:* `{userHandle}`\n*ID:* `{userId}`\n*Idioma:* `{userLang}`\n*Usuário Premium:* `{userPremium}`",
|
||||
"chatInfo": "*Informações do chat*\n\n*Nome:* `{chatName}`\n*ID do chat:* `{chatId}`\n*Identificador:* `{chatHandle}`\n*Tipo:* `{chatType}`\n*Membros:* `{chatMembersCount}`\n*É um fórum:* `{isForum}`",
|
||||
"funEmojiResult": "*Você lançou {emoji} e obteve *`{value}`*!*\nVocê não sabe o que isso significa? Nem eu!",
|
||||
"gifErr": "*Algo deu errado ao enviar o GIF. Tente novamente mais tarde.*\n\n{err}",
|
||||
"lastFm": {
|
||||
"helpEntry": "🎵 Last.fm",
|
||||
"helpDesc": "🎵 *Last.fm*\n\n- /lt | /lmu | /last | /lfm: Mostra a última música do seu perfil no Last.fm + o número de reproduções.\n- /setuser `<usuário>`: Define o usuário para o comando acima.",
|
||||
"noUser": "*Por favor, forneça um nome de usuário do Last.fm.*\nExemplo: `/setuser <username>`",
|
||||
"noUserSet": "*Você ainda não definiu seu nome de usuário do Last.fm.*\nUse o comando /setuser para definir.\n\nExemplo: `/setuser <username>`",
|
||||
"noRecentTracks": "*Nenhuma faixa recente encontrada para o usuário do Last.fm* `{lastfmUser}`*.*",
|
||||
"userHasBeenSet": "*Seu nome de usuário do Last.fm foi definido como:* `{lastUser}`.",
|
||||
"listeningTo": "{lastfmUser} *{nowPlaying} ouvindo{playCount}*:\n\n{trackName} por {artistName}",
|
||||
"playCount": " pela {plays}ª vez",
|
||||
"apiErr": "*Erro ao recuperar dados para o usuário do Last.fm* {lastfmUser}.\n\n`{err}`"
|
||||
},
|
||||
"gitCurrentCommit": "*Commit atual:* `{commitHash}`",
|
||||
"gitErrRetrievingCommit": "*Erro ao obter o commit:* {error}",
|
||||
"weatherStatus": {
|
||||
"provideLocation": "*Por favor, forneça uma localização.*",
|
||||
"invalidLocation": "*Localização inválida. Tente novamente.*",
|
||||
"resultMsg": "*Clima em {addressFirst}:*\n\n*Estado:* `{getStatusEmoji(iconCode)} {wxPhraseLong}`\n*Temperatura:* `{temperature} °{temperatureUnit}`\n*Sensação térmica:* `{temperatureFeelsLike} °{temperatureUnit2}`\n*Umidade:* `{relativeHumidity}%`\n*Velocidade do vento:* `{windSpeed} {speedUnit}`",
|
||||
"apiErr": "*Ocorreu um erro ao obter o clima. Tente novamente mais tarde.*\n\n`{error}`",
|
||||
"apiKeyErr": "*Uma chave de API não foi definida pelo proprietário do bot. Tente novamente mais tarde.*"
|
||||
},
|
||||
"mainCommands": "ℹ️ Comandos principais",
|
||||
"mainCommandsDesc": "ℹ️ *Comandos principais*\n\n- /help: Exibe a ajuda do bot\n- /start: Inicia o bot\n- /privacy: Leia a política de privacidade do bot\n- /settings: Exibe suas configurações",
|
||||
"usefulCommands": "🛠️ Comandos úteis",
|
||||
"usefulCommandsDesc": "🛠️ *Comandos úteis*\n\n- /chatinfo: Envia informações sobre o grupo\n- /userinfo: Envia informações sobre você\n- /d | /device `<modelo>`: Pesquisa um dispositivo no GSMArena e mostra suas especificações.\n- /weather | /clima `<cidade>`: Veja o status do clima para uma localização específica\n- /modarchive | /tma `<id do módulo>`: Baixa um módulo do The Mod Archive.\n- /http `<código HTTP>`: Envia detalhes sobre um código HTTP específico. Exemplo: `/http 404`",
|
||||
"funnyCommands": "😂 Comandos engraçados",
|
||||
"funnyCommandsDesc": "*Comandos engraçados*\n\n- /gay: Verifique se você é gay\n- /furry: Verifique se você é furry\n- /random: Escolhe um número aleatório entre 0-10",
|
||||
"interactiveEmojis": "🎲 Emojis interativos",
|
||||
"interactiveEmojisDesc": "🎲 *Emojis interativos*\n\n- /dice: Jogue um dado\n- /idice: Role infinitamente um dado colorido\n- /slot: Tente combinar as figuras!\n- /ball: Tente chutar a bola no gol!\n- /bowling: Tente derrubar os pinos!\n- /dart: Tente acertar o alvo!",
|
||||
"animalCommands": "🐱 Animais",
|
||||
"animalCommandsDesc": "🐱 *Animais*\n\n- /soggy | /soggycat `<1 | 2 | 3 | 4 | orig | thumb | sticker | alt>`: Envia o [meme do gato encharcado](https://knowyourmeme.com/memes/soggy-cat)\n- /cat - Envia uma foto aleatória de um gato.\n- /fox - Envia uma foto aleatória de uma raposa.\n- /duck - Envia uma foto aleatória de um pato.\n- /dog - Envia uma imagem aleatória de um cachorro.\n- /httpcat `<código http>`: Envia memes de gato do http.cat com o código HTTP especificado. Exemplo: `/httpcat 404`",
|
||||
"ai": {
|
||||
"helpEntry": "✨ Comandos de IA",
|
||||
"helpDesc": "✨ *Comandos de IA*\n\n- /ask `<prompt>`: Fazer uma pergunta a uma IA\n- /think `<prompt>`: Fazer uma pergunta a um modelo de pensamento\n- /ai `<prompt>`: Fazer uma pergunta a um modelo de IA personalizado\n- /aistop: Parar sua solicitação de IA atual\n- /aistats: Mostra suas estatísticas de uso de IA",
|
||||
"helpDescAdmin": "✨ *Comandos de IA*\n\n- /ask `<prompt>`: Fazer uma pergunta a uma IA\n- /think `<prompt>`: Fazer uma pergunta a um modelo de pensamento\n- /ai `<prompt>`: Fazer uma pergunta a um modelo de IA personalizado\n- /aistop: Parar sua solicitação de IA atual\n- /aistats: Mostra suas estatísticas de uso de IA\n\n*Comandos de Admin:*\n- /queue: Listar fila atual de IA\n- /qdel `<user_id>`: Limpar itens da fila para um usuário\n- /qlimit `<user_id>` `<duration>`: Timeout de usuário dos comandos de IA\n- /setexec `<user_id>` `<duration>`: Definir tempo máximo de execução para usuário\n- /rlimit `<user_id>`: Remover todos os limites de IA para usuário\n- /limits: Listar todos os limites atuais de IA",
|
||||
"disabled": "A AIApi foi desativada\\.",
|
||||
"disabledForUser": "As funções de IA estão desativadas para a sua conta. Você pode ativá-las com o comando /settings.",
|
||||
"pulling": "🔄 Modelo {model} não encontrado localmente, baixando...",
|
||||
"askGenerating": "✨ Gerando resposta com {model}...",
|
||||
"askNoMessage": "⚠️ Você precisa fazer uma pergunta.",
|
||||
"thinking": "`🧠 Pensando...`",
|
||||
"finishedThinking": "`🧠 Pensamento concluido.`",
|
||||
"urlWarning": "\n\n⚠️ Nota: O modelo de IA não pode acessar ou visitar links!",
|
||||
"inQueue": "ℹ️ Você é o {position} na fila.",
|
||||
"queueFull": "🚫 Você já tem muitas solicitações na fila. Por favor, espere que elas terminem.",
|
||||
"startingProcessing": "✨ Começando a processar o seu pedido...",
|
||||
"aiEnabled": "IA",
|
||||
"aiModel": "Modelo de IA",
|
||||
"aiTemperature": "Temperatura",
|
||||
"selectSeries": "*Por favor, selecione uma série de modelos de IA.*",
|
||||
"seriesDescription": "{seriesDescription}",
|
||||
"selectParameterSize": "Por favor, selecione um tamanho de parâmetro para {seriesLabel}.",
|
||||
"parameterSizeExplanation": "O tamanho do parâmetro (ex: 2B, 4B) refere-se ao número de parâmetros do modelo. Modelos maiores podem ser mais capazes, mas exigem mais recursos.",
|
||||
"systemPrompt": "Você é um assistente de Telegram chamado {botName}.\nData/Hora atual (UTC): {date}\n\n---\n\nMensagem do usuário:\n{message}",
|
||||
"statusWaitingRender": "⏳ Transmitindo...",
|
||||
"statusRendering": "🖼️ Renderizando...",
|
||||
"statusComplete": "✅ Completo!",
|
||||
"modelHeader": "🤖 *{model}* 🌡️ *{temperature}* {status}",
|
||||
"noChatFound": "Nenhum chat encontrado",
|
||||
"pulled": "✅ {model} baixado com sucesso, por favor tente o comando novamente.",
|
||||
"queueEmpty": "✅ A fila de IA está atualmente vazia.",
|
||||
"queueList": "📋 *Status da Fila de IA*\n\n{queueItems}\n\n*Total de itens:* {totalItems}",
|
||||
"queueItem": "• Usuário: {username} ({userId})\n Modelo: {model}\n Status: {status}\n",
|
||||
"queueCleared": "✅ Limpos {count} itens da fila para o usuário {userId}.",
|
||||
"queueClearError": "❌ Erro ao limpar fila para o usuário {userId}: {error}",
|
||||
"noQueueItems": "ℹ️ Nenhum item da fila encontrado para o usuário {userId}.",
|
||||
"userTimedOut": "⏱️ Usuário {userId} foi suspenso dos comandos de IA até {timeoutEnd}.",
|
||||
"userTimeoutRemoved": "✅ Timeout de IA removido para o usuário {userId}.",
|
||||
"userTimeoutError": "❌ Erro ao definir timeout para o usuário {userId}: {error}",
|
||||
"invalidDuration": "❌ Formato de duração inválido. Use: 1m, 1h, 1d, 1w, etc.",
|
||||
"userExecTimeSet": "⏱️ Tempo máximo de execução definido para {duration} para o usuário {userId}.",
|
||||
"userExecTimeRemoved": "✅ Limite de tempo máximo de execução removido para o usuário {userId}.",
|
||||
"userExecTimeError": "❌ Erro ao definir tempo de execução para o usuário {userId}: {error}",
|
||||
"invalidUserId": "❌ ID de usuário inválido. Por favor, forneça um ID de usuário válido do Telegram.",
|
||||
"userNotFound": "❌ Usuário {userId} não encontrado na base de dados.",
|
||||
"userTimedOutFromAI": "⏱️ Você está atualmente suspenso dos comandos de IA até {timeoutEnd}.",
|
||||
"requestTooLong": "⏱️ Sua solicitação está demorando muito. Foi cancelada para evitar sobrecarga do sistema.",
|
||||
"userLimitsRemoved": "✅ Todos os limites de IA removidos para o usuário {userId}.",
|
||||
"userLimitRemoveError": "❌ Erro ao remover limites para o usuário {userId}: {error}",
|
||||
"limitsHeader": "📋 *Limites Atuais de IA*",
|
||||
"noLimitsSet": "✅ Nenhum limite de IA está atualmente definido.",
|
||||
"timeoutLimitsHeader": "*🔒 Usuários com Timeouts de IA:*",
|
||||
"timeoutLimitItem": "• {displayName} ({userId}) - Até: {timeoutEnd}",
|
||||
"execLimitsHeader": "*⏱️ Usuários com Limites de Tempo de Execução:*",
|
||||
"execLimitItem": "• {displayName} ({userId}) - Máx: {execTime}",
|
||||
"limitsListError": "❌ Erro ao recuperar limites: {error}",
|
||||
"requestStopped": "🛑 Sua solicitação de IA foi interrompida.",
|
||||
"requestRemovedFromQueue": "🛑 Sua solicitação de IA foi removida da fila.",
|
||||
"noActiveRequest": "ℹ️ Você não tem nenhuma solicitação ativa de IA para parar.",
|
||||
"executionTimeoutReached": "\n\n⏱️ Limite máximo de tempo de execução atingido!"
|
||||
},
|
||||
"maInvalidModule": "Por favor, forneça um ID de módulo válido do The Mod Archive.\nExemplo: `/modarchive 81574`",
|
||||
"maDownloadError": "Erro ao baixar o arquivo. Verifique o ID do módulo e tente novamente.",
|
||||
"ytDownload": {
|
||||
"helpEntry": "📺 Download de vídeos",
|
||||
"helpDesc": "📺 *Download de vídeos*\n\n- /yt | /ytdl | /sdl | /dl | /video `<link do vídeo>`: Baixa um vídeo de algumas plataformas (ex: YouTube, Instagram, Facebook, etc.).\n\nConsulte [este link](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md) para obter mais informações e saber quais serviços são compatíveis.\n\n*Nota: O Telegram está atualmente limitando os uploads de bots a 50MB, o que significa que se o vídeo que você deseja baixar for maior que 50MB, a qualidade será reduzida para tentar carregá-lo de qualquer maneira. Estamos fazendo o possível para contornar ou corrigir esse problema.*",
|
||||
"downloadingVid": "⬇️ *Baixando vídeo...*",
|
||||
"libNotFound": "*Parece que o executável do yt-dlp não existe no nosso servidor...\n\nNesse caso, o problema está no nosso lado! Aguarde até que tenhamos notado e resolvido o problema.*",
|
||||
"checkingSize": "🔎 *Verificando se o vídeo excede o limite de 50 MB...*",
|
||||
"uploadingVid": "⬆️ *Enviando vídeo...*",
|
||||
"msgDesc": "{userMention}*, aqui está o seu vídeo baixado.*",
|
||||
"downloadErr": "*Erro durante o download do vídeo do YT:*\n\n`{err}`",
|
||||
"uploadErr": "Erro ao enviar o arquivo. Tente novamente mais tarde.",
|
||||
"uploadLimit": "*Este vídeo excede o limite de carregamento de 50 MB imposto pelo Telegram ao nosso bot. Por favor, tente outro vídeo. Estamos fazendo o possível para aumentar esse limite.*",
|
||||
"sizeLimitWarn": "*Esse vídeo teve a qualidade reduzida por estar excedendo o limite de 50MB para uploads imposto pelo Telegram.*",
|
||||
"noLink": "*Por favor, forneça um link de um vídeo para download.*",
|
||||
"botDetection": "Meu servidor está com a taxa limitada pelo provedor de vídeo! Tente novamente mais tarde ou peça ao proprietário do bot para adicionar seus cookies/conta."
|
||||
},
|
||||
"settings": {
|
||||
"helpEntry": "🔧 Configurações",
|
||||
"helpDesc": "🔧 *Configurações*\n\n- /settings: Mostrar suas configurações",
|
||||
"mainSettings": "🔧 *Configurações*\n\n- Inteligência Artificial Ativado: {aiEnabled}\n- /ai Modelo personalizado: {aiModel}\n- Inteligência Artificial Temperatura: {aiTemperature}\n- Total de Requests: {aiRequests}\n- Total de Caracteres Enviados/Recebidos: {aiCharacters}\n- Idioma: {languageCode}",
|
||||
"enabled": "Ativado",
|
||||
"disabled": "Desativado",
|
||||
"selectSetting": "Por favor, selecione uma configuração para modificar ou visualizar.",
|
||||
"ai": {
|
||||
"aiEnabled": "IA",
|
||||
"aiModel": "Modelo",
|
||||
"aiTemperature": "Temperatura",
|
||||
"aiRequests": "Total de Requests",
|
||||
"aiCharacters": "Total de Caracteres Enviados/Recebidos",
|
||||
"languageCode": "Idioma",
|
||||
"aiEnabledSetTo": "Inteligência Artificial definido para {aiEnabled}",
|
||||
"aiModelSetTo": "Modelo personalizado definido para {aiModel}",
|
||||
"aiTemperatureSetTo": "Temperatura definida para {aiTemperature}",
|
||||
"selectSeries": "*Por favor, selecione uma série de modelos.*\n\nIsso será definido como o modelo padrão para o comando /ai.",
|
||||
"seriesDescription": "{seriesDescription}",
|
||||
"selectParameterSize": "Por favor, selecione um tamanho de parâmetro para {seriesLabel}.",
|
||||
"parameterSizeExplanation": "O tamanho do parâmetro (ex: 2B, 4B) refere-se ao número de parâmetros do modelo. Modelos maiores podem ser mais capazes, mas exigem mais recursos.",
|
||||
"modelSetTo": "Modelo definido para {aiModel} ({parameterSize})",
|
||||
"selectTemperature": "*Por favor, selecione uma temperatura:*",
|
||||
"temperatureExplanation": "A temperatura controla a aleatoriedade das respostas da IA. Valores mais baixos (ex: 0.2) tornam o modelo mais focado e determinístico, enquanto valores mais altos (ex: 1.2 ou mais) tornam as respostas mais criativas e aleatórias.",
|
||||
"showThinking": "Mostrar Pensamento do Modelo"
|
||||
},
|
||||
"selectLanguage": "*Por favor, selecione um idioma:*",
|
||||
"languageCodeSetTo": "Idioma definido para {languageCode}",
|
||||
"unknownAction": "Ação desconhecida."
|
||||
},
|
||||
"botUpdated": "Bot atualizado com sucesso.\n\n```{result}```",
|
||||
"errorUpdatingBot": "Erro ao atualizar o bot\n\n{error}",
|
||||
"catImgErr": "Desculpe, mas não consegui obter a foto do gato que você queria.",
|
||||
"catGifErr": "Desculpe, mas não consegui obter o GIF do gato que você queria.",
|
||||
"dogImgErr": "Desculpe, mas não consegui obter a foto do cacbhorro que você queria.",
|
||||
"mlpInvalidCharacter": "Por favor, forneça um nome de personagem válido.",
|
||||
"mlpInvalidEpisode": "Por favor, forneça um número de episódio válido.",
|
||||
"foxApiErr": "Ocorreu um erro ao buscar dados da API.\n\n`{error}`",
|
||||
"duckApiErr": "Ocorreu um erro ao buscar dados da API.\n\n`{error}`",
|
||||
"httpCodes": {
|
||||
"invalidCode": "Por favor, insira um código HTTP válido.",
|
||||
"fetchErr": "Ocorreu um erro ao buscar o código HTTP.",
|
||||
"notFound": "Código HTTP não encontrado.",
|
||||
"resultMsg": "*Código HTTP*: `{code}`\n*Nome*: `{message}`\n*Descrição*: `{description}`"
|
||||
},
|
||||
"ponyApi": {
|
||||
"helpEntry": "🐴 My Little Pony",
|
||||
"helpDesc": "🐴 *My Little Pony*\n\n- /mlp: Exibe esta mensagem de ajuda.\n- /mlpchar `<nome do personagem>`: Mostra informações específicas sobre um personagem de My Little Pony em inglês. Exemplo: `/mlpchar twilight`\n- /mlpep: Mostra informações específicas sobre um episódio de My Little Pony em inglês. Exemplo: `/mlpep 136`\n- /mlpcomic `<nome da comic>`: Mostra informações específicas sobre uma comic de My Little Pony em inglês. Exemplo: `/mlpcomic Nightmare Rarity`\n- /rpony | /randompony | /mlpart: Envia uma arte aleatória feita pela comunidade de My Little Pony.",
|
||||
"charRes": "*{name} (ID: {id})*\n\n*Apelido:* `{alias}`\n*Sexo:* `{sex}`\n*Residência:* `{residence}`\n*Ocupação:* `{occupation}`\n*Tipo:* `{kind}`\n\n*URL no Fandom:*\n[{url}]({url})",
|
||||
"epRes": "*{name} (ID: {id})*\n\n*Temporada:* `{season}`\n*Episódio:* `{episode}`\n*Número do Episódio:* `{overall}`\n*Data de lançamento:* `{airdate}`\n*História por:* `{storyby}`\n*Escrito por:* `{writtenby}`\n*Storyboard:* `{storyboard}`\n\n*URL no Fandom:*\n[{url}]({url})",
|
||||
"comicRes": "*{name} (ID: {id})*\n\n*Série:* `{series}`\n*Roteirista:* `{writer}`\n*Artista:* `{artist}`\n*Colorista:* `{colorist}`\n*Letrista:* `{letterer}`\n*Editor:* `{editor}`\n\n*URL no Fandom:*\n[{url}]({url})",
|
||||
"noCharName": "Por favor, forneça o nome do personagem.",
|
||||
"noCharFound": "Nenhum personagem encontrado.",
|
||||
"noEpisodeNum": "Por favor, forneça o número do episódio.",
|
||||
"noEpisodeFound": "Nenhum episódio encontrado.",
|
||||
"noComicName": "Por favor, forneça o nome da comic.",
|
||||
"noComicFound": "Nenhuma comic foi encontrada.",
|
||||
"searching": "Procurando por um personagem…",
|
||||
"apiErr": "Ocorreu um erro ao buscar dados da API.\n\n`{error}`"
|
||||
},
|
||||
"codenameCheck": {
|
||||
"noCodename": "Por favor, forneça um codinome para pesquisar.",
|
||||
"invalidCodename": "Codinome inválido.",
|
||||
"notFound": "Celular não encontrado.",
|
||||
"resultMsg": "*Nome:* `{name}`\n*Marca:* `{brand}`\n*Modelo:* `{model}`\n*Codinome:* `{codename}`",
|
||||
"apiErr": "Ocorreu um erro ao buscar os dados da API.\n\n`{err}`"
|
||||
},
|
||||
"noFileProvided": "Por favor, forneça um arquivo para envio.",
|
||||
"gsmarenaProvidePhoneName": "Por favor, forneça o nome do celular.",
|
||||
"gsmarenaSearchingFor": "Procurando por `{phone}`...",
|
||||
"gsmarenaNoPhonesFound": "Nenhum celular encontrado para `{phone}`.",
|
||||
"gsmarenaNoPhonesFoundBoth": "Nenhum celular encontrado para `{name}` e `{phone}`.",
|
||||
"gsmarenaSelectDevice": "Por favor, selecione seu dispositivo:",
|
||||
"gsmarenaNotAllowed": "você não tem permissão para interagir com isso.",
|
||||
"gsmarenaInvalidOrExpired": "Ops! Opção inválida ou expirada. Por favor, tente novamente.",
|
||||
"gsmarenaDeviceDetails": "estes são os detalhes do seu dispositivo:",
|
||||
"gsmarenaErrorFetchingDetails": "Erro ao buscar detalhes do celular.",
|
||||
"aiStats": {
|
||||
"header": "✨ *Suas estatísticas de uso de IA*",
|
||||
"requests": "*Total de requisições de IA:* {aiRequests}",
|
||||
"characters": "*Total de caracteres de IA:* {aiCharacters}\n_Isso é cerca de {bookCount} livros de texto!_"
|
||||
},
|
||||
"twoFactor": {
|
||||
"helpEntry": "🔒 2FA",
|
||||
"helpDesc": "🔒 *2FA*\n\n- /2fa: Mostra suas configurações de 2FA",
|
||||
"codeMessage": "🔒 *{botName} 2FA*\n\nSeu código de 2FA é: `{code}`"
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue