From ce8345b611db794c3420b3110feb217d1b35bf34 Mon Sep 17 00:00:00 2001 From: itsTheFae Date: Sat, 9 Nov 2024 11:32:09 -0800 Subject: [PATCH 01/10] Squash-merge the UI and i18n updates. Adds setalias command. Adds several dev-only commands for project maintenance. Adds option for Opus audio. Adds option to remove embed footer. Adds sub-command syntax for permissions. Adds optional new permissions management. Enables MusicBot to generate example config & perms files. Removes cruft .travis.yml file. Rename oauth2 username to avoid conflict with yt-dlp. Replace docstring help with `command_helper` decorator. Replace JSON i18n with gettext, with support for logs and discord. Extend python logger class rather than virtually construct it. (this might fix 3.13) Touch nearly every printed string in MusicBot. :) --- .flake8 | 3 +- .travis.yml | 25 - config/example_options.ini | 373 +- config/example_permissions.ini | 280 +- config/i18n/en.json | 163 - config/i18n/es.json | 107 - config/i18n/fr.json | 120 - config/i18n/hin.json | 120 - config/i18n/it.json | 107 - config/i18n/ja.json | 106 - config/i18n/kr.json | 106 - config/i18n/pl.json | 111 - config/i18n/ru.json | 107 - config/i18n/sv.json | 107 - config/i18n/th.json | 106 - config/i18n/zh_TW.json | 107 - crowdin.yml | 3 + docker-entrypoint.sh | 4 +- i18n/en_US/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 105849 bytes i18n/en_US/LC_MESSAGES/musicbot_logs.po | 4077 ++++++++++++++++ i18n/en_US/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 102124 bytes i18n/en_US/LC_MESSAGES/musicbot_messages.po | 3217 ++++++++++++ i18n/es_ES/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 116252 bytes i18n/es_ES/LC_MESSAGES/musicbot_logs.po | 4075 ++++++++++++++++ i18n/es_ES/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 112609 bytes i18n/es_ES/LC_MESSAGES/musicbot_messages.po | 3216 ++++++++++++ i18n/fr_FR/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 119663 bytes i18n/fr_FR/LC_MESSAGES/musicbot_logs.po | 4077 ++++++++++++++++ i18n/fr_FR/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 115469 bytes i18n/fr_FR/LC_MESSAGES/musicbot_messages.po | 3217 ++++++++++++ i18n/hi_IN/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 514 bytes i18n/hi_IN/LC_MESSAGES/musicbot_logs.po | 3932 +++++++++++++++ i18n/hi_IN/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 518 bytes i18n/hi_IN/LC_MESSAGES/musicbot_messages.po | 2868 +++++++++++ i18n/it_IT/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 114844 bytes i18n/it_IT/LC_MESSAGES/musicbot_logs.po | 4077 ++++++++++++++++ i18n/it_IT/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 110229 bytes i18n/it_IT/LC_MESSAGES/musicbot_messages.po | 3217 ++++++++++++ i18n/ja_JP/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 114638 bytes i18n/ja_JP/LC_MESSAGES/musicbot_logs.po | 3969 +++++++++++++++ i18n/ja_JP/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 89526 bytes i18n/ja_JP/LC_MESSAGES/musicbot_messages.po | 3035 ++++++++++++ i18n/ko_KR/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 508 bytes i18n/ko_KR/LC_MESSAGES/musicbot_logs.po | 3932 +++++++++++++++ i18n/ko_KR/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 512 bytes i18n/ko_KR/LC_MESSAGES/musicbot_messages.po | 2868 +++++++++++ i18n/lang.py | 311 ++ i18n/msgfmt.py | 262 + i18n/musicbot_logs.pot | 4016 +++++++++++++++ i18n/musicbot_messages.pot | 3082 ++++++++++++ i18n/pl_PL/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 114661 bytes i18n/pl_PL/LC_MESSAGES/musicbot_logs.po | 4077 ++++++++++++++++ i18n/pl_PL/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 109703 bytes i18n/pl_PL/LC_MESSAGES/musicbot_messages.po | 3217 ++++++++++++ i18n/pygettext.py | 853 ++++ i18n/readme.md | 158 + i18n/ru_RU/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 132784 bytes i18n/ru_RU/LC_MESSAGES/musicbot_logs.po | 4004 +++++++++++++++ i18n/ru_RU/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 109317 bytes i18n/ru_RU/LC_MESSAGES/musicbot_messages.po | 3091 ++++++++++++ i18n/sv_SE/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 110939 bytes i18n/sv_SE/LC_MESSAGES/musicbot_logs.po | 4077 ++++++++++++++++ i18n/sv_SE/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 106893 bytes i18n/sv_SE/LC_MESSAGES/musicbot_messages.po | 3217 ++++++++++++ i18n/th_TH/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 506 bytes i18n/th_TH/LC_MESSAGES/musicbot_logs.po | 3932 +++++++++++++++ i18n/th_TH/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 510 bytes i18n/th_TH/LC_MESSAGES/musicbot_messages.po | 2868 +++++++++++ i18n/xx/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 105740 bytes i18n/xx/LC_MESSAGES/musicbot_logs.po | 4541 +++++++++++++++++ i18n/xx/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 102012 bytes i18n/xx/LC_MESSAGES/musicbot_messages.po | 3933 +++++++++++++++ i18n/zh_CN/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 60254 bytes i18n/zh_CN/LC_MESSAGES/musicbot_logs.po | 3940 +++++++++++++++ i18n/zh_CN/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 47645 bytes i18n/zh_CN/LC_MESSAGES/musicbot_messages.po | 2952 +++++++++++ i18n/zh_TW/LC_MESSAGES/musicbot_logs.mo | Bin 0 -> 524 bytes i18n/zh_TW/LC_MESSAGES/musicbot_logs.po | 3932 +++++++++++++++ i18n/zh_TW/LC_MESSAGES/musicbot_messages.mo | Bin 0 -> 528 bytes i18n/zh_TW/LC_MESSAGES/musicbot_messages.po | 2868 +++++++++++ install.ps1 | 3 +- install.sh | 130 +- musicbot/aliases.py | 105 +- musicbot/autoplaylist.py | 32 +- musicbot/bot.py | 4864 ++++++++++--------- musicbot/config.py | 1021 ++-- musicbot/constants.py | 23 +- musicbot/constructs.py | 172 +- musicbot/downloader.py | 29 +- musicbot/entry.py | 113 +- musicbot/exceptions.py | 116 +- musicbot/filecache.py | 48 +- musicbot/i18n.py | 380 ++ musicbot/json.py | 2 +- musicbot/logs.py | 427 ++ musicbot/permissions.py | 254 +- musicbot/player.py | 72 +- musicbot/playlist.py | 35 +- musicbot/spotify.py | 72 +- musicbot/testrig.py | 347 ++ musicbot/utils.py | 434 +- musicbot/ytdlp_oauth2_plugin.py | 21 +- run.py | 248 +- update.sh | 0 104 files changed, 114936 insertions(+), 5175 deletions(-) delete mode 100644 .travis.yml delete mode 100644 config/i18n/en.json delete mode 100644 config/i18n/es.json delete mode 100644 config/i18n/fr.json delete mode 100644 config/i18n/hin.json delete mode 100644 config/i18n/it.json delete mode 100644 config/i18n/ja.json delete mode 100644 config/i18n/kr.json delete mode 100644 config/i18n/pl.json delete mode 100755 config/i18n/ru.json delete mode 100644 config/i18n/sv.json delete mode 100644 config/i18n/th.json delete mode 100644 config/i18n/zh_TW.json create mode 100644 crowdin.yml create mode 100644 i18n/en_US/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/en_US/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/en_US/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/en_US/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/es_ES/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/es_ES/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/es_ES/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/es_ES/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/fr_FR/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/fr_FR/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/fr_FR/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/fr_FR/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/hi_IN/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/hi_IN/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/hi_IN/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/hi_IN/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/it_IT/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/it_IT/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/it_IT/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/it_IT/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/ja_JP/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/ja_JP/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/ja_JP/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/ja_JP/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/ko_KR/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/ko_KR/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/ko_KR/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/ko_KR/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/lang.py create mode 100644 i18n/msgfmt.py create mode 100644 i18n/musicbot_logs.pot create mode 100644 i18n/musicbot_messages.pot create mode 100644 i18n/pl_PL/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/pl_PL/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/pl_PL/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/pl_PL/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/pygettext.py create mode 100644 i18n/readme.md create mode 100644 i18n/ru_RU/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/ru_RU/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/ru_RU/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/ru_RU/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/sv_SE/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/sv_SE/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/sv_SE/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/sv_SE/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/th_TH/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/th_TH/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/th_TH/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/th_TH/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/xx/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/xx/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/xx/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/xx/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/zh_CN/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/zh_CN/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/zh_CN/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/zh_CN/LC_MESSAGES/musicbot_messages.po create mode 100644 i18n/zh_TW/LC_MESSAGES/musicbot_logs.mo create mode 100644 i18n/zh_TW/LC_MESSAGES/musicbot_logs.po create mode 100644 i18n/zh_TW/LC_MESSAGES/musicbot_messages.mo create mode 100644 i18n/zh_TW/LC_MESSAGES/musicbot_messages.po create mode 100644 musicbot/i18n.py create mode 100644 musicbot/logs.py create mode 100644 musicbot/testrig.py mode change 100644 => 100755 update.sh diff --git a/.flake8 b/.flake8 index aa05fce9e..851093086 100644 --- a/.flake8 +++ b/.flake8 @@ -1,6 +1,5 @@ [flake8] -ignore = E203, E266, E501, W503, C901 +ignore = E203, E501, W503, C901 max-line-length = 99 max-complexity = 18 select = B,C,E,F,W,T4,B9,TC,TC1 - diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 821d49392..000000000 --- a/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ -language: python - -matrix: - include: - - python: "3.8" - env: TYPE=docker - - python: "3.8" - env: TYPE=build - - python: "3.9" - env: TYPE=docker - - python: "3.9" - env: TYPE=build - -services: -- docker - -install: -- if [ "$TYPE" = "build" ]; then ./.travis/install.sh; fi; -- pip install -U -r requirements.txt - -script: -- if [ "$TYPE" = "docker" ]; then docker build -t musicbot .; docker images -a; fi; -- if [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TYPE" == "docker" ]; then docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASS"; docker tag musicbot justsomebots/musicbot:$TRAVIS_BRANCH; docker push justsomebots/musicbot; fi; -- if [ "$TYPE" = "build" ]; then python -m compileall ./musicbot; fi; - diff --git a/config/example_options.ini b/config/example_options.ini index 147de3d0f..a2fd57433 100644 --- a/config/example_options.ini +++ b/config/example_options.ini @@ -1,266 +1,256 @@ # This is the configuration file for MusicBot. Do not edit this file using Notepad. # Use Notepad++ or a code editor like Visual Studio Code. -# For help, see: https://just-some-bots.github.io/MusicBot/ +# For help, see: https://just-some-bots.github.io/MusicBot/ +# +# This file was generated by MusicBot, it contains all options set to their default values. [Credentials] -# Your Discord bot account token. Required to run the bot. -Token = bot_token +# Discord bot authentication token for your Bot. +# Visit Discord Developer Portal to create a bot App and generate your Token. +# Never publish your bot token! +Token = -# The bot supports converting Spotify links and URIs to YouTube videos and -# playing them. You can either enter your own Spotify developer app credentials -# below, or the bot will use public credentials to communicate with Spotify. -Spotify_ClientID = -Spotify_ClientSecret = - -# Sets the YouTube API Client ID, used by Yt-dlp OAuth2 plugin. -# Optional, unless built-in credentials are not working. -YtdlpOAuth2ClientID = - -# Sets the YouTube API Client Secret key, used by Yt-dlp OAuth2 plugin. -# Optional, unless YtdlpOAuth2ClientID is set. -YtdlpOAuth2ClientSecret = +# Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API. +# MusicBot will try to use the web player API (guest mode) if nothing is set here. +# Using your own API credentials grants higher usage limits than guest mode. +Spotify_ClientID = +# Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API. +# This is required if you set the Spotify_ClientID option above. +Spotify_ClientSecret = [Permissions] -# This option determines which user has full permissions and control of the bot. -# Only one user can be the bot's owner. You can generally leave this as "auto". -OwnerID = auto - -# This option determines which users have access to developer-only commands. -# You should leave this blank unless you know what you are doing. -DevIDs = - -# This bot ignores other bots by default. You can add other bot's IDs here to -# allow MusicBot to listen to their messages. -BotExceptionIDs = +# Provide a Discord User ID number to set the owner of this bot. +# The word 'auto' or number 0 will set the owner based on App information. +# Only one owner ID can be set here. Generally, setting 'auto' is recommended. +OwnerID = 0 + +# A list of Discord User IDs who can use the dev-only commands. +# Warning: dev-only commands can allow arbitrary remote code execution. +# Use spaces to separate multiple IDs. +# Most users should leave this setting blank. +DevIDs = + +# Discord Member IDs for other bots that MusicBot should not ignore. +# Use spaces to separate multiple IDs. +# All bots are ignored by default. +BotExceptionIDs = [Chat] -# Determines the prefix that must be used before commands in the Discord chat. -# e.g if you set this to *, the play command would be triggered using *play. +# Command prefix is how all MusicBot commands must be started in Discord messages. +# E.g., if you set this to * the play command is trigger by *play ... CommandPrefix = ! # Enable using commands with @[YourBotNameHere] # The CommandPrefix is still available, but can be replaced with @ mention. CommandsByMention = yes -# Restricts the bot to only listening to certain text channels. -# Space-separated list of text channel IDs. -BindToChannels = +# ID numbers for text channels that MusicBot should exclusively use for commands. +# This can contain IDs for channels in multiple servers. +# Use spaces to separate multiple IDs. +# All channels are used if this is not set. +BindToChannels = -# Setting this to "yes" will allow the MusicBot to work in any channel on servers -# which do not have a "bound" channel set above. +# Allow responses in all channels while no specific channel is set for a server. +# Only used when BindToChannels is missing an ID for a server. AllowUnboundServers = no -# Allows the bot to automatically join voice channels on startup. -# Space-separated list of voice channel IDs. -AutojoinChannels = +# A list of Voice Channel IDs that MusicBot should automatically join on start up. +# Use spaces to separate multiple IDs. +AutojoinChannels = -# If set to "yes", the bot will send a DM to the user who requested a song when their -# song begins to play, rather than posting a message in the text channel. +# MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel. DMNowPlaying = no -# Disable now playing messages for entries automatically added by the bot, via the autoplaylist. +# Disable now playing messages for songs played via auto playlist. DisableNowPlayingAutomatic = no -# Force the bot to send "now playing" messages in specific text channels. -# If this is empty, the bot will send the messages in the channel where the song was requested. -NowPlayingChannels = +# Forces MusicBot to use a specific channel to send now playing messages. +# Only one text channel ID can be used per server. +NowPlayingChannels = -# If "yes", delete the "now playing" messages after a small period of time. -DeleteNowPlaying = no +# MusicBot will automatically delete Now Playing messages. +DeleteNowPlaying = yes [MusicBot] -# The volume of the bot's audio output, between 0.01 and 1.0. -DefaultVolume = 0.25 +# Set the log verbosity of MusicBot. Normally this should be set to INFO. +# It can be set to one of the following: +# CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING +DebugLevel = INFO + +# Sets the default volume level MusicBot will play songs at. +# You can use any value from 0 to 1, or 0% to 100% volume. +DefaultVolume = 0.15 -# The playback speed used by default for every song played by MusicBot. -# Must be a value between 0.5 and 100.0, inclusive. -# Default is 1.0, for normal playback speed. -DefaultSpeed = 1.0 +# Sets the default speed MusicBot will play songs at. +# Must be a value from 0.5 to 100.0 for ffmpeg to use it. +# A value of 1 is normal playback speed. +# Note: Streamed media does not support speed adjustments. +DefaultSpeed = 1.000 -# The number of people voting to skip in order for a song to be skipped successfully, -# whichever value is lower will be used. Ratio refers to the percentage of undefeaned, non- -# owner users in the channel. +# Number of channel member votes required to skip a song. +# Acts as a minimum when SkipRatio would require more votes. SkipsRequired = 4 + +# This percent of listeners in voice must vote for skip. +# If SkipsRequired is lower than the computed value, it will be used instead. +# You can set this from 0 to 1, or 0% to 100%. SkipRatio = 0.5 -# Determines if downloaded videos will be saved to the audio_cache folder permanently. -# If "yes", videos will not be re-downloaded if queued again, at the cost of hard-drive space. +# Allow MusicBot to keep downloaded media, or delete it right away. SaveVideos = yes -# Never purge videos from cache if they are listed in the auto playlist file. -# Only applies while SaveVideos option is enabled. -StorageRetainAutoPlay = yes +# If SaveVideos is enabled, set a limit on how much storage space should be used. +StorageLimitBytes = 0 -# Set a time limit for stored files. Set to 0 to disable. -# Files which aren't used for this period of time will be removed. -# On Linux/Mac, this uses last-access time. On Windows, file-creation time is used. -# Only applies when SaveVideos option is enabled. +# If SaveVideos is enabled, set a limit on how long files should be kept. StorageLimitDays = 0 -# Set a size limit for the entire cache. Set to 0 to disable. -# Accepts exact number of bytes or a shorthand notation like 20 MB -# When storage exceeds this size, files with older access/creation times are removed first. -# Only applies when SaveVideos option is enabled. -StorageLimitBytes = 0 - +# If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits. +StorageRetainAutoPlay = yes -# Mentions the user who queued a song when it starts to play. +# Mention the user who added the song when it is played. NowPlayingMentions = no -# Automatically joins the owner's voice channel on startup, if possible. The bot must be on -# the same server and have permission to join the channel. +# Automatically join the owner if they are in an accessible voice channel when bot starts. AutoSummon = yes -# Start playing songs from the autoplaylist.txt file after joining a channel. This does not -# stop users from queueing songs, you can do that by restricting command access in permissions.ini. +# Enable MusicBot to automatically play music from the auto playlist when the queue is empty. UseAutoPlaylist = yes -# Sets if the autoplaylist should play through songs in a random order when enabled. If no, -# songs will be played in a sequential order instead. +# Shuffles the auto playlist tracks before playing them. AutoPlaylistRandom = yes -# Enable automatic skip of auto-playlist songs when a user plays a new song. -# This only applies to the current playing song if it was added by the auto-playlist. -AutoPlaylistAutoSkip = yes +# Enable automatic skip of auto playlist songs when a user plays a new song. +# This only applies to the current playing song if it was added by the auto playlist. +AutoPlaylistAutoSkip = no -# Remove songs from the auto-playlist if they are found in the song blocklist. -AutoPlaylistRemoveBlocked = yes +# Remove songs from the auto playlist if they are found in the song block list. +AutoPlaylistRemoveBlocked = no -# Pause the music when nobody is in a voice channel, until someone joins again. +# MusicBot will automatically pause playback when no users are listening. AutoPause = yes -# Automatically cleanup the bot's messages after a small period of time. -DeleteMessages = no +# Allow MusicBot to automatically delete messages it sends, after a delay. +# Delay period is controlled by DeleteDelayShort and DeleteDelayLong. +DeleteMessages = yes -# If this and DeleteMessages is enabled, the bot will also try to delete messages from other -# users that called commands. The bot requires the 'Manage Messages' permission for this. +# Auto delete valid commands after a delay. DeleteInvoking = no -# Regularly saves the queue to the disk. If the bot is then shut down, the queue will -# resume from where it left off. +# Sets the short period of seconds before deleting messages. +# This period is used by messages that require no further interaction. +DeleteDelayShort = 0:00:30 + +# Sets the long delay period before deleting messages. +# This period is used by interactive or long-winded messages, like search and help. +DeleteDelayLong = 0:01:00 + +# Allow MusicBot to save the song queue, so queued songs will survive restarts. PersistentQueue = yes # Enable MusicBot to download the next song in the queue while a song is playing. -# Currently this option does not apply to auto-playlist or songs added to an empty queue. +# Currently this option does not apply to auto playlist or songs added to an empty queue. PreDownloadNextSong = yes -# Determines what messages are logged to the console. The default level is INFO, which is -# everything an average user would need. Other levels include CRITICAL, ERROR, WARNING, -# DEBUG, VOICEDEBUG, FFMPEG, NOISY, and EVERYTHING. You should only change this if you -# are debugging, or you want the bot to have a quieter console output. -DebugLevel = INFO - # Specify a custom message to use as the bot's status. If left empty, the bot # will display dynamic info about music currently being played in its status instead. -# Status messages may also use the following variables in custom status messages: +# Status messages may also use the following variables: # {n_playing} = Number of currently Playing music players. # {n_paused} = Number of currently Paused music players. # {n_connected} = Number of connected music players, in any player state. -# +# # The following variables give access to information about the player and track. # These variables may not be accurate in multi-guild bots: # {p0_length} = The total duration of the track, if available. Ex: [2:34] # {p0_title} = The track title for the currently playing track. -# {p0_url} = The track url for the currently playing track. +# {p0_url} = The track URL for the currently playing track. StatusMessage = -# If enabled, status message updates will count and report paused players. +# If enabled, status messages will report info on paused players. StatusIncludePaused = no -# Write what the bot is currently playing to the data//current.txt FILE. -# This can then be used with OBS and anything else that takes a dynamic input. +# If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt WriteCurrentSong = no -# Allows the person who queued a song to skip their OWN songs instantly, similar to the -# functionality that owners have where they can skip every song instantly. +# Allow the member who requested the song to skip it, bypassing votes. AllowAuthorSkip = yes -# Enables experimental equalization code. This will cause all songs to sound similar in -# volume at the cost of higher processing consumption when the song is initially being played. +# Tries to use ffmpeg to get volume normalizing options for use in playback. +# This option can cause delay between playing songs, as the whole track must be processed. UseExperimentalEqualization = no -# Enables the use of embeds throughout the bot. These are messages that are formatted to -# look cleaner, however they don't appear to users who have link previews disabled in their -# Discord settings. +# Allow MusicBot to format its messages as embeds. UseEmbeds = yes -# The amount of items to show when using the queue command. +# The number of entries to show per-page when using q command to list the queue. QueueLength = 10 -# Remove songs from the autoplaylist if an error occurred while trying to play them. -# If enabled, unplayable songs will be moved to another file and out of the autoplaylist. -# You may want to disable this if you have internet issues or frequent issues playing songs. +# Enable MusicBot to automatically remove unplayable entries from the auto playlist. RemoveFromAPOnError = yes -# Whether to show the configuration for the bot in the console when it launches. +# Display MusicBot config settings in the logs at startup. ShowConfigOnLaunch = no -# Whether to use legacy skip behaviour. This will change it so that those with permission -# do not need to use "skip f" to force-skip a song, they will instead force-skip by default. +# Enable users with the InstaSkip permission to bypass skip voting and force skips. LegacySkip = no -# Leave servers if the owner is not found in them. +# If enabled, MusicBot will leave servers if the owner is not in their member list. LeaveServersWithoutOwner = no -# Use command aliases defined in aliases.json. +# If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json UseAlias = yes -# Use an alternate way to display the results from search command. -SearchList = no +# Replace MusicBot name/version in embed footer with custom text. +# Only applied when UseEmbeds is enabled and it is not blank. +CustomEmbedFooter = Just-Some-Bots/MusicBot (release-250723-1013-g92343802-modded) -# Set the amount of search results returned by default. -DefaultSearchResults = 3 - -# Allow per-guild command prefix override via 'setprefix' command. -EnablePrefixPerGuild = no +# Completely remove the footer from embeds. +RemoveEmbedFooter = no -# Specify a custom message to use as the bots embed footer. -CustomEmbedFooter = - -# Sets if you'd like the bot to deafen when joining a voice channel. +# MusicBot will automatically deafen itself when entering a voice channel. SelfDeafen = yes -# Sets if the bot should leave a voice channel when it becomes empty. +# If enabled, MusicBot will leave a voice channel when no users are listening, +# after waiting for a period set in LeaveInactiveVCTimeOut option. +# Listeners are channel members, excluding bots, who are not deafened. LeaveInactiveVC = no -# Sets how long the bot should wait before leaving a voice channel that is inactive. -# Only applies if LeaveInactiveVC is enabled. -# Time can be set in seconds or as a duration phrase containing any of: day, hour, minute, second -# Examples: -# .5 hours, 1 day, 77min -# Default value is 300 seconds. -LeaveInactiveVCTimeOut = 300 +# Set a period of time to wait before leaving an inactive voice channel. +# You can set this to a number of seconds or phrase like: 4 hours +LeaveInactiveVCTimeOut = 0:05:00 -# Sets if if the bot should leave immediately once all songs have finished playing. +# If enabled, MusicBot will leave the channel immediately when the song queue is empty. LeaveAfterQueueEmpty = no -# Set a period of seconds that a player can be paused or not playing before it will disconnect. -# This setting is independent of LeaveAfterQueueEmpty. -# Time can be set in seconds or using duration as described in LeaveInactiveVCTimeOut -# Set to 0 to disable. Default value is 0. -LeavePlayerInactiveFor = 0 +# When paused or no longer playing, wait for this amount of time then leave voice. +# You can set this to a number of seconds of phrase like: 15 minutes +# Set it to 0 to disable leaving in this way. +LeavePlayerInactiveFor = 0:00:00 -# Round robin queue -# When enabled the bot will automatically rotate between user requested songs. -RoundRobinQueue = no +# If enabled, users must indicate search result choices by sending a message instead of using reactions. +SearchList = no -# This setting allows you to quickly enable or disable use of User Blocklist. -EnableUserBlocklist = yes +# Sets the default number of search results to fetch when using the search command without a specific number. +DefaultSearchResults = 3 -# This setting allows you to quickly enable or disable the use of Song Blocklist. -EnableSongBlocklist = no +# Allow MusicBot to save a per-server command prefix, and enables the setprefix command. +EnablePrefixPerGuild = no -# Allow MusicBot to use system ping command to detect network outage and availability. -# This is useful if you keep the bot joined to a channel or playing music 24/7. +# If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member. +RoundRobinQueue = no + +# Allow MusicBot to use timed pings to detect network outage and availability. +# This may be useful if you keep the bot joined to a channel or playing music 24/7. # MusicBot must be restarted to enable network testing. # By default this is disabled. EnableNetworkChecker = no -# Enable saving all songs played by MusicBot to a global playlist, history.txt +# Enable saving all songs played by MusicBot to a global playlist file: config/playlists/history.txt +# This will contain all songs from all servers. SavePlayedHistoryGlobal = no -# Enable saving songs played by MusicBot to a per-guild playlist, history-{Guild_ID}.txt +# Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s SavePlayedHistoryGuilds = no # Enable playback of local media files using the play command. @@ -279,67 +269,64 @@ YtdlpProxy = # Experimental option to set a static User-Agent header in yt-dlp. # It is not typically recommended by yt-dlp to change the UA string. # For examples of what you might put here, check the following two links: -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent -# https://www.useragents.me/ +# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent +# https://www.useragents.me/ # Leave blank to use default, dynamically generated UA strings. YtdlpUserAgent = # Experimental option to enable yt-dlp to use a YouTube account via OAuth2. # When enabled, you must use the generated URL and code to authorize an account. -# The authorization token is then stored in the `data/auth.token` file. +# The authorization token is then stored in the `data//oauth2.token` file. # This option should not be used when cookies are enabled. # Using a personal account may not be recommended. +# Set yes to enable or no to disable. YtdlpUseOAuth2 = no -# Optional youtube URL used at start-up for triggering OAuth2 authorization. +# Optional YouTube video URL used at start-up for triggering OAuth2 authorization. # This starts the OAuth2 prompt early, rather than waiting for a song request. +# The URL set here should be an accessible YouTube video URL. # Authorization must be completed before start-up will continue when this is set. YtdlpOAuth2URL = +# Toggle the user block list feature, without emptying the block list. +EnableUserBlocklist = yes + +# Enable the song block list feature, without emptying the block list. +EnableSongBlocklist = no + +# Potentially reduces CPU usage, but disables volume and speed controls. +# This option will disable UseExperimentalEqualization option as well. +UseOpusAudio = no [Files] +# An optional file path to a text file listing Discord User IDs, one per line. +UserBlocklistFile = config/blocklist_users.txt + +# An optional file path to a text file that lists URLs, words, or phrases one per line. +# Any song title or URL that contains any line in the list will be blocked. +SongBlocklistFile = config/blocklist_songs.txt + +# An optional path to a directory containing auto playlist files. +# Each file should contain a list of playable URLs or terms, one track per line. +AutoPlaylistDirectory = config/playlists + +# An optional directory path where playable media files can be stored. +# All files and sub-directories can then be accessed by using 'file://' as a protocol. +# Example: file://some/folder/name/file.ext +# Maps to: ./media/some/folder/name/file.ext +MediaFileDirectory = media + +# An optional directory path where MusicBot will store long and short-term cache for playback. +AudioCachePath = audio_cache + # Configure automatic log file rotation at restart, and limit the number of files kept. # When disabled, only one log is kept and its contents are replaced each run. -# Default is 0, or disabled. Maximum allowed number is 100." +# Set to 0 to disable. Maximum allowed number is 100. LogsMaxKept = 0 # Configure the log file date format used when LogsMaxKept is enabled. # If left blank, a warning is logged and the default will be used instead. # Learn more about time format codes from the tables and data here: -# https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior -# Default value is: ".ended-%Y-%j-%H%m%S" +# https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior LogsDateFormat = .ended-%Y-%j-%H%m%S -# Path to your i18n file. Do not set this if you do not know what it does. -i18nFile = - -# A folder path where you want to store downloaded media files. It can be left empty. -# This directory will be created if it does not exist. -# Default folder is named "audio_cache" in the current working directory. -# This directory is used for temporary storage even if SaveVideos is disabled. -AudioCachePath = - -# A file path where you can add discord User ID numbers and prevent those users -# from using any bot commands. -# Leave this blank to use the default file location. -# MusicBot will create it if it does not exist. -# Default file: config/blocklist_users.txt -UserBlocklistFile = - -# A file path where you can add URLs, video IDs, or other words and phrases -# to prevent users from playing track if their URL or song title contains any -# matched line from this block list file. -# Leave this blank to use the default file location. -# MusicBot will create it if it does not exist. -# Default file: config/blocklist_songs.txt -SongBlocklistFile = - -# A directory path where playlists and related files can be stored. -# Default path is: config/playlists/ -AutoPlaylistDirectory = - -# An optional directory path where playable media files can be stored. -# All files and sub-directories can then be accessed by using 'file://' as a protocol. -# Example: file://some/folder/name/file.ext -# Maps to: ./media/some/folder/name/file.ext -MediaFileDirectory = diff --git a/config/example_permissions.ini b/config/example_permissions.ini index 9aa404beb..3673ef180 100644 --- a/config/example_permissions.ini +++ b/config/example_permissions.ini @@ -1,191 +1,137 @@ -; DON'T OPEN THIS FILE WITH NOTEPAD. If you don't have a preferred text editor, use notepad++ or any other modern text editor. -; -; If you edit this file, Save-As permissions.ini -; -; +; This is the permissions file for MusicBot. Do not edit this file using Notepad. +; Use Notepad++ or a code editor like Visual Studio Code. +; For help, see: https://just-some-bots.github.io/MusicBot/ +; +; This file was generated by MusicBot, it contains all options set to their default values. +; ; Basics: -; - Semicolons are comment characters, any line that starts with one is ignored. -; - Sections headers are permissions groups, they're the lines that have a word in [Brackets]. You can add more for more permissions groups. -; - Options with a semicolon before them will be ignored. -; - Add whatever permissions you want, but always have at least one. -; - Never have an options without a value, i.e. "CommandBlacklist = " -; - [Default] is a special section. Any user that doesn't get assigned to a group via role or UserList gets assigned to this group. -; - [Owner (auto)] is a section that owner of the bot gets assigned to. -; -; -; Option info: -; -; [Groupname] -; This is the section header. The word is the name of the group, just name it something appropriate for its permissions. -; -; CommandWhitelist = command1 command2 -; List of commands users are allowed to use, separated by spaces. Don't include the prefix, i.e. ! Overrides CommandBlacklist if set. -; -; CommandBlacklist = command1 command2 -; List if commands users are not allowed to use. You don't need to use both -; whitelist and blacklist since blacklist gets overridden. Just pick one. -; -; IgnoreNonVoice = command1 command2 -; List of commands that the user is required to be in the same voice channel as the bot to use. -; For example, if you don't want the user to be able to voteskip songs while not in the voice channel, add skip to this option. -; -; GrantToRoles = 111222333444555 999888777000111 -; List of ids to automatically grant this group to. To get the id of a role, use the listids command. -; -; UserList = 21343341324 321432413214321 -; List of user ids to grant this group to. This option overrides the role granted by the GrantToRoles option. -; -; MaxSongLength = 600 -; Maximum length of a song in seconds. Note: This won't always work if the song data doesn't have duration listed. -; This doesn't happen often, but youtube, soundcloud, etc work fine though. This will be fixed in a future update. -; A value of 0 means unlimited. -; -; MaxSongs = 5 -; Maximum number of songs a user is allowed to queue. A value of 0 means unlimited. -; -; MaxPlaylistLength = 10 -; Maximum number of songs a playlist is allowed to have to be queued. A value of 0 means unlimited. -; -; MaxSearchItems = 10 -; The maximum number of items that can be returned in a search. -; -; AllowPlaylists = yes -; Whether or not the user is allowed to queue entire playlists. -; -; InstaSkip = no -; Allows the user to skip a song without having to vote, like the owner. -; -; SkipLooped = no -; Allows the user to skip a looped song. -; -; Remove = no -; Allows the user to remove any song from the queue at any point. -; -; SkipWhenAbsent = yes -; Tells the bot to automatically skip songs queued by people in this group who have left the voice channel after queueing. -; Will only skip once the song is about to play. -; -; BypassKaraokeMode = no -; Allows the user to queue songs even when karaoke mode is activated. -; -; SummonNoVoice = yes -; Allows the user to automatically summon the bot when using the play or the stream command if there is no voice channel -; that the bot is already joined in the server. It is also expected that the user have ability to invoke summon command to -; use this option. -; -; Extractors = spotify:musicbot youtube generic soundcloud Bandcamp -; Specify yt-dlp extractor names that MusicBot will allow users to play media from. -; Each extractor name should be separated by spaces or commas. -; If left empty, hard-coded defaults will be allowed. -; The yt-dlp project has a list of supported services / extractor names here: -; https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md -; -; The extractor `spotify:musicbot` is provided by MusicBot, not by yt-dlp. -; To allow ALL services, including porn services, add "__" to the list, without quotes. -; Example to allow all: -; -; Extractors = __ -; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; - Lines starting with semicolons (;) are comments, and are ignored. +; - Words in square brackets [ ] are permission group names. +; - Group names must be unique, and cannot be duplicated. +; - Each group must have at least one permission option defined. +; - [Default] is a reserved section. Users without a specific group assigned will use it. +; - [Owner (auto)] is a reserved section that cannot be edited. +; +; Available Options: +; CommandWhitelist = +; List of command names allowed for use, separated by spaces. +; Sub-command access can be controlled by adding _ and the sub-command name. +; That is `config_set` grants only the `set` sub-command of the config command. +; This option overrides CommandBlacklist if set. +; +; CommandBlacklist = +; List of command names denied from use, separated by spaces. +; Will not work if CommandWhitelist is set! +; +; AdvancedCommandLists = no +; When enabled, CommandBlacklist and CommandWhitelist are used together. +; Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist. +; +; IgnoreNonVoice = +; List of command names that can only be used while in the same voice channel as MusicBot. +; Some commands will always require the user to be in voice, regardless of this list. +; Command names should be separated by spaces. +; +; GrantToRoles = +; List of Discord server role IDs that are granted this permission group. +; This option is ignored if UserList is set. +; +; UserList = +; List of Discord member IDs that are granted permissions in this group. +; This option overrides GrantToRoles. +; +; MaxSongs = 8 +; Maximum number of songs a user is allowed to queue. +; A value of 0 means unlimited. +; +; MaxSongLength = 210 +; Maximum length of a song in seconds. A value of 0 means unlimited. +; This permission may not be enforced if song duration is not available. +; +; MaxPlaylistLength = 0 +; Maximum number of songs a playlist is allowed to have when queued. +; A value of 0 means unlimited. +; +; MaxSearchItems = 10 +; The maximum number of items that can be returned in a search. +; +; AllowPlaylists = yes +; Allow users to queue playlists, or multiple songs at once. +; +; InstaSkip = no +; Allow users to skip without voting, if LegacySkip config option is enabled. +; +; SkipLooped = no +; Allows the user to skip a looped song. +; +; Remove = no +; Allows the user to remove any song from the queue. +; Does not remove or skip currently playing songs. +; +; SkipWhenAbsent = yes +; Skip songs added by users who are not in voice when their song is played. +; +; BypassKaraokeMode = no +; Allows the user to add songs to the queue when Karaoke Mode is enabled. +; +; SummonNoVoice = no +; Auto summon to user voice channel when using play commands, if bot isn't in voice already. +; The summon command must still be allowed for this group! +; +; Extractors = youtube, Bandcamp, spotify:musicbot, soundcloud, generic +; Specify yt-dlp extractor names, separated by spaces, that are allowed to be used. +; When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions. +; To allow all extractors, add `__` without quotes to the list. +; +; Services/extractors supported by yt-dlp are listed here: +; https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md +; +; MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction. +; NOTICE: MusicBot might not support all services available to yt-dlp! -; I've set some example groups, these should be fine. Just add your roles or users and you should be good to go. - -;;;;;;;;;;;;;;;;;;; -; -; AND HEY. -; Before you ask any dumb "how do I do this" questions in the help server, you should probably read that big comment I put time -; into writing for this exact purpose. It tells you how to use every option. Your question is probably answered there. -; -;;;;;;;;;;;;;;;;;;; - - - -; This group is for owner. Any options not specified will fallback to permissive default value. Don't remove/rename this group. -; You cannot assign users or roles to this group. Those options are ignored. +; This permission group is used by the Owner only, and cannot be edited at all. +; It grants all access to MusicBot for the user specified in 'OwnerID' config option. [Owner (auto)] -; MaxSongLength = 0 -; MaxSongs = 0 -; MaxPlaylistLength = 0 -; AllowPlaylists = yes -; InstaSkip = yes -; Remove = yes -; SkipWhenAbsent = no -; BypassKaraokeMode = yes -; ToggleAutoPlaylists = yes -; SummonNoVoice = yes -; Extractors = -; SkipLooped = yes - -; This is the fallback group for any users that don't get assigned to another group. Don't remove/rename this group. -; You cannot assign users or roles to this group. Those options are ignored. -[Default] -CommandWhitelist = play perms queue np skip search id help clean -; CommandBlacklist = -IgnoreNonVoice = play skip search -MaxSongLength = 1200 +CommandWhitelist = +CommandBlacklist = +AdvancedCommandLists = no +IgnoreNonVoice = +GrantToRoles = +UserList = MaxSongs = 0 -MaxSearchItems = 10 -AllowPlaylists = yes -; MaxPlaylistLength = 20 -InstaSkip = no -Remove = no -SkipWhenAbsent = no -BypassKaraokeMode = no -SummonNoVoice = no -SkipLooped = no -Extractors = generic youtube spotify:musicbot Bandcamp soundcloud - -; This group has full permissions. -[MusicMaster] -; GrantToRoles = -; UserList = MaxSongLength = 0 -MaxSongs = 0 MaxPlaylistLength = 0 -MaxSearchItems = 20 +MaxSearchItems = 10 AllowPlaylists = yes InstaSkip = yes +SkipLooped = yes Remove = yes SkipWhenAbsent = no BypassKaraokeMode = yes SummonNoVoice = yes -SkipLooped = yes Extractors = -; This group can't use the blacklist and listids commands, but otherwise has full permissions. -[DJ] -CommandBlacklist = blacklist listids -; GrantToRoles = -; UserList = -MaxSongLength = 0 -MaxSongs = 0 -MaxPlaylistLength = 0 -MaxSearchItems = 20 -AllowPlaylists = yes -InstaSkip = yes -Remove = yes -SkipWhenAbsent = no -BypassKaraokeMode = yes -SummonNoVoice = yes -SkipLooped = yes -Extractors = generic youtube youtube:tab youtube:search youtube:playlist soundcloud soundcloud:set spotify:musicbot Bandcamp Bandcamp:album -; This group can only use the listed commands, can only use play/skip when in the bot's voice channel, -; can't request songs longer than 3 and a half minutes, and can only request a maximum of 8 songs at a time. -[Limited] -CommandWhitelist = play queue np perms help skip -; CommandBlacklist = -IgnoreNonVoice = play skip -; GrantToRoles = -MaxSongLength = 210 +; This is the default permission group. It cannot be deleted, or renamed. +; All users without explicit group assignment will be placed in this group. +; The options GrantToRoles and UserList are effectively ignored in this group. +[Default] +CommandWhitelist = +CommandBlacklist = +AdvancedCommandLists = no +IgnoreNonVoice = +GrantToRoles = +UserList = MaxSongs = 8 +MaxSongLength = 210 +MaxPlaylistLength = 0 MaxSearchItems = 10 AllowPlaylists = yes InstaSkip = no +SkipLooped = no Remove = no SkipWhenAbsent = yes BypassKaraokeMode = no SummonNoVoice = no -SkipLooped = no -Extractors = generic youtube youtube:playlist youtube:tab +Extractors = youtube, Bandcamp, spotify:musicbot, soundcloud, generic diff --git a/config/i18n/en.json b/config/i18n/en.json deleted file mode 100644 index 526bc3d8d..000000000 --- a/config/i18n/en.json +++ /dev/null @@ -1,163 +0,0 @@ -{ - "cmd-resetplaylist-response": "The server's autoplaylist has been reset.", - "cmd-help-invalid": "No such command", - "cmd-help-no-perms": "You don't have permission to use any commands. Run {example_cmd} to list every command anyway", - "cmd-help-response": "For information about a particular command, run {example_cmd}\nFor further help, see https://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\nOnly showing commands you can use, for a list of all commands, run {example_cmd}", - "cmd-help-prefix-required": "\n**Prefix required for use:**\n{example_cmd}\n", - "cmd-blacklist-invalid": "Invalid option '{0}' specified, use +, -, add, or remove", - "cmd-blacklist-added": "{0} users have been added to the blacklist", - "cmd-blacklist-none": "None of those users are in the blacklist.", - "cmd-blacklist-removed": "{0} users have been removed from the blacklist", - "cmd-id-self": "Your ID is `{0}`", - "cmd-id-other": "**{0}**s ID is `{1}`", - "cmd-save-exists": "This song is already in the autoplaylist.", - "cmd-save-invalid": "There is no valid song playing.", - "cmd-save-success": "Added <{0}> to the autoplaylist.", - "cmd-save-success-multiple": "Added {0} songs to the autoplaylist.", - "cmd-unsave-does-not-exist": "This song is not yet in the autoplaylist.", - "cmd-unsave-success": "Removed <{0}> from the autoplaylist.", - "cmd-autoplaylist-does-not-exist": "This song is not yet in the autoplaylist.", - "cmd-autoplaylist-invalid": "The supplied song link is invalid.", - "cmd-autoplaylist-option-invalid": "Invalid option \"{0}\" specified, use +, -, add, or remove", - "cmd-autoplaylist-success": "Removed <{0}> from the autoplaylist.", - "cmd-autoplaylist-add-all-empty-queue": "The queue is empty. Add some songs with `{0}play`!", - "cmd-save-all-exist": "All songs in the queue are already in the autoplaylist.", - "cmd-joinserver-response": "Click here to add me to a server: \n{}", - "cmd-play-spotify-album-process": "Processing album `{0}` (`{1}`)", - "cmd-play-spotify-album-queued": "Enqueued `{0}` with **{1}** songs.", - "cmd-play-spotify-playlist-process": "Processing playlist `{0}` (`{1}`)", - "cmd-play-spotify-playlist-queued": "Enqueued `{0}` with **{1}** songs.", - "cmd-play-spotify-unsupported": "That is not a supported Spotify URI.", - "cmd-play-spotify-invalid": "You either provided an invalid URI, or there was a problem.", - "cmd-play-spotify-unavailable": "The bot is not setup to support Spotify URIs. Check your config.", - "cmd-play-limit": "You have reached your enqueued song limit ({0})", - "cmd-play-noinfo": "That video cannot be played. Try using the {0}stream command.", - "cmd-play-nodata": "Error extracting info from search string, youtubedl returned no data. You may need to restart the bot if this continues to happen.", - "cmd-play-playlist-error": "Error queuing playlist:\n`{0}`", - "cmd-play-playlist-gathering-1": "Gathering playlist information for {0} songs{1}", - "cmd-play-playlist-gathering-2": ", ETA: {time:.2f} seconds", - "cmd-play-playlist-maxduration": "No songs were added, all songs were over max duration (%ss)", - "cmd-play-playlist-reply": "Enqueued **%s** songs to be played. Position in queue: %s", - "cmd-play-playlist-invalid": "That playlist cannot be played.", - "cmd-play-playlist-process": "Processing {0} songs...", - "cmd-play-playlist-queueerror": "Error handling playlist {0} queuing.", - "cmd-play-playlist-skipped": "\nAdditionally, the current song was skipped for being too long.", - "cmd-play-playlist-reply-secs": "Enqueued {0} songs to be played in {1} seconds", - "cmd-play-song-limit": "Song duration exceeds limit ({0} > {1})", - "cmd-play-song-reply": "Enqueued `%s` to be played. Position in queue: %s", - "cmd-play-next": "Up next!", - "cmd-play-eta": " - estimated time until playing: %s", - "cmd-play-eta-error": " - cannot estimate time until playing", - "cmd-play-badextractor": "You do not have permission to play the requested media. Service `{}` is not permitted.", - "cmd-shuffleplay-shuffled": "Shuffled {0}'s playlist", - "cmd-stream-limit": "You have reached your enqueued song limit ({0})", - "cmd-stream-success": "Streaming.", - "cmd-search-limit": "You have reached your playlist item limit ({0})", - "cmd-search-noquery": "Please specify a search query.\n%s", - "cmd-search-noquote": "Please quote your search query properly.", - "cmd-search-searchlimit": "You cannot search for more than %s videos", - "cmd-search-searching": "Searching for videos...", - "cmd-search-none": "No videos found.", - "cmd-search-header": "{0} search results: \n\n", - "cmd-search-result": "Result {0}/{1}: {2}", - "cmd-search-list-entry": "**{0}**. **{1}** | {2}", - "cmd-search-result-list-noembed": "{0}", - "cmd-search-accept": "Alright, coming right up!", - "cmd-search-accept-list-embed": "[{0}]({1}) added to queue", - "cmd-search-accept-list-noembed": "{0} added to queue", - "cmd-search-decline": "Oh well :(", - "cmd-search-title": "{0} search results:", - "cmd-search-field-name": "Pick a song", - "cmd-search-invalid-option": "Your choice is not in the list. Please choose an option listed above", - "cmd-np-action-streaming": "Streaming", - "cmd-np-action-playing": "Playing", - "cmd-np-reply-author": "Now {action}: **{title}** added by **{author}**\nProgress: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "Now {action}: **{title}**\nProgress: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "There are no songs queued! Queue something with {0}play.", - "cmd-summon-novc": "You are not in a voice channel!", - "cmd-summon-noperms-connect": "Cannot join channel `{0}`, no permission to connect.", - "cmd-summon-noperms-speak": "Cannot join channel `{0}`, no permission to speak.", - "cmd-summon-reply": "Connected to `{0.name}`", - "cmd-pause-reply": "Paused music in `{0.name}`", - "cmd-pause-none": "Player is not playing.", - "cmd-resume-reply": "Resumed music in `{0.name}`", - "cmd-resume-none": "Player is not paused.", - "cmd-shuffle-reply": "Shuffled `{0}`'s queue.", - "cmd-clear-reply": "Cleared `{0}'s` queue", - "cmd-remove-none": "There's nothing to remove!", - "cmd-remove-reply": "Removed `{0}` added by `{1}`", - "cmd-remove-missing": "Nothing found in the queue from user `%s`", - "cmd-remove-noperms": "You do not have the valid permissions to remove that entry from the queue, make sure you're the one who queued it or have instant skip permissions", - "cmd-remove-invalid": "Invalid number. Use {}queue to find queue positions.", - "cmd-remove-reply-author": "Removed entry `{0}` added by `{1}`", - "cmd-remove-reply-noauthor": "Removed entry `{0}`", - "cmd-setprefix-cleared": "Server command prefix is cleared.", - "cmd-setprefix-changed": "Server command prefix is now: {0}", - "cmd-setprefix-disabled": "Prefix per server is not enabled!", - "cmd-skip-none": "Can't skip! The player is not playing!", - "cmd-skip-dl": "The next song (`%s`) is downloading, please wait.", - "cmd-skip-force": "Force skipped `{}`.", - "cmd-skip-force-noperms": "You do not have permission to force skip.", - "cmd-skip-reply-skipped-1": "Your skip for `{0}` was acknowledged.\nThe vote to skip has been passed.{1}", - "cmd-skip-reply-skipped-2": " Next song coming up!", - "cmd-skip-reply-voted-1": "Your skip for `{0}` was acknowledged.\n**{1}** more {2} required to vote to skip this song.", - "cmd-skip-reply-voted-2": "person is", - "cmd-skip-reply-voted-3": "people are", - "cmd-skip-force-noperms-looped-song": "You do not have permission to force skip a looped song.", - "cmd-skip-vote-noperms-looped-song": "You do not have permission to skip a looped song.", - "cmd-volume-current": "Current volume: `%s%%`", - "cmd-volume-invalid": "`{0}` is not a valid number", - "cmd-volume-reply": "Updated volume from **%d** to **%d**", - "cmd-volume-unreasonable-relative": "Unreasonable volume change provided: {}{:+} -> {}%. Provide a change between {} and {:+}.", - "cmd-volume-unreasonable-absolute": "Unreasonable volume provided: {}%. Provide a value between 1 and 100.", - "cmd-option-autoplaylist-enabled": "The autoplaylist is already enabled!", - "cmd-option-autoplaylist-disabled": "The autoplaylist is already disabled!", - "cmd-option-autoplaylist-none": "There are no entries in the autoplaylist file.", - "cmd-option-invalid-value": "The value provided was not valid.", - "cmd-option-invalid-param": "The parameters provided were invalid.", - "cmd-cache-invalid-arg": "Invalid option \"{0}\" specified, use info or clear", - "cmd-cache-size-now": "\n\n**Cached Now:** {0} in {1} file(s)", - "cmd-cache-info": "**Video Cache:** *{0}*\n**Storage Limit:** *{1}*\n**Time Limit:** *{2}*{3}", - "cmd-cache-clear-success": "Cache has been cleared.", - "cmd-cache-clear-failed": "**Failed** to delete cache, check logs for more info...", - "cmd-cache-clear-no-cache": "No cache found to clear.", - "cmd-queue-more": "\n... and %s more", - "cmd-queue-none": "There are no songs queued! Queue something with {}play.", - "cmd-queue-playing-author": "Currently playing: `{0}`\nAdded by: `{1}`\nProgress: {2}\n", - "cmd-queue-playing-noauthor": "Currently playing: `{0}`\nProgress: {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}` by `{2}`", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "Invalid parameter. Please provide a number of messages to search.", - "cmd-clean-reply": "Cleaned up {0} message{1}.", - "cmd-repeat-no-voice": "The bot is not in a voice channel. Use %ssummon to summon it to your voice channel.", - "cmd-repeat-no-songs": "No songs are currently playing. Play something with {}play.", - "cmd-repeat-playlist-looping": "Playlist is now repeating.", - "cmd-repeat-playlist-not-looping": "Playlist is no longer repeating.", - "cmd-repeat-song-looping": "Song is now repeating.", - "cmd-repeat-song-not-looping": "Song is no longer repeating.", - "cmd-repeat-invalid": "Invalid option, please run {}help repeat to a list of available options.", - "cmd-repeat-already-off": "The player is not currently looping.", - "cmd-move-no-voice": "The bot is not in a voice channel. Use %ssummon to summon it to your voice channel.", - "cmd-move-no-songs": "No songs are currently playing. Play something with {}play.", - "cmd-move-indexes-not-intergers": "Song indexes must be integers.", - "cmd-move-invalid-indexes": "Sent indexes are outside of playlist scope!", - "cmd-move-success": "Successfully moved the requested song from position number {} in queue to position {}!", - "cmd-restart-invalid-arg": "Invalid option given, use: soft, full, upgrade, uppip, or upgit.", - "cmd-restart-soft": "{emoji} Restarting current instance...", - "cmd-restart-full": "{emoji} Restarting bot process...", - "cmd-restart-uppip": "{emoji} Will try to upgrade required pip packages and restart the bot...", - "cmd-restart-upgit": "{emoji} Will try to update bot code with git and restart the bot...", - "cmd-restart-upgrade": "{emoji} Will try to upgrade everything and restart the bot...", - "cmd-disconnect-success": "Disconnected from `{0.name}`", - "cmd-disconnect-no-voice": "Not currently connected to `{0.name}`", - "playlists-noperms": "You are not allowed to request playlists", - "playlists-big": "Playlist has too many entries ({0} > {1})", - "playlists-limit": "Playlist entries + your already queued songs reached limit ({0} + {1} > {2})", - "karaoke-enabled": "Karaoke mode is enabled, please try again when its disabled!", - "left-no-owner-guilds": "Left `{}` due to bot owner not being found in it.", - "on_player_play-onChannel_authorNotInChannel_skipWhenAbsent": "Skipping next song in {channel}: {title} added by {author} as queuer not in voice!", - "on_player_play-onChannel_playingMention": "{author} - your song {title} is now playing in {channel}!", - "on_player_play-onChannel": "Now playing in {channel}: {title} added by {author}!", - "on_player_play-onChannel_noAuthor_autoplaylist": "Now playing automatically added entry {title} in {channel}!" -} diff --git a/config/i18n/es.json b/config/i18n/es.json deleted file mode 100644 index e73a72e2a..000000000 --- a/config/i18n/es.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "cmd-resetplaylist-response": "La lista de reproducción se ha reseteado.", - "cmd-help-invalid": "Ese comando no existe.", - "cmd-help-no-perms": "No tienes permiso para utilizar ningún comando. Utiliza '{}help all' para mostrar los comandos.", - "cmd-help-response": "Para información sobre un comando en concreto, ejecuta '{}help [comando]'\nPara más ayuda consulta: https://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\nSolo mostrando comandos que puedes utilizar, para la lista completa de comandos utiliza '{}help all'", - "cmd-blacklist-invalid": "Opción no valida '{0}' especificada, utiliza +, -, add, o remove.", - "cmd-blacklist-added": "{0} usuarios han sido añadidos a la lista negra.", - "cmd-blacklist-none": "Ninguno de esos usuarios están en la lista negra.", - "cmd-blacklist-removed": "{0} usuarios han sido quitados de la lista negra.", - "cmd-id-self": "Tú id es '{0}'.", - "cmd-id-other": "La ID de **{0}** es '{1}'.", - "cmd-save-exists": "Esa canción ya está en la lista de reproducción.", - "cmd-save-invalid": "No hay ninguna canción valida.", - "cmd-save-success": "<{0}> ha sido añadida a la lista de reproducción.", - "cmd-joinserver-response": "Haz clic aquí para añadirme a un servidor: \n{}", - "cmd-play-spotify-album-process": "Procesando el álbum '{0}' ('{1}').", - "cmd-play-spotify-album-queued": "'{0}' se ha puesto en cola con **{1}** canciones.", - "cmd-play-spotify-playlist-process": "Procesando lista de reproducción '{0}' ('{1}').", - "cmd-play-spotify-playlist-queued": "'{0}' se ha puesto en cola con **{1}** canciones.", - "cmd-play-spotify-unsupported": "Esa no es una URI de Spotify.", - "cmd-play-spotify-invalid": "Has enviado una URI invalida o ha habido un problema.", - "cmd-play-spotify-unavailable": "El bot no está configurado para aceptar URIs de Spotify. Comprueba tu configuracion.", - "cmd-play-limit": "Has alcanzado tu limite de canciones en cola ({0})", - "cmd-play-noinfo": "Ese video no puede ser reproducido. Intenta usar el comando {0}stream.", - "cmd-play-nodata": "Error extrayendo información de la búsqueda, youtubedl no ha devuelto datos. Puede que tengas que reiniciar el bot si esto sigue pasando.", - "cmd-play-playlist-error": "Error poniendo la lista en cola:\n'{0}'", - "cmd-play-playlist-gathering-1": "Recopilando información para la lista {0} con {1} canciones.", - "cmd-play-playlist-gathering-2": ", ETA: {0} segundos", - "cmd-play-playlist-maxduration": "No se añadió ninguna canción, todas sobrepasaban el limite de duración (%ss)", - "cmd-play-playlist-reply": "Añadidas **%s** canciones. Posición en la cola: %s", - "cmd-play-playlist-invalid": "Esa lista no puede ser reproducida.", - "cmd-play-playlist-process": "Procesando {0} canciones...", - "cmd-play-playlist-queueerror": "Error manejando la lista {0} poniendo en cola.", - "cmd-play-playlist-skipped": "\nAdicionalmente, la canción actual fue saltada por ser demasiado larga.", - "cmd-play-playlist-reply-secs": "Añadidas {0} canciones para ser reproducidas en {1} segundos.", - "cmd-play-song-limit": "La duración de la canción sobrepasa el limite ({0} > {1})", - "cmd-play-song-reply": "Añadidas a la cola '%s' para ser reproducidas. Posición en la cola: %s", - "cmd-play-next": "Siguiente!", - "cmd-play-eta": " - Tiempo estimado hasta la reproducción: %s", - "cmd-play-badextractor": "No tienes permiso para reproducir multimedia de este servicio.", - "cmd-stream-limit": "Has alcanzado tu limite de canciones en cola ({0})", - "cmd-stream-success": "Retransmitiendo.", - "cmd-search-limit": "Has alcanzado tu limite de elementos en cola ({0})", - "cmd-search-noquery": "Por favor especifica una búsqueda.\n%s", - "cmd-search-noquote": "Por favor escribe tu búsqueda entre comillas.", - "cmd-search-searchlimit": "No puedes buscar más de %s videos", - "cmd-search-searching": "Buscando videos...", - "cmd-search-none": "No se han encontrado videos.", - "cmd-search-result": "Resultado {0}/{1}: {2}", - "cmd-search-accept": "OK!", - "cmd-search-decline": "Oh vaya :(", - "cmd-np-action-streaming": "Retransmitiendo.", - "cmd-np-action-playing": "Reproduciendo.", - "cmd-np-reply-author": "Ahora {action}: **{title}** añadido por **{author}**\nProgreso: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "Ahora {action}: **{title}**\nProgreso: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "No hay canciones en la cola! Añade alguna con {0}play.", - "cmd-summon-novc": "No estas en un canal de voz!", - "cmd-summon-noperms-connect": "No puedo entrar en el canal '{0}', no tengo permiso para conectarme.", - "cmd-summon-noperms-speak": "No puedo entrar en el canal '{0}', no tengo permiso para hablar.", - "cmd-summon-reply": "Conectado a '{0.name}'", - "cmd-pause-reply": "Música pausada en '{0.name}'", - "cmd-pause-none": "El reproductor está parado.", - "cmd-resume-reply": "Reanudado música en '{0.name}'", - "cmd-resume-none": "El reproductor no está pausado.", - "cmd-shuffle-reply": "Mezclado la cola de '{0}'", - "cmd-clear-reply": "Limpiada la cola de '{0}'", - "cmd-remove-none": "No hay nada que eliminar!", - "cmd-remove-reply": "Eliminado '{0}' añadido por '{1}'", - "cmd-remove-missing": "No se ha encontrado nada en la cola de '%s'", - "cmd-remove-noperms": "No tienes los permisos para eliminar ese elemento de la cola, asegurate de ser el que lo ha añadido o de que tienes permisos de instaskip.", - "cmd-remove-invalid": "Numero no valido. Utiliza {}queue para encontrar posiciones en la cola.", - "cmd-remove-reply-author": "Eliminado '{0}' añadido por '{1}'", - "cmd-remove-reply-noauthor": "Eliminado '{0}'", - "cmd-skip-none": "No se puede pasar! El reproductor está parado!", - "cmd-skip-dl": "La siguiente canción ('%s') se está descargando, por favor espera.", - "cmd-skip-force": "Saltado forzosamente '{}'.", - "cmd-skip-force-noperms": "No tienes permisos para saltar forzosamente.", - "cmd-skip-reply-skipped-1": "Tus intenciones de saltar '{0}' han sido recibidas.\nLa votación para saltar ha sido aprobada.{1}", - "cmd-skip-reply-skipped-2": " Siguiente canción!", - "cmd-skip-reply-voted-1": "Tus intenciones de saltar '{0}' han sido recibidas.\n**{1}** más {2} necesarios para aprobar la votación.", - "cmd-skip-reply-voted-2": "persona es", - "cmd-skip-reply-voted-3": "gente son", - "cmd-volume-current": "Volumen actual: '%s%%'", - "cmd-volume-invalid": "'{0}' no es un numero valido", - "cmd-volume-reply": "Actualizado el volumen de **%d** a **%d**", - "cmd-volume-unreasonable-relative": "Cambio de volumen no razonable: {}{:+} -> {}%. Envía un cambio entre {} y {:+}.", - "cmd-volume-unreasonable-absolute": "Cambio de volumen no razonable: {}%. Envía un valor entre 1 y 100.", - "cmd-option-autoplaylist-enabled": "La lista de reproducción ya está activada!", - "cmd-option-autoplaylist-disabled": "La lista de reproducción ya está desactivada!", - "cmd-option-autoplaylist-none": "No hay entradas en el archivo de la lista de reproducción.", - "cmd-option-invalid-value": "El valor enviado no es valido.", - "cmd-option-invalid-param": "Los parámetros enviados no son validos.", - "cmd-queue-more": "\n... y %s más", - "cmd-queue-none": "No hay canciones en la cola! Añade algo con {}play.", - "cmd-queue-playing-author": "Reproduciendo: '{0}' añadido por '{1}' {2}\n", - "cmd-queue-playing-noauthor": "Reproduciendo: '{0}' {1}\n", - "cmd-queue-entry-author": "{0} -- '{1}' por '{2}'", - "cmd-queue-entry-noauthor": "{0} -- '{1}'", - "cmd-clean-invalid": "Parámetro no valido. Por favor envía el numero de mensajes a buscar.", - "cmd-clean-reply": "Limpiados {0} mensajes {1}.", - "playlists-noperms": "No tienes permiso para pedir listas de reproducción.", - "playlists-big": "La lista tiene demasiados elementos ({0} > {1})", - "playlists-limit": "Tu lista de reproducción + Los elementos ya añadidos sobrepasan el limite ({0} + {1} > {2})", - "karaoke-enabled": "El modo karaoke está activado, por favor prueba otra vez cuando este desactivado!", - "left-no-owner-guilds": "He salido de '{}' porque el propietario del bot no ha sido encontrado allí." -} diff --git a/config/i18n/fr.json b/config/i18n/fr.json deleted file mode 100644 index 8dd30b19a..000000000 --- a/config/i18n/fr.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "cmd-resetplaylist-response": "L'autoplaylist de ce serveur a été réinitialisé.", - "cmd-help-invalid": "Cette commande n'existe pas.", - "cmd-help-no-perms": "Vous n'avez pas la permission d'utiliser de commandes. Utilisez `{}help all` pour lister toutes les commandes malgré cela.", - "cmd-help-response": "Pour obtenir des informations sur une commande en particulier, utilisez `{}help [command]`\nPour plus d'aide, voire https://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\nNe montre que les commandes que vous pouvez utiliser, pour une liste de toutes les commandes, utilisez `{}help all`", - "cmd-blacklist-invalid": "Option invalide '{0}' spécifié, utilisez +, -, add, or remove", - "cmd-blacklist-added": "{0} utilisateurs ont été ajoutés à la liste noire", - "cmd-blacklist-none": "Aucun de ces utilisateurs ne figure sur la liste noire.", - "cmd-blacklist-removed": "{0} utilisateurs ont été retirés de la liste noire", - "cmd-id-self": "Votre ID est `{0}`", - "cmd-id-other": "L'ID de **{0}** est `{1}`", - "cmd-save-exists": "Cette chanson est déjà dans l'autoplaylist.", - "cmd-save-invalid": "Il n'y a pas de chanson valide en cours de lecture.", - "cmd-save-success": "<{0}> ajouté à l'autoplaylist.", - "cmd-joinserver-response": "Cliquez ici pour m'ajouter à un serveur: \n{}", - "cmd-play-spotify-album-process": "Traitement de l'album `{0}` (`{1}`)", - "cmd-play-spotify-album-queued": "Album `{0}` avec **{1}** chansons ajouté à la file d'attente.", - "cmd-play-spotify-playlist-process": "Traitement de la playlist `{0}` (`{1}`)", - "cmd-play-spotify-playlist-queued": "Playlist `{0}` avec **{1}** chansons ajouté à la file d'attente.", - "cmd-play-spotify-unsupported": "Ce n'est pas une URL Spotify supportée.", - "cmd-play-spotify-invalid": "Soit vous avez fourni un URI invalide, soit il y a eu un problème.", - "cmd-play-spotify-unavailable": "Le bot n'est pas configuré pour supporter les URLs Spotify. Vérifiez votre configuration.", - "cmd-play-limit": "Vous avez atteint la limite de chansons mises en file d'attente ({0})", - "cmd-play-noinfo": "Cette vidéo ne peut pas être jouée. Essayez d'utiliser la commande {0}stream.", - "cmd-play-nodata": "Erreur d'extraction des informations de la recherche, youtubedl n'a renvoyé aucune donnée. Vous devrez peut-être redémarrer le robot si cela continue à se produire.", - "cmd-play-playlist-error": "Erreur de mise en file d'attente de la playlist:\n`{0}`", - "cmd-play-playlist-gathering-1": "Rassemblement des informations de la liste de lecture pour {0} chansons{1}", - "cmd-play-playlist-gathering-2": ", ETA: {0} secondes", - "cmd-play-playlist-maxduration": "Aucune chanson n'a été ajoutée, toutes les chansons dépassaient la durée maximale. (%ss)", - "cmd-play-playlist-reply": "**%s** chansons mises en file d'attente. Position dans la file d'attente : %s", - "cmd-play-playlist-invalid": "Cette playlist ne peut pas être jouée.", - "cmd-play-playlist-process": "Traitement de {0} chansons...", - "cmd-play-playlist-queueerror": "Erreur lors de la mise en file d'attente de la playlist {0}.", - "cmd-play-playlist-skipped": "\nDe plus, la chanson en cours a été passée car elle était trop longue.", - "cmd-play-playlist-reply-secs": "Mise en file d'attente de {0} chansons qui seront jouées dans {1} secondes.", - "cmd-play-song-limit": "La durée de la chanson dépasse la limite ({0} > {1})", - "cmd-play-song-reply": "`%s` mis en file d'attente pour être joué. Position dans la file d'attente: %s", - "cmd-play-next": "Juste après!", - "cmd-play-eta": " - temps estimé avant la lecture: %s", - "cmd-play-eta-error": " - ne peut pas estimer le temps avant de jouer", - "cmd-play-badextractor": "Vous n'avez pas la permission de lire les médias de ce service.", - "cmd-stream-limit": "Vous avez atteint la limite de chansons mises en file d'attente ({0})", - "cmd-stream-success": "Streaming.", - "cmd-search-limit": "Vous avez atteint la limite d'éléments de votre playlist. ({0})", - "cmd-search-noquery": "Veuillez spécifier une recherche.\n%s", - "cmd-search-noquote": "Veuillez correctement mettre des guillemets autour de votre recherche.", - "cmd-search-searchlimit": "Vous ne pouvez pas rechercher plus de %s vidéos", - "cmd-search-searching": "Recherche de vidéos...", - "cmd-search-none": "Aucune vidéo trouvée.", - "cmd-search-header": "Résultat de la recherche {0}: \n\n", - "cmd-search-result": "Résultat {0}/{1}: {2}", - "cmd-search-list-entry": "**{0}**. **{1}** | {2}", - "cmd-search-result-list-noembed": "{0}", - "cmd-search-accept": "Parfait, ça arrive tout de suite !", - "cmd-search-accept-list-embed": "[{0}]({1}) ajouté à la file d'attente", - "cmd-search-accept-list-noembed": "{0} ajouté à la file d'attente", - "cmd-search-decline": "Dommage... :(", - "cmd-search-title": "résultats de la recherche {0}:", - "cmd-search-field-name": "Choisissez une chanson", - "cmd-search-invalid-option": "Votre choix n'est pas dans la liste. Veuillez choisir une option dans la liste ci-dessus", - "cmd-np-action-streaming": "Streaming", - "cmd-np-action-playing": "Lecture", - "cmd-np-reply-author": "{action} de **{title}** ajouté par **{author}**\nAvancé: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "{action} de **{title}**\nAvancé: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "Il n'y a pas de chansons dans la file d'attente! Mets quelque chose en attente avec {0}play.", - "cmd-summon-novc": "Vous n'êtes pas dans un channel vocal!", - "cmd-summon-noperms-connect": "Impossible de rejoindre le channel `{0}`, pas de permission pour se connecter.", - "cmd-summon-noperms-speak": "Impossible de rejoindre le channel `{0}`, pas de permission pour parler.", - "cmd-summon-reply": "Connecté à `{0.name}`", - "cmd-pause-reply": "Musique mise en pause dans `{0.name}`", - "cmd-pause-none": "Le lecteur ne joue rien.", - "cmd-resume-reply": "Reprise de la musique dans `{0.name}`", - "cmd-resume-none": "Le lecteur n'est pas en pause.", - "cmd-shuffle-reply": "J'ai mélangé la file d'attente de `{0}`.", - "cmd-clear-reply": "File d'attente de `{0}` mélangée.", - "cmd-remove-none": "Il n'y a rien à retirer!", - "cmd-remove-reply": "Retiré `{0}` ajouté par `{1}`", - "cmd-remove-missing": "Rien trouvé dans la file d'attente de l'utilisateur `%s`", - "cmd-remove-noperms": "Vous n'avez pas les autorisations valides pour supprimer cette entrée de la file d'attente, assurez-vous que vous êtes celui qui l'a mise en file d'attente ou que vous avez les permissions de passage instantané.", - "cmd-remove-invalid": "Numéro non valide. Utilisez {}queue pour trouver les positions de la file d'attente.", - "cmd-remove-reply-author": "Retrait de l'entrée `{0}` ajoutée par `{1}`.", - "cmd-remove-reply-noauthor": "Retrait de l'entrée `{0}`", - "cmd-skip-none": "Impossible de passer! Le lecteur ne joue rien!", - "cmd-skip-dl": "La prochaine chanson (`%s`) est en cours de téléchargement, veuillez patienter.", - "cmd-skip-force": "Passage forcé `{}`.", - "cmd-skip-force-noperms": "Vous n'avez pas la permission de forcer le passage.", - "cmd-skip-reply-skipped-1": "Votre vote pour le passage de `{0}` a été pris en compte. Le vote pour le passage a été accepté.{1}", - "cmd-skip-reply-skipped-2": " La prochaine chanson arrive!", - "cmd-skip-reply-voted-1": "Votre vote pour le passage de `{0}` a été pris en compte.\nPlus que **{1}** {2} requise pour passer cette chanson.", - "cmd-skip-reply-voted-2": "personne", - "cmd-skip-reply-voted-3": "personnes", - "cmd-volume-current": "Volume actuel: `%s%%`", - "cmd-volume-invalid": "`{0}` n'est pas un nombre valide", - "cmd-volume-reply": "Volume changé de **%d** à **%d**", - "cmd-volume-unreasonable-relative": "Changement de volume non raisonnable fourni: {}{:+} -> {}%. Fournissez un changement entre {} et {:+}.", - "cmd-volume-unreasonable-absolute": "Changement de volume non raisonnable fourni: {}%. Fournissez un changement 1 et 100.", - "cmd-option-autoplaylist-enabled": "L'autoplaylist est déjà activée!", - "cmd-option-autoplaylist-disabled": "L'autoplaylist est déjà désactivée!", - "cmd-option-autoplaylist-none": "Il n'y a aucune entrée dans le fichier de l'autoplaylist.", - "cmd-option-invalid-value": "La valeur fournie n'était pas valide.", - "cmd-option-invalid-param": "Les paramètres fournis n'étaient pas valides.", - "cmd-queue-more": "\n... et %s plus", - "cmd-queue-none": "Il n'y a pas de chansons en attente ! Mettez quelque chose en attente avec {}play.", - "cmd-queue-playing-author": "Lecture en cours: `{0}` ajouté par `{1}` {2}\n", - "cmd-queue-playing-noauthor": "Lecture en cours: `{0}` {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}` by `{2}`", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "Paramètre non valide. Veuillez fournir un nombre de messages à rechercher.", - "cmd-clean-reply": "{0} message{1} supprimé{1}.", - "playlists-noperms": "Vous n'êtes pas autorisé à jouer des playlist", - "playlists-big": "La playlist a trop d'entrées ({0} > {1})", - "playlists-limit": "Les entrées de la playlist + vos chansons déjà en file d'attente ont atteint la limite. ({0} + {1} > {2})", - "karaoke-enabled": "Le mode karaoké est activé, veuillez réessayer quand il sera désactivé!", - "left-no-owner-guilds": "A quitté `{}` parce que le propriétaire du bot n'a pas été trouvé dedans.", - "on_player_play-onChannel_authorNotInChannel_skipWhenAbsent": "Saut de la prochaine chanson dans {channel}: {title} ajouté par {author} car il n'est plus dans le channel!", - "on_player_play-onChannel_playingMention": "{author} - votre chanson {title} est en cours de lecture dans {channel}!", - "on_player_play-onChannel": "Lecture en cours dans {channel}: {title} ajouté par {author}!", - "on_player_play-onChannel_noAuthor_autoplaylist": "Lecture en cours d'une entrée de l'autoplaylist: {title} dans {channel}!" -} \ No newline at end of file diff --git a/config/i18n/hin.json b/config/i18n/hin.json deleted file mode 100644 index efbe1842c..000000000 --- a/config/i18n/hin.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "cmd-resetplaylist-response": "सर्वर की ऑटोप्लेलिस्ट रीसेट कर दी गई है।", - "cmd-help-invalid": "ऐसा कोई आदेश उपलब्ध नहीं है", - "cmd-help-no-perms": "आपको किसी भी आदेश का उपयोग करने की अनुमति नहीं है। किसी भी तरह से हर कमांड को सूचीबद्ध करने के लिए `{}help all' चलाएं", - "cmd-help-response": "किसी विशेष कमांड के बारे में जानकारी के लिए, `{}help [command]` का प्रयोग करें \nअधिक सहायता के लिए देखें https://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\nकेवल उन आदेशों को दिखा रहा है जिनका आप उपयोग कर सकते हैं, सभी आदेशों की सूची के लिए, `{}help all` का प्रयोग करें", - "cmd-blacklist-invalid": "अमान्य विकल्प '{0}' निर्दिष्ट, +, -, add, or remove का प्रयोग करें", - "cmd-blacklist-added": "{0} उपयोगकर्ताओं को ब्लैकलिस्ट में जोड़ दिया गया है", - "cmd-blacklist-none": "इनमें से कोई भी उपयोगकर्ता ब्लैकलिस्ट में नहीं है।", - "cmd-blacklist-removed": "{0} उपयोगकर्ताओं को ब्लैकलिस्ट से हटा दिया गया है", - "cmd-id-self": "आपकी आईडी है `{0}`", - "cmd-id-other": "**{0}** की आईडी है `{1}`", - "cmd-save-exists": "यह गाना पहले से ही ऑटोप्लेलिस्ट में है।", - "cmd-save-invalid": "कोई मान्य गाना नहीं चल रहा है।", - "cmd-save-success": "ऑटोप्लेलिस्ट में <{0}> जोड़ा गया है।", - "cmd-joinserver-response": "मुझे सर्वर से जोड़ने के लिए यहां क्लिक करें: \n{}", - "cmd-play-spotify-album-process": "प्रसंस्करण एल्बम `{0}` (`{1}`)", - "cmd-play-spotify-album-queued": "`{0}`, **{1}** के गानों के साथ कतारबद्ध है", - "cmd-play-spotify-playlist-process": "प्लेलिस्ट को संसाधित किया जा रहा `{0}` / (`{1}`)", - "cmd-play-spotify-playlist-queued": "`{0}`, **{1}** के गानों के साथ कतारबद्ध है.", - "cmd-play-spotify-unsupported": "यह समर्थित Spotify URI नहीं है.", - "cmd-play-spotify-invalid": "आपने या तो एक अमान्य URI प्रदान किया था, या कोई समस्या थी।", - "cmd-play-spotify-unavailable": "Spotify URI को सपोर्ट करने के लिए बॉट सेटअप नहीं है। अपनी कॉन्फ़िगरेशन जांचें।", - "cmd-play-limit": "आप अपनी पंक्तिबद्ध गीत सीमा ({0}) तक पहुंच गए हैं", - "cmd-play-noinfo": "वह वीडियो चलाया नहीं जा सकता। {0}stream कमांड का उपयोग करके देखें।", - "cmd-play-nodata": "खोज स्ट्रिंग से जानकारी निकालने में त्रुटि, youtubedl ने कोई डेटा नहीं दिया। यदि ऐसा होता रहता है, तो आपको बॉट को पुनरारंभ करने की आवश्यकता हो सकती है।", - "cmd-play-playlist-error": "Error queuing playlist:\n`{0}`", - "cmd-play-playlist-gathering-1": "{0} गीतों{1} के लिए प्लेलिस्ट जानकारी एकत्रित करना", - "cmd-play-playlist-gathering-2": ", आगमन का अनुमानित समय: {0} seconds", - "cmd-play-playlist-maxduration": "कोई गीत नहीं जोड़ा गया, सभी गीत अधिकतम अवधि (%ss) से अधिक थे", - "cmd-play-playlist-reply": "कतारबद्ध **%s** गाने बजाए जाने हैं। कतार में स्थिति: %s", - "cmd-play-playlist-invalid": "वह प्लेलिस्ट नहीं चलाई जा सकती।", - "cmd-play-playlist-process": "{0} गाने प्रोसेस किए जा रहे हैं...", - "cmd-play-playlist-queueerror": "प्लेलिस्ट {0} को प्रबंधित करने में त्रुटि.", - "cmd-play-playlist-skipped": "\nइसके अतिरिक्त, वर्तमान गीत को बहुत लंबा होने के कारण छोड़ दिया गया था।", - "cmd-play-playlist-reply-secs": "कतारबद्ध {0} गाने {1} सेकंड में बजाए जाने के लिए", - "cmd-play-song-limit": "गाने की अवधि सीमा से अधिक है ({0} > {1})", - "cmd-play-song-reply": "कतारबद्ध `%s` चलाया जाना है। कतार में स्थिति: %s", - "cmd-play-next": "अगला!", - "cmd-play-eta": " - बजाएजाने तक तक अनुमानित समय: %s", - "cmd-play-eta-error": " - बजाएजाने तक समय का अनुमान नहीं लगा सकते ", - "cmd-play-badextractor": "आपको इस सेवा से मीडिया चलाने की अनुमति नहीं है।", - "cmd-stream-limit": "आप अपनी पंक्तिबद्ध गीत सीमा ({0}) तक पहुंच गए हैं", - "cmd-stream-success": "स्ट्रीमिंग.", - "cmd-search-limit": "आप अपनी प्लेलिस्ट आइटम सीमा ({0}) तक पहुंच गए हैं", - "cmd-search-noquery": "कृपया एक खोज क्वेरी निर्दिष्ट करें।\n%s", - "cmd-search-noquote": "कृपया अपनी खोज क्वेरी को ठीक से उद्धृत करें।", - "cmd-search-searchlimit": "आप %s से अधिक वीडियो नहीं खोज सकते", - "cmd-search-searching": "वीडियो खोजे जा रहे हैं...", - "cmd-search-none": "कोई वीडियो नहीं मिले।", - "cmd-search-header": "{0} खोज परिणाम: \n\n", - "cmd-search-result": "परिणाम {0}/{1}: {2}", - "cmd-search-list-entry": "**{0}**. **{1}** | {2}", - "cmd-search-result-list-noembed": "{0}", - "cmd-search-accept": "अब अगला आ रहा है!", - "cmd-search-accept-list-embed": "[{0}]({1}) कतार में जोड़ा गया", - "cmd-search-accept-list-noembed": "{0} कतार में जोड़ा गया", - "cmd-search-decline": "अरे यार :(", - "cmd-search-title": "{0} खोज के परिणाम:", - "cmd-search-field-name": "एक गाना चुनें", - "cmd-search-invalid-option": "आपकी पसंद सूची में नहीं है। कृपया ऊपर सूचीबद्ध कोई विकल्प चुनें", - "cmd-np-action-streaming": "स्ट्रीमिंग", - "cmd-np-action-playing": "गाना बजा जा रहा है", - "cmd-np-reply-author": "अब {action}: **{title}** द्वारा जोड़ा गया **{author}**\nप्रगति: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "अब {action}: **{title}**\nप्रगत: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "कोई गीत कतारबद्ध नहीं हैं! {0}play के साथ कुछ पंक्तिबद्ध करें.", - "cmd-summon-novc": "आप वॉइस चैनल में नहीं हैं!", - "cmd-summon-noperms-connect": "चैनल `{0}` में शामिल नहीं हो सकता, कनेक्ट करने की अनुमति नहीं है।", - "cmd-summon-noperms-speak": "चैनल `{0}` में शामिल नहीं हो सकते, बोलने की अनुमति नहीं है।", - "cmd-summon-reply": "`{0.name}` से जुड़ा ", - "cmd-pause-reply": "`{0.name}` में रुका हुआ संगीत", - "cmd-pause-none": "कोई गाना नहीं बजा जा रहा है", - "cmd-resume-reply": "`{0.name}` में संगीत फिर से शुरू", - "cmd-resume-none": "म्यूजिक प्लेयर रुका नहीं है।", - "cmd-shuffle-reply": "`{0}` की कतार में फेरबदल किया गया।", - "cmd-clear-reply": "`{0}` की कतार साफ़ की गई", - "cmd-remove-none": "हटाने के लिए कुछ नहीं है!", - "cmd-remove-reply": "`{1}` द्वारा जोड़ा गया `{0}` हटाया गया", - "cmd-remove-missing": "प्रयोक्ता `%s` . की ओर से कतार में कुछ भी नहीं मिला", - "cmd-remove-noperms": "आपके पास उस प्रविष्टि को कतार से निकालने के लिए मान्य अनुमतियाँ नहीं हैं, सुनिश्चित करें कि आप वही हैं जिसने इसे पंक्तिबद्ध किया है या आपके पास तत्काल स्किप करने की अनुमति है", - "cmd-remove-invalid": "अमान्य संख्या। कतार की स्थिति खोजने के लिए {}queue का प्रयोग करें।", - "cmd-remove-reply-author": "हटाई गई प्रविष्टि `{0}` को `{1}` द्वारा जोड़ा गया", - "cmd-remove-reply-noauthor": "हटाई गई प्रविष्टि `{0}`", - "cmd-skip-none": "छोड़ नहीं सकते! गाना नहीं बज रहा है", - "cmd-skip-dl": "अगला गाना (`%s`) डाउनलोड हो रहा है, कृपया प्रतीक्षा करें।", - "cmd-skip-force": "फोर्स स्किप किया गया गाना `{}`.", - "cmd-skip-force-noperms": "आपको स्किप करने के लिए बाध्य करने की अनुमति नहीं है।", - "cmd-skip-reply-skipped-1": "`{0}` के लिए आपका स्किप स्वीकार कर लिया गया था।\nछोड़ने के लिए वोट पास हो गया है। {1}", - "cmd-skip-reply-skipped-2": " अगला गाना आ रहा है!", - "cmd-skip-reply-voted-1": "`{0}` के लिए आपके स्किप को स्वीकार कर लिया गया था।\n**{1}** और {2} को इस गाने को छोड़ने के लिए वोट करने की आवश्यकता है।", - "cmd-skip-reply-voted-2": "व्यक्ति हैं", - "cmd-skip-reply-voted-3": "व्यक्ति हैं", - "cmd-volume-current": "वर्तमान मात्रा: `%s%%`", - "cmd-volume-invalid": "`{0}` मान्य संख्या नहीं है", - "cmd-volume-reply": "वॉल्यूम को **%d** से **%d** में अपडेट किया गया", - "cmd-volume-unreasonable-relative": "अनुचित मात्रा परिवर्तन प्रदान किया गया: {}{:+} -> {}%। {} और {:+} के बीच परिवर्तन प्रदान करें।", - "cmd-volume-unreasonable-absolute": "अनुचित मात्रा प्रदान की गई: {}%। 1 और 100 के बीच मान प्रदान करें।", - "cmd-option-autoplaylist-enabled": "ऑटोप्लेलिस्ट पहले से ही सक्षम है!", - "cmd-option-autoplaylist-disabled": "ऑटोप्लेलिस्ट पहले ही अक्षम है!", - "cmd-option-autoplaylist-none": "ऑटोप्लेलिस्ट फ़ाइल में कोई प्रविष्टियाँ नहीं हैं।", - "cmd-option-invalid-value": "प्रदान किया गया मान मान्य नहीं था।", - "cmd-option-invalid-param": "प्रदान किए गए पैरामीटर अमान्य थे।", - "cmd-queue-more": "\n... और %s अधिक", - "cmd-queue-none": "कोई गीत कतारबद्ध नहीं हैं! {}play के साथ कुछ पंक्तिबद्ध करें", - "cmd-queue-playing-author": "वर्तमान में चल रहा है: `{0}` `{1}` {2} द्वारा जोड़ा गया\n", - "cmd-queue-playing-noauthor": "वर्तमान में चल रहा है: `{0}` {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}` द्वारा `{2}`", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "अमान्य मापदंड। कृपया खोजने के लिए कई संदेश प्रदान करें।", - "cmd-clean-reply": "साफ़ किया गया {0} संदेश{1}.", - "playlists-noperms": "आपको प्लेलिस्ट का अनुरोध करने की अनुमति नहीं है", - "playlists-big": "प्लेलिस्ट में बहुत अधिक प्रविष्टियां हैं ({0} > {1})", - "playlists-limit": "प्लेलिस्ट प्रविष्टियां + आपके पहले से कतारबद्ध गाने सीमा तक पहुंच गए हैं ({0} + {1} > {2})", - "karaoke-enabled": "कराओके मोड सक्षम है, कृपया इसके अक्षम होने पर पुन: प्रयास करें!", - "left-no-owner-guilds": "उसने चैनल `{}` छोड़ दिया, बॉट ओनर न मिलने के कारण।", - "on_player_play-onChannel_authorNotInChannel_skipWhenAbsent": "अगला गाना {channel} में स्किप किया जा रहा है : {title} जो {author} के द्वारा ऐड किया गया था वह वॉइस चैनल में नहीं है", - "on_player_play-onChannel_playingMention": "{author} - आपका गाना {title} अब {channel} में चल रहा है!", - "on_player_play-onChannel": "अब {channel} मैं बज रहा है: {title} जो {author} के द्वारा जोड़ा गया था", - "on_player_play-onChannel_noAuthor_autoplaylist": "अब {channel} में स्वतः जोड़ी गई प्रविष्टि {title} चला रही है!" -} diff --git a/config/i18n/it.json b/config/i18n/it.json deleted file mode 100644 index e817b7711..000000000 --- a/config/i18n/it.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "cmd-resetplaylist-response": "La playlist automatica del server è stata resettata.", - "cmd-help-invalid": "Il comando non esiste", - "cmd-help-no-perms": "Non hai il permesso di usare alcun comando. Digita `{}help all` per mostrare comunque la lista di comandi", - "cmd-help-response": "Per informazioni su un comando particolare, digita `{}help [command]`\n Per maggiori info, visita http://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\nEcco i comandi che puoi usare. Per la lista di tutti i comandi, digita `{}help all`", - "cmd-blacklist-invalid": "L'opzione '{0}' non è valida; puoi usare +, -, add, o remove", - "cmd-blacklist-added": "{0} utenti sono stati aggiunti alla blacklist", - "cmd-blacklist-none": "Nessuno di questi utenti si trovano nella blacklist.", - "cmd-blacklist-removed": "{0} utenti sono stati rimossi dalla blacklist", - "cmd-id-self": "Il tuo ID è `{0}`", - "cmd-id-other": "L'ID di **{0}**s è `{1}`", - "cmd-save-exists": "Questa traccia si trova già nell'autoplaylist.", - "cmd-save-invalid": "Non ci sono tracce valide in riproduzione.", - "cmd-save-success": "Aggiunta <{0}> all'autoplaylist.", - "cmd-joinserver-response": "Clicca qui per aggiungermi a un server: \n{}", - "cmd-play-spotify-album-process": "Processando l'album `{0}` (`{1}`)", - "cmd-play-spotify-album-queued": "Album `{0}` aggiunto alla coda con **{1}** tracce.", - "cmd-play-spotify-playlist-process": "Processando la playlist `{0}` (`{1}`)", - "cmd-play-spotify-playlist-queued": "Playlist `{0}` aggiunta alla coda con **{1}** tracce.", - "cmd-play-spotify-unsupported": "Questo URI Spotify non è supportato.", - "cmd-play-spotify-invalid": "Hai inserito un URI non valido, oppure qualcosa è andato storto.", - "cmd-play-spotify-unavailable": "Il bot non è configurato per supportare URI Spotify. Controlla il tuo file di configurazione.", - "cmd-play-limit": "Hai raggiunto il limite di tracce che puoi inserire in coda ({0})", - "cmd-play-noinfo": "Non posso riprodurre questo video. Prova con il comando {0}stream .", - "cmd-play-nodata": "Errore nell'estrazione delle informazioni dalla query di ricerca, youtubedl non ha restituito risultati. Potresti dover riavviare il bot se questo accade nuovamente.", - "cmd-play-playlist-error": "Errore nell'aggiunta alla coda della playlist:\n`{0}`", - "cmd-play-playlist-gathering-1": "Recupero le info della playlist per {0} tracce{1}", - "cmd-play-playlist-gathering-2": ", tempo rimasto: {0} secondi", - "cmd-play-playlist-maxduration": "Nessuna traccia è stata aggiunta, superavano tutte la massima durata(%ss)", - "cmd-play-playlist-reply": "**%s** tracce aggiunte alla coda. Posizione in coda: %s", - "cmd-play-playlist-invalid": "Questa playlist non può essere riprodotta.", - "cmd-play-playlist-process": "Processando {0} tracce...", - "cmd-play-playlist-queueerror": "Errore nell'aggiunta alla coda della playlist {0}.", - "cmd-play-playlist-skipped": "\nInoltre, la traccia corrente è stata saltata poiché è troppo lunga.", - "cmd-play-playlist-reply-secs": "Aggiunte alla coda {0} tracce. Saranno riprodotte in {1} seconds", - "cmd-play-song-limit": "La durata della canzone supera il limite ({0} > {1})", - "cmd-play-song-reply": "`%s` aggiunta alla coda. Posizione in coda: %s", - "cmd-play-next": "In riproduzione ora!", - "cmd-play-eta": " - tempo stimato alla riproduzione: %s", - "cmd-play-badextractor": "Non hai il permesso di riprodurre media da questo servizio.", - "cmd-stream-limit": "Hai raggiunto il limite di tracce che puoi aggiungere in coda ({0})", - "cmd-stream-success": "Streaming.", - "cmd-search-limit": "Hai raggiunto il limite di elementi che puoi aggiungere in coda ({0})", - "cmd-search-noquery": "Perfavore specifica cosa vuoi cercare.\n%s", - "cmd-search-noquote": "Perfavore scrivi la ricerca fra virgolette.", - "cmd-search-searchlimit": "Non puoi cercare più di %s video", - "cmd-search-searching": "Cercando i video...", - "cmd-search-none": "Nessun video trovato.", - "cmd-search-result": "Risultato {0}/{1}: {2}", - "cmd-search-accept": "Ok, è la prossima!", - "cmd-search-decline": "Come vuoi :(", - "cmd-np-action-streaming": "Streaming", - "cmd-np-action-playing": "In riproduzione", - "cmd-np-reply-author": "Ora {action}: **{title}** aggiunto da **{author}**\nProgresso: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "Ora {action}: **{title}**\nProgresso: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "Non ci sono canzoni in coda! Aggiungi qualcosa invocando {0}play.", - "cmd-summon-novc": "Non stai partecipando a un canale vocale!", - "cmd-summon-noperms-connect": "Non posso unirmi al canale `{0}`, non ho il permesso di connessione.", - "cmd-summon-noperms-speak": "Non posso unirmi al canale `{0}`, non ho il permesso di parlare .", - "cmd-summon-reply": "Connesso a `{0.name}`", - "cmd-pause-reply": "Musica in pausa in `{0.name}`", - "cmd-pause-none": "Niente in riproduzione.", - "cmd-resume-reply": "Riproduzione ripresa in `{0.name}`", - "cmd-resume-none": "Riproduzione non in pausa.", - "cmd-shuffle-reply": "Coda di `{0}` in riproduzione casuale.", - "cmd-clear-reply": "Coda di `{0}` cancellata", - "cmd-remove-none": "Niente da rimuovere!", - "cmd-remove-reply": "Rimossa `{0}`, era stata aggiunta da `{1}`", - "cmd-remove-missing": "Nella coda dell'utente `%s` non c'è nulla.", - "cmd-remove-noperms": "Non hai i permessi necessari per rimuovere questo elemento dalla coda, assicurati di averla aggiunta tu o di avere i permessi di instant skip.", - "cmd-remove-invalid": "Numero non valido. Usa {}queue per trovare la posizione in coda.", - "cmd-remove-reply-author": "Rimosso l'elemento `{0}`, era stato aggiunto da `{1}`", - "cmd-remove-reply-noauthor": "Rimosso l'elemento `{0}`", - "cmd-skip-none": "Richiesta non valida, non c'è nulla in riproduzione!", - "cmd-skip-dl": "La prossima canzone (`%s`) è in dowload, attendi.", - "cmd-skip-force": "Salto forzatamente `{}`.", - "cmd-skip-force-noperms": "Non hai il permesso di saltare forzatamente.", - "cmd-skip-reply-skipped-1": "La tua richiesta di saltare `{0}` è stata ricevuta.\nIl voto per saltare è passato.{1}", - "cmd-skip-reply-skipped-2": " Prossima traccia in arrivo!", - "cmd-skip-reply-voted-1": "La tua richiesta di saltare `{0}` è stata ricevuta.\n**{1}** {2} per saltare la traccia.", - "cmd-skip-reply-voted-2": "voto mancante", - "cmd-skip-reply-voted-3": "voti mancanti", - "cmd-volume-current": "Volume corrente: `%s%%`", - "cmd-volume-invalid": "`{0}` non è un volume valido", - "cmd-volume-reply": "Volume cambiato da **%d** a **%d**", - "cmd-volume-unreasonable-relative": "Valore di volume non valido: {}{:+} -> {}%. Inserire un valore fra {} e {:+}.", - "cmd-volume-unreasonable-absolute": "Valore di volume non valido: {}%. Inserire un valore compreso fra 1 e 100.", - "cmd-option-autoplaylist-enabled": "L'autoplaylist è già attiva!", - "cmd-option-autoplaylist-disabled": "L'autoplaylist è già disattiva!", - "cmd-option-autoplaylist-none": "Non ci sono elementi nel file di autoplaylist.", - "cmd-option-invalid-value": "Il valore inserito non è valido.", - "cmd-option-invalid-param": "I parametri inseriti non sono validi.", - "cmd-queue-more": "\n... e %s in più", - "cmd-queue-none": "Non ci sono tracce in coda! Aggiungi qualcosa usando {}play.", - "cmd-queue-playing-author": "Ora in riproduzione: `{0}` aggiunta da `{1}` {2}\n", - "cmd-queue-playing-noauthor": "Ora in riproduzione: `{0}` {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}` da `{2}`", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "Parametro non valido. Inserire un numero di messaggi da cercare.", - "cmd-clean-reply": "Cancellati {0} messaggi.", - "playlists-noperms": "Non hai il permesso di richiedere playlist.", - "playlists-big": "La playlist ha troppi elementi ({0} > {1})", - "playlists-limit": "I nuovi elementi più le tracce già presenti hanno raggiunto il limite ({0} + {1} > {2})", - "karaoke-enabled": "La modalità karaoke è abilitata, prova ancora quando viene disattivata!", - "left-no-owner-guilds": "Lascio `{}` poichè il proprietario del bot non si trova qui." -} diff --git a/config/i18n/ja.json b/config/i18n/ja.json deleted file mode 100644 index b736b08ec..000000000 --- a/config/i18n/ja.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "cmd-resetplaylist-response": "オートプレイリストがリセットされました", - "cmd-help-invalid": "コマンドが見つかりません", - "cmd-help-no-perms": "コマンドを実行する権限がありません。 `{}help all` ですべてのコマンドを確認することができます。", - "cmd-help-response": "特定のコマンドのヘルプは `{}help [command]` で確認できます。\n詳細: https://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\nあなたが実行できるコマンドのみを表示しています。 `{}help all` ですべてのコマンドを確認することができます。", - "cmd-blacklist-invalid": "無効なオプション '{0}' が指定されました。 +, -, add, remove を使用してください。", - "cmd-blacklist-added": "{0} ユーザーがブラックリストに追加されました", - "cmd-blacklist-none": "これらのユーザーはブラックリストに追加されていません", - "cmd-blacklist-removed": "{0} ユーザーがブラックリストから除外されました", - "cmd-id-self": "あなたのIDは `{0}` です", - "cmd-id-other": "**{0}** のIDは `{1}` です", - "cmd-save-exists": "既にオートプレイリストに存在しています", - "cmd-save-invalid": "再生できる曲がありません", - "cmd-save-success": "{0} 曲をオートプレイリストに追加しました", - "cmd-joinserver-response": "ここをクリックしてボットをサーバーに招待: \n{}", - "cmd-play-spotify-album-process": "アルバム `{0}` を処理しています", - "cmd-play-spotify-album-queued": "`{0}` から **{1}** 曲をキューに追加しました", - "cmd-play-spotify-playlist-process": "プレイリスト `{0}` を処理しています", - "cmd-play-spotify-playlist-queued": "`{0}` から **{1}** 曲をキューに追加しました", - "cmd-play-spotify-unsupported": "Spotify URIではありません", - "cmd-play-spotify-invalid": "無効なURI、または問題があります", - "cmd-play-spotify-unavailable": "Spotify URIの設定が行われていません。ボットの設定を確認してください。", - "cmd-play-limit": "あなたのキュー数が上限に達しました ({0})", - "cmd-play-noinfo": "この動画は再生できません。 {0}stream をお試しください。", - "cmd-play-nodata": "検索に失敗しました。youtube-dl がデータを送信していません。問題が継続的に発生する場合は、ボットの再起動が必要です。", - "cmd-play-playlist-error": "キューの追加に失敗しました:\n`{0}`", - "cmd-play-playlist-gathering-1": "プレイリストから {0} 曲の情報を取得しています{1}", - "cmd-play-playlist-gathering-2": "、 完了まで: {0} 秒", - "cmd-play-playlist-maxduration": "曲は追加されませんでした。すべての曲が長さの上限を超えています (%ss)", - "cmd-play-playlist-reply": "**%s** 曲をキューに追加しました。キューの位置: %s", - "cmd-play-playlist-invalid": "このプレイリストは再生できません", - "cmd-play-playlist-process": "{0} 曲を処理中...", - "cmd-play-playlist-queueerror": "プレイリスト {0} のキュー追加に失敗しました", - "cmd-play-playlist-skipped": "\nまた、現在の曲は長すぎるためスキップされました", - "cmd-play-playlist-reply-secs": "{0} 曲がキューに追加されました。処理時間: {1}", - "cmd-play-song-limit": "曲の長さが上限を超えています ({0} > {1})", - "cmd-play-song-reply": "`%s` をキューに追加しました。キューの位置: %s", - "cmd-play-next": "次に再生!", - "cmd-play-eta": " - 再生まで: %s", - "cmd-play-badextractor": "このサービスから曲を再生する権限がありません", - "cmd-stream-limit": "あなたのキュー数が上限に達しました ({0})", - "cmd-stream-success": "ストリーム再生中", - "cmd-search-limit": "あなたのプレイリスト項目数の上限に達しました ({0})", - "cmd-search-noquery": "検索クエリを指定してください\n%s", - "cmd-search-noquote": "検索クエリを正しく入力してください", - "cmd-search-searchlimit": "%s 本より多くの動画を検索することはできません", - "cmd-search-searching": "動画を検索しています...", - "cmd-search-none": "動画が見つかりませんでした", - "cmd-search-result": "結果 {0}/{1}: {2}", - "cmd-search-accept": "了解、再生します!", - "cmd-search-decline": "はーい :(", - "cmd-np-action-streaming": "ストリーム再生中", - "cmd-np-action-playing": "再生中", - "cmd-np-reply-author": "{action}: **{title}** - **{author}** が追加\n再生位置: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "{action}: **{title}**\n再生位置: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "キューに曲がありません! {0}play で曲を追加できます。", - "cmd-summon-novc": "ボイスチャンネルに参加していません!", - "cmd-summon-noperms-connect": "ボイスチャンネル `{0}` に参加できません。権限がありません。", - "cmd-summon-noperms-speak": "ボイスチャンネル `{0}` に参加できません。発言の権限がありません。", - "cmd-summon-reply": "`{0.name}` に接続しました", - "cmd-pause-reply": "`{0.name}` で再生が一時停止されました", - "cmd-pause-none": "プレイヤーが再生中ではありません", - "cmd-resume-reply": "`{0.name}` で再生が再開されました", - "cmd-resume-none": "プレイヤーが一時停止中ではありません", - "cmd-shuffle-reply": "`{0}` のキューがシャッフルされました", - "cmd-clear-reply": "`{0}` のキューがクリアされました", - "cmd-remove-none": "削除するものがありません!", - "cmd-remove-reply": "`{1}` が追加した `{0}` を削除しました", - "cmd-remove-missing": "ユーザー `%s` が追加したキューは見つかりませんでした", - "cmd-remove-noperms": "キューからこの項目を削除する権限がありません。あなたが追加した項目である、または強制スキップの権限があることを確認してください。", - "cmd-remove-invalid": "無効な数字です。 {}queue でキューの位置を確認してください。", - "cmd-remove-reply-author": "`{1}` が追加した `{0}` を削除しました", - "cmd-remove-reply-noauthor": "`{0}` を削除しました。", - "cmd-skip-none": "スキップできません!プレイヤーが再生中ではありません!", - "cmd-skip-dl": "次の曲 (`%s`) はダウンロード中です。しばらくお待ちください。", - "cmd-skip-force": "`{}` を強制スキップしました", - "cmd-skip-force-noperms": "強制スキップの権限がありません", - "cmd-skip-reply-skipped-1": "`{0}` のスキップをリクエストしました。\n投票により曲がスキップされました。{1}", - "cmd-skip-reply-skipped-2": " まもなく次の曲が再生されます!", - "cmd-skip-reply-voted-1": "`{0}` のスキップをリクエストしました。\nスキップには残り **{1}** {2}賛成が必要です。", - "cmd-skip-reply-voted-2": "人の", - "cmd-skip-reply-voted-3": "人の", - "cmd-volume-current": "現在の音量: `%s%%`", - "cmd-volume-invalid": "`{0}` は無効な数字です", - "cmd-volume-reply": "音量が **%d** から **%d** に変更されました", - "cmd-volume-unreasonable-relative": "音量の変更ができません: {}{:+} -> {}%。 {} から {:+} の間の値を指定してください。", - "cmd-volume-unreasonable-absolute": "音量の変更ができません: {}%。 1 から 100 の間の値を指定してください。", - "cmd-option-autoplaylist-enabled": "オートプレイリストは既に有効です!", - "cmd-option-autoplaylist-disabled": "オートプレイリストは既に無効です!", - "cmd-option-autoplaylist-none": "オートプレイリストに曲がありません", - "cmd-option-invalid-value": "指定された値は無効です", - "cmd-option-invalid-param": "指定されたパラメータは無効です", - "cmd-queue-more": "\n... 他 %s 曲", - "cmd-queue-none": "キューに曲がありません! {}play で曲を追加できます。", - "cmd-queue-playing-author": "再生中: `{0}` - `{1}` が追加{2}\n", - "cmd-queue-playing-noauthor": "再生中: `{0}` {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}` - `{2}` が追加", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "無効なパラメータです。削除する件数を入力してください。", - "cmd-clean-reply": "{0} 件のメッセージを削除しました{1}", - "playlists-noperms": "プレイリストを追加する権限がありません", - "playlists-big": "プレイリストの曲数が多すぎます ({0} > {1})", - "playlists-limit": "プレイリストの曲数 と あなたが既にキューに追加した曲数の合計が上限を超えています ({0} + {1} > {2})", - "karaoke-enabled": "カラオケモードが有効です。無効にしてからお試しください!" -} \ No newline at end of file diff --git a/config/i18n/kr.json b/config/i18n/kr.json deleted file mode 100644 index 8f220abf7..000000000 --- a/config/i18n/kr.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "cmd-resetplaylist-response": "서버의 자동재생리스트가 리셋되었습니다.", - "cmd-help-invalid": "명령어를 찾을 수 없습니다.", - "cmd-help-no-perms": "당신은 안타깝지만 명령어를 사용할 권한이 없어요.. 그나저나 {}help all 명령어를 통해서 명령어 리스트를 볼 수 있답니다", - "cmd-help-response": "특정 명령어에 대한 정보는, {}help [명령어] 형식으로 사용하세요\n더 많은 도움이 필요하다면, 깃허브를 참고하세요 (: https://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\n보여지는 명령어들만 사용할 수 있습니다. 명령어 목록이 필요하다면, `{}help all` 를 쳐보세요", - "cmd-blacklist-invalid": "잘못된 옵션 '{0}' , +, -, add, 또는 remove를 사용해보세요", - "cmd-blacklist-added": "사용자 {0}가 블랙리스트에 추가되었습니다.", - "cmd-blacklist-none": "블랙리스트에 존재하지 않는 사용자들입니다.", - "cmd-blacklist-removed": "사용자 {0}가 블랙리스트에서 제거되었습니다.", - "cmd-id-self": "당신의 ID는 `{0}`입니다", - "cmd-id-other": "**{0}**의 ID 는 `{1}`입니다", - "cmd-save-exists": "이 노래는 이미 자동재생에 있어요.", - "cmd-save-invalid": "유효하는 노래가 없습니다.", - "cmd-save-success": "<{0}>가 자동재생 리스트에 추가되었습니다.", - "cmd-joinserver-response": "여기를 클릭해 서버에 추가하세요!: \n{}", - "cmd-play-spotify-album-process": "재생중인 앨범 `{0}`", - "cmd-play-spotify-album-queued": "추가됨 `{0}`, **{1}** ", - "cmd-play-spotify-playlist-process": "재생중인 재생목록 `{0}`", - "cmd-play-spotify-playlist-queued": "추가됨 `{0}` , **{1}** ", - "cmd-play-spotify-unsupported": "지원하는 Spotify URL이 아니에요.", - "cmd-play-spotify-invalid": "잘못된 URL이거나, 뭔가 문제가 있는 것 같네요.", - "cmd-play-spotify-unavailable": "봇이 Spotify URL을 지원하도록 설정되지 않았네요. 설정을 확인해보세요.", - "cmd-play-limit": "설정한 최대 곡수에 도달했어요 ({0})", - "cmd-play-noinfo": "그 영상은 플레이될 수 없어요. {0}stream 명령어를 이용해보세요.", - "cmd-play-nodata": "검색에 실패했습니다 .youtube-dl이 데이터를 전송하지 않습니다. 문제가 지속적으로 발생하는 경우에는 봇을 다시 시작해야합니다..", - "cmd-play-playlist-error": "에러로 인해 대기열 추가 실패:\n`{0}`", - "cmd-play-playlist-gathering-1": "재생 목록에서 {0} 곡의 정보를 얻을 수 있습니다 {1}", - "cmd-play-playlist-gathering-2": ", 완료까지 : {0} 초", - "cmd-play-playlist-maxduration": "모든 노래가 길이 제한을 초과했기 때문에 추가되지 않았습니다. (%ss)", - "cmd-play-playlist-reply": "**%s** 가 대기열에 추가됨. 위치: %s", - "cmd-play-playlist-invalid": "재생목록을 재생할 수 없습니다.", - "cmd-play-playlist-process": "{0} 처리중...", - "cmd-play-playlist-queueerror": "재생목록 {0} 대기열 추가 실패.", - "cmd-play-playlist-skipped": "\n또한, 현재 노래는 길이제한을 초과하므로 생략되었음.", - "cmd-play-playlist-reply-secs": "{0} 곡이 대기열에 추가되었습니다. 재생까지 남은 시간 : {1}", - "cmd-play-song-limit": "곡의 길이를 초과합니다 ({0} > {1})", - "cmd-play-song-reply": "`%s` 를 대기열에 추가함. 위치 : %s", - "cmd-play-next": "다음!", - "cmd-play-eta": " - 재생까지 남은 시간 : %s", - "cmd-play-badextractor": "이 서비스에서 음악을 재생할 수있는 권한이 없습니다.", - "cmd-stream-limit": "설정한 최대 곡수에 도달했어요 ({0})", - "cmd-stream-success": "스트리밍중.", - "cmd-search-limit": "설정한 재생항목의 항목 수 제한을 초과했어요 ({0})", - "cmd-search-noquery": "검색어를 지정해주세요.\n%s", - "cmd-search-noquote": "더 정확하게 검색어를 지정해주세요.", - "cmd-search-searchlimit": " %s 보다 더 많은 영상을 검색할수는 없습니다", - "cmd-search-searching": "영상 검색중...", - "cmd-search-none": "검색결과 없음.", - "cmd-search-result": "결과 {0}/{1}: {2}", - "cmd-search-accept": "좋아, 가즈아ㅏㅏ!", - "cmd-search-decline": "헐, 이런 :(", - "cmd-np-action-streaming": "스트리밍 중", - "cmd-np-action-playing": "재생 중", - "cmd-np-reply-author": "{action}: **{title}** - **{author}**이 추가\n진행 상황: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "{action}: **{title}**\n진행 상황: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "큐에 곡이없잖아! 재생할 노래를 줘 {0}play.", - "cmd-summon-novc": "먼저 음성 채널에 들어가!", - "cmd-summon-noperms-connect": "`{0}`에 참여할 수가 없어요... `{0}`, 권한이 없네요", - "cmd-summon-noperms-speak": "`{0}`에 참여할 수가 없어요..., 나에게 발언권을 주세요...", - "cmd-summon-reply": "`{0.name}`로 간드아ㅏㅏㅏ", - "cmd-pause-reply": "`{0.name}`에서 틀던노래 멈췄어요", - "cmd-pause-none": "플레이어가 재생중이 아니에요.", - "cmd-resume-reply": "다시 재생! `{0.name}`", - "cmd-resume-none": "플레이어가 정지되지않았어요.", - "cmd-shuffle-reply": "대기열 `{0}` 쉐낏쉐낏", - "cmd-clear-reply": "대기열 `{0}`을 다 갖다버렸어요", - "cmd-remove-none": "지울게 없는데요?", - "cmd-remove-reply": "`{1}`가 추가한 `{0}`을 삭제했어요", - "cmd-remove-missing": "`%s`가 추가한게 대기열에 없는 것 같네요", - "cmd-remove-noperms": "당신은 대기열에 있는 항목을 삭제할 수 있는 권한이 없어요, 당신이 추가 한 항목이거나 강제 스킵 권한이 있는지 확인해주세요", - "cmd-remove-invalid": "잘못된 숫자에요. {}queue 를 사용해서 대기열 번호를 확인해주세요.", - "cmd-remove-reply-author": "`{1}`가 추가 한`{0}`을 삭제했습니다", - "cmd-remove-reply-noauthor": "`{0}` 삭제했어요", - "cmd-skip-none": "재생중이 아니라 스킵할 수 없어요!", - "cmd-skip-dl": "다음 노래 (`%s`) 가 다운로드 중이에요 기다려 주세요 (:.", - "cmd-skip-force": "강제로 건너뛰었습니다 `{}`.", - "cmd-skip-force-noperms": "강제 스킵 권한이 없습니다.", - "cmd-skip-reply-skipped-1": "당신의 `{0}` 건너뛰기가 성공적이었어요.\n투표가 통과되어 노래가 스킵되었습니다.{1}", - "cmd-skip-reply-skipped-2": " 다음 노래 가즈아ㅏ!", - "cmd-skip-reply-voted-1": "당신의 `{0}` 건너뛰기 요청은 성공적이었어요.\n이제는 **{1}** {2} 표가 필요해요.", - "cmd-skip-reply-voted-2": "사람의", - "cmd-skip-reply-voted-3": "사람들의", - "cmd-volume-current": "현재 볼륨: `%s%%`", - "cmd-volume-invalid": "`{0}` 유효한 숫자가 아니네요 :(", - "cmd-volume-reply": "볼륨 설정이 변경되었습니다 **%d** 에서 **%d** 으로.", - "cmd-volume-unreasonable-relative": "볼륨 설정을 변경할 수 없습니다: {}{:+} -> {}%. {} 에서 {:+} 사이의 값으로 조절해주세요.", - "cmd-volume-unreasonable-absolute": "볼륨 설정을 변경할 수 없습니다: {}%. 1에서 100까지의 값으로 조절해주세요.", - "cmd-option-autoplaylist-enabled": "자동재생목록은 이미 쌩쌩합니다!", - "cmd-option-autoplaylist-disabled": "자동재생목록은 이미 죽었어요..", - "cmd-option-autoplaylist-none": "자동재생목록에 아무것도 없네요..", - "cmd-option-invalid-value": "지정된 값이 잘못되었어요.", - "cmd-option-invalid-param": "잘못된 파라미터에요.", - "cmd-queue-more": "\n... 다른 %s 곡", - "cmd-queue-none": "대기열에 노래가 없어요! {}play로 추가해주세요.", - "cmd-queue-playing-author": "재생 중: `{0}` - `{1}` 이 추가 {2}\n", - "cmd-queue-playing-noauthor": "재생 중: `{0}` {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}`, `{2}`가 추가", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "잘못된 파라미터 입니다. 메시지의 개수를 입력하세요.", - "cmd-clean-reply": "삭제됨 {0}개의 메시지{1}.", - "playlists-noperms": "재생목록을 추가할 권한이 없음", - "playlists-big": "재생목록에 항목이 너무 많아요 ({0} > {1})", - "playlists-limit": "재생 목록의 곡 수와 당신이 이미 큐에 추가 한 곡수의 합계가 상한을 초과합니다 ({0} + {1} > {2})", - "karaoke-enabled": "노래방 모드가 활성화되어있어요. 해제하고 시도해주세요" -} \ No newline at end of file diff --git a/config/i18n/pl.json b/config/i18n/pl.json deleted file mode 100644 index ef1373757..000000000 --- a/config/i18n/pl.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "cmd-resetplaylist-response": "Serwerowa autoplalista została zresetowana.", - "cmd-help-invalid": "Nie ma takiej komendy", - "cmd-help-no-perms": "Nie masz uprawnień do używania tej komendy. Uruchom `{}help all` by pokazać listę komend.", - "cmd-help-response": "Po informacje o konkretnej komendzie uruchom`{}help [command]`\nPo dalszą pomoc odwiedź: https://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\nPokazuję tylko komendy, których możesz użyć, po listę wszystkich komend użyj `{}help all`", - "cmd-blacklist-invalid": "Określona opcja '{0}' jest niewłaściwa, użyj +, -, add, or remove", - "cmd-blacklist-added": "{0} użytkowników zostało dodanych do czarnej listy", - "cmd-blacklist-none": "Żaden z tych użytkowników nie jest na czarnej liście.", - "cmd-blacklist-removed": "{0} użytkowników zostało usuniętych z czarnej listy.", - "cmd-id-self": "Twoje ID to `{0}`", - "cmd-id-other": "**{0}** ID to `{1}`", - "cmd-save-exists": "Ten utwór jest już na liście automatycznego odtwarzania.", - "cmd-save-invalid": "Nie odtwarzany jest żaden właściwy utwór.", - "cmd-save-success": "Dodano <{0}> to the listy automatycznego odtwarzania.", - "cmd-joinserver-response": "Klinij tutaj by dodać mnie do serwera: \n{}", - "cmd-play-spotify-album-process": "Przetwarzanie albumu `{0}` (`{1}`)", - "cmd-play-spotify-album-queued": "Zakolejkowano `{0}` z **{1}** uworami.", - "cmd-play-spotify-playlist-process": "Przetwarzanie listy odtwarzania `{0}` (`{1}`)", - "cmd-play-spotify-playlist-queued": "Zakolejkowano `{0}` z **{1}** utworami.", - "cmd-play-spotify-unsupported": "To Spotify URI nie jest wspierane.", - "cmd-play-spotify-invalid": "Albo podano nieprawidłowy URI, albo wystapił tutaj problem.", - "cmd-play-spotify-unavailable": "Bot nie jest dostosowany do wsparcia Spotify URI. Sprawdź swoje ustawienia.", - "cmd-play-limit": "Osiągnięto limit zakolejkowanych utowrów ({0})", - "cmd-play-noinfo": "Ten film nie może zostać odtworzony. Spróbuj użyć komendy: {0}.", - "cmd-play-nodata": "Błąd wyciągania informacji z wyszukiwanej frazy, youtubedl nie zwróciło żadnych danych. Możesz spróbować ponownie uruchomić bota jeżeli sytuacja będzie się powtarzać.", - "cmd-play-playlist-error": "Błąd kolejkowania listy utworów:\n`{0}`", - "cmd-play-playlist-gathering-1": "Zbieranie informacji o liście odtwarzania dla {0} utworów{1}", - "cmd-play-playlist-gathering-2": ", przewidywany czas do otworzenia: {0} seconds", - "cmd-play-playlist-maxduration": "Nie dodano żadnych utworów, wszystkie utwoty były dłuższe niż największy możliwy czas trwania (%ss)", - "cmd-play-playlist-reply": "Zakolejkowano **%s** uworów do odtworzenia. Pozycja w kolejce: %s", - "cmd-play-playlist-invalid": "Ta lista odtwarzania nie może zostać odtworzona.", - "cmd-play-playlist-process": "Przetwarzanie {0} utworów...", - "cmd-play-playlist-queueerror": "Błąd obsługi kolejkowania listy odtwarzania {0}.", - "cmd-play-playlist-skipped": "\nDodatkowo, obecny utwór został pominięty za bycie zbyt długim.", - "cmd-play-playlist-reply-secs": "Zakolejkowano {0} uworów do odtworzenia za {1} sekund", - "cmd-play-song-limit": "Czas trwania utworu przekracza limit ({0} > {1})", - "cmd-play-song-reply": "Zakolejkowano `%s` do otworzenia. Pozycja w kolejce: %s", - "cmd-play-next": "Następny!", - "cmd-play-eta": " - przewidywany czas do odtworzenia: %s", - "cmd-play-badextractor": "Nie masz uprawnień do odwarzania zawarości z tej usługi.", - "cmd-stream-limit": "Osiągnięto limit zakolejkowanych utworów ({0})", - "cmd-stream-success": "Stumieniowanie.", - "cmd-search-limit": "Osiągnięto limit Twoich pozycji w liście odtwarzania ({0})", - "cmd-search-noquery": "Proszę sprecyzować pytanie wyszukiwania.\n%s", - "cmd-search-noquote": "Proszę podać Twoje pytanie wyszukiwania poprawnie.", - "cmd-search-searchlimit": "Nie możesz wyszukiwać po więcej niż %s fimów", - "cmd-search-searching": "Wyszukiwanie filmów...", - "cmd-search-none": "Nie znaleziono filmów.", - "cmd-search-result": "Wynik {0}/{1}: {2}", - "cmd-search-accept": "W porządku, zaraz będzie!", - "cmd-search-decline": "No cóż :(", - "cmd-np-action-streaming": "strumieniuję", - "cmd-np-action-playing": "odtwarzam", - "cmd-np-reply-author": "Teraz {action}: **{title}** dodane przez **{author}**\nPostęp: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "Teraz {action}: **{title}**\nPostęp: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "Nie ma utworów w kolejce! Dodaj coś używając: {0}play.", - "cmd-summon-novc": "Nie jesteś na kanale głosowym!", - "cmd-summon-noperms-connect": "Nie można dołączyć do kanału `{0}`, brak uprawnień do połączenia.", - "cmd-summon-noperms-speak": "Nie można dołączyć do kanału `{0}`, brak uprawnień do mówienia.", - "cmd-summon-reply": "Połączono do `{0.name}`", - "cmd-pause-reply": "Zatrzymano muzykę w `{0.name}`", - "cmd-pause-none": "Otwarzacz nie odtwarza.", - "cmd-resume-reply": "Wznowiono muzykę w `{0.name}`", - "cmd-resume-none": "Otwarzacz nie jest zatrzymany.", - "cmd-shuffle-reply": "Wymieszano kolejkę `{0}`.", - "cmd-clear-reply": "Wyczyszczono kolejkę `{0}`.", - "cmd-remove-none": "Nie ma co usuwać!", - "cmd-remove-reply": "Usunięto `{0}`, dodane przez `{1}`", - "cmd-remove-missing": "Nie znaleziono nic w kolece od użytkownika `%s`", - "cmd-remove-noperms": "Nie masz odpowniednich uprawnień do usunięcia tej pozycji w kolejce, upewnij się, że sam(a) to dodałeś/dodałaś albo masz uprawnienia do natychmiastowego pomijania.", - "cmd-remove-invalid": "Nieprawdłowa liczba. Użyj {}queue by odnaleść pozycję w kolejce.", - "cmd-remove-reply-author": "Usunięto pozycję `{0}` dodaną przez `{1}`", - "cmd-remove-reply-noauthor": "Usunięto pozycję `{0}`", - "cmd-skip-none": "Nie można pominąć! Odwarzacz nie odtwarza!", - "cmd-skip-dl": "Następny utwór (`%s`) pobiera się, proszę zaczekać.", - "cmd-skip-force": "Wymuszono pominięcie `{}`.", - "cmd-skip-force-noperms": " Nie masz uprawnień do wymuszenia pominięcia.", - "cmd-skip-reply-skipped-1": "Twoje pominięcie dla `{0}` zostało potwierdzone.\nGłosowanie za pominięciem zostało przegłosowane.{1}", - "cmd-skip-reply-skipped-2": " Następny utwór nadchodzi!", - "cmd-skip-reply-voted-1": "Twoje pominięcie dla `{0}` zostało potwierdzone.\n**{1}** więcej {2} do przegłosowania pominięcia.", - "cmd-skip-reply-voted-2": "osobą jest", - "cmd-skip-reply-voted-3": "osobami są", - "cmd-volume-current": "Aktualna głośność: `%s%%`", - "cmd-volume-invalid": "`{0}` nie jest prawidłową liczbą", - "cmd-volume-reply": "Zmieniono głośność z **%d** do **%d**", - "cmd-volume-unreasonable-relative": "Podano nieracjonalną zmianę głośności: {}{:+} -> {}%. Podaj wartość pomiędzy {} a {:+}.", - "cmd-volume-unreasonable-absolute": "Podano nieracjonalną głośność: {}%. Podaj wartość między 1 a 100.", - "cmd-option-autoplaylist-enabled": "Automatyczna lista odtwarzania jest już właczona!", - "cmd-option-autoplaylist-disabled": "Automatyczna lista odtwarzania jest już wyłączona!", - "cmd-option-autoplaylist-none": "Nie ma żadnych pozycji w pliku automatycznej listy odtwarzania.", - "cmd-option-invalid-value": "Podana wartość jest nieprawidłowa.", - "cmd-option-invalid-param": "Podane parametry są nieprawidłowe.", - "cmd-queue-more": "\n... i %s więcej", - "cmd-queue-none": "Nie ma zakolejkowanych utworów! Dodaj coś przy użyciu {}play.", - "cmd-queue-playing-author": "Aktualnie odtwarzane: `{0}`, dodane przez `{1}` {2}\n", - "cmd-queue-playing-noauthor": "Aktualnie odtwarzane: `{0}` {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}` przez `{2}`", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "Nieprawidłowy parametr. Proszę podać ilość wiadomości do wyszukania.", - "cmd-clean-reply": "Wyczyszczono {0} wiadomości{1}.", - "playlists-noperms": "Nie masz uprawnień do podania listy odtwarzania", - "playlists-big": "Lista odtwarzania ma za dużo pozycji ({0} > {1})", - "playlists-limit": "Pozycje w liście odtwarzania + zakolejkowane przez Ciebie uwory osiągnęły limit ({0} + {1} > {2})", - "karaoke-enabled": "Tryb karaoke jest włączony, proszę spróbować ponownie, gdy będzie wyłączony!", - "left-no-owner-guilds": "Opuszczono `{}`, ponieważ właściciel bota nie został tam odnaleziony.", - "on_player_play-onChannel_authorNotInChannel_skipWhenAbsent":"Pomijanie następnego utworu {channel}: {title} dodanego przez {author}, gdyż dodającego/dodającej nie ma na kanale!", - "on_player_play-onChannel_playingMention":"{author} - Twój utwór {title} jest teraz odtwarzany w {channel}!", - "on_player_play-onChannel":"Teraz odtwarzane w {channel}: {title} dodane przez {author}!", - "on_player_play-onChannel_noAuthor_autoplaylist": "Teraz odtwarzane automatycznie dodaną pozycję {title} w {channel}!" -} \ No newline at end of file diff --git a/config/i18n/ru.json b/config/i18n/ru.json deleted file mode 100755 index 466609300..000000000 --- a/config/i18n/ru.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "cmd-resetplaylist-response": "Автоплейлист сервера был сброшен.", - "cmd-help-invalid": "Такой команды не существует", - "cmd-help-no-perms": "У вас нет разрешение на использование каких-либо команд. Используйте `{}help all` для того чтобы все-равно получить список всех команд", - "cmd-help-response": "Для получения информации об определенной команде, используйте `{}help [команда]`", - "cmd-help-all": "\nТолько эти команды вы можете использовать, для получения списка всех команд используйте `{}help all`", - "cmd-blacklist-invalid": "Укащан неверный аргумент '{0}', используйте +, -, add или remove", - "cmd-blacklist-added": "{0} пользователей было добавлено в черный список", - "cmd-blacklist-none": "Никто из этих пользователей не находится в черном списке.", - "cmd-blacklist-removed": "{0} пользователей были удалены из черного списка", - "cmd-id-self": "Твой ID - `{0}`", - "cmd-id-other": "ID **{0}** - `{1}`", - "cmd-save-exists": "Эта песня уже есть в автоплейлисте.", - "cmd-save-invalid": "Этот трек недействителен.", - "cmd-save-success": "Добавлено <{0}> в автоплейлист.", - "cmd-joinserver-response": "Нажмите здесь чтобы пригласить меня на свой сервер: \n{}", - "cmd-play-spotify-album-process": "Воспроизводится альбом - `{0}` (`{1}`)", - "cmd-play-spotify-album-queued": "Поставлено в очередь `{0}` с **{1}** песнями.", - "cmd-play-spotify-playlist-process": "Воспроизведение плейлиста `{0}` (`{1}`)", - "cmd-play-spotify-playlist-queued": "Поставлено в очередь `{0}` с **{1}** песнями.", - "cmd-play-spotify-unsupported": "Это не URL от Spotify.", - "cmd-play-spotify-invalid": "Вы указали неверный URL, или же произошла ошибка.", - "cmd-play-spotify-unavailable": "Бот не настроен для воспроизведения музыки со Spotify. Проверьте свои настройки.", - "cmd-play-limit": "Вы достигли лимита на песни, поставленные в очередь ({0})", - "cmd-play-noinfo": "Это видео не может быть воспроизведено. Попробуйте использовать команду {0}stream", - "cmd-play-nodata": "Произошла ошибка при получении информации по данному запросу, youtubedl не дал ответа. Вам нужно будет перезапустить бота, если это повторится снова.", - "cmd-play-playlist-error": "Ошибка при добавлении плейлиста в очередь воспроизведения:\n`{0}`", - "cmd-play-playlist-gathering-1": "Получение информации о плейлисте с {0} песнями{1}", - "cmd-play-playlist-gathering-2": ", ETA: {0} секунд", - "cmd-play-playlist-maxduration": "Треки не были добавлены в очередь, поскольку все треки идут дольше допустимого лимита (%ss)", - "cmd-play-playlist-reply": "**%s** треков добавлено в очередь воспроизведения. Позиция трека в очереди: %s", - "cmd-play-playlist-invalid": "Этот плейлист не может быть воспроизведен.", - "cmd-play-playlist-process": "Воспроизведение {0} песен...", - "cmd-play-playlist-queueerror": "Ошибка при обработке и добавлении в очередь плейлиста {0}", - "cmd-play-playlist-skipped": "\nТакже, текущий трек был пропущен из-за превышения лимита на продолжительность.", - "cmd-play-playlist-reply-secs": "В очередь было добавлено {0} песен для воспроизведения через {1} секунд.", - "cmd-play-song-limit": "Длительность трека превышает лимит ({0} > {1})", - "cmd-play-song-reply": "`%s` было добавлено в очередь воспроизведения. Позиция в очереди: %s", - "cmd-play-next": "Следующая!", - "cmd-play-eta": " - примерное время до воспроизведения: %s", - "cmd-play-badextractor": "У вас нет разрешений для воспроизведения медиа с этого сервиса.", - "cmd-stream-limit": "Вы достигли лимита на песни, поставленные в очередь ({0})", - "cmd-stream-success": "Трансляция.", - "cmd-search-limit": "Вы достигли лимита треков в вашем плейлисте ({0})", - "cmd-search-noquery": "Пожалуйста, укажите ваш поисковой запрос.\n%s", - "cmd-search-noquote": "Пожалуйста, правильно укажите ваш поисковый запрос.", - "cmd-search-searchlimit": "Нельзя искать более %s видео.", - "cmd-search-searching": "Поиск видео...", - "cmd-search-none": "Видео не были найдены.", - "cmd-search-result": "Результат {0}/{1}: {2}", - "cmd-search-accept": "Ладно, сейчас!", - "cmd-search-decline": "Оу :(", - "cmd-np-action-streaming": "Трансляция", - "cmd-np-action-playing": "Воспроизведение", - "cmd-np-reply-author": "Сейчас {action}: **{title}** добавленное **{author}**\nПрогресс: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "Сейчас {action}: **{title}**\nПрогресс: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "В очереди нет песен! Добавьте что-нибудь с помощью {0}play", - "cmd-summon-novc": "Вы не в голосовом канале!", - "cmd-summon-noperms-connect": "Невозможно присоеденится к каналу `{0}`, отсутствует разрешение на подключение.", - "cmd-summon-noperms-speak": "Невозможно присоеденится к каналу `{0}`, нет разрешения на воспроизведение.", - "cmd-summon-reply": "Подключен к `{0.name}`", - "cmd-pause-reply": "Музыка в `{0.name}` была поставлена на паузу", - "cmd-pause-none": "Ничего не воспроизводится.", - "cmd-resume-reply": "Музыка в `{0.name}` продолжила свое воспроизведение", - "cmd-resume-none": "Плеер не на паузе.", - "cmd-shuffle-reply": "Очередь пользователя `{0}` была перемешана.", - "cmd-clear-reply": "Очередь пользователя `{0}` была очищена", - "cmd-remove-none": "Нечего удалять!", - "cmd-remove-reply": "Удален трек `{0}`, добавленный пользователем `{1}`", - "cmd-remove-missing": "В очереди `%s` ничего не найдено", - "cmd-remove-noperms": "У вас нет разрешений для того чтобы убрать этот трек из очереди, убедитесь что вы - тот, кто добавил этот трек в очереди или же вы можете убирать треки других", - "cmd-remove-invalid": "Неверный номер трека. Используйте {}queue для того чтобы получить номера треков в очереди.", - "cmd-remove-reply-author": "Убран трек `{0}`, добавленный `{1}`", - "cmd-remove-reply-noauthor": "Убран трек `{0}`", - "cmd-skip-none": "Невозможно пропустить! Плеер в данный момент не играет!", - "cmd-skip-dl": "Следующий трек (`%s`) загружается, пожалуйста подождите.", - "cmd-skip-force": "Пропущен `{}`.", - "cmd-skip-force-noperms": "У вас нет разрешения на быстрый пропуск.", - "cmd-skip-reply-skipped-1": "Ваша заявка на пропуск трека `{0}` была подтверждена.\nГолосование прошло успешно.{1}", - "cmd-skip-reply-skipped-2": " Следующая песня начинается!", - "cmd-skip-reply-voted-1": "Ваша заявка на пропуск трека `{0}` была подтверждена.\n**{1}** больше {2} нужно для пропуска трека.", - "cmd-skip-reply-voted-2": "пользователь", - "cmd-skip-reply-voted-3": "пользователи", - "cmd-volume-current": "Текущая громкость: `%s%%`", - "cmd-volume-invalid": "`{0}` неверный номер", - "cmd-volume-reply": "Изменена громкость - с **%d** до **%d**", - "cmd-volume-unreasonable-relative": "Невозможно изменить громкость: {}{:+} -> {}%. Укажите значение между {} и {:+}.", - "cmd-volume-unreasonable-absolute": "Невозможно изменить громкость: {}%. Укажите значение между 1 и 100.", - "cmd-option-autoplaylist-enabled": "Автоплейлист уже включен!", - "cmd-option-autoplaylist-disabled": "Автоплейлист уже выключен!", - "cmd-option-autoplaylist-none": "В файле autoplaylist отсутствуют треки.", - "cmd-option-invalid-value": "Предоставленное значение неверно.", - "cmd-option-invalid-param": "Предоставленные параметры неверны.", - "cmd-queue-more": "\n... и еще %s", - "cmd-queue-none": "В очереди нет песен! Добавьте что-нибудь с помощью {0}play", - "cmd-queue-playing-author": "Сейчас играет: `{0}` добавленное `{1}` {2}\n", - "cmd-queue-playing-noauthor": "Сейчас играет: `{0}` {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}` от `{2}`", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "Неверный параметр. Пожалуйста, укажите количество сообщений для поиска.", - "cmd-clean-reply": "Очищено {0} сообщений.", - "playlists-noperms": "Вы не можете запрашивать воспроизведение плейлистов", - "playlists-big": "В плейлисте слишком много треков ({0} > {1})", - "playlists-limit": "Треки из плейлиста + треки из вашей очереди достигли максимально доступного лимита ({0} + {1} > {2})", - "karaoke-enabled": "Режим караоке включен, попробуйте сделать это еще раз, когда он будет выключен!", - "left-no-owner-guilds": "Осталось `{}` из-за того что владелец бота не был найден." -} \ No newline at end of file diff --git a/config/i18n/sv.json b/config/i18n/sv.json deleted file mode 100644 index 27cb405ec..000000000 --- a/config/i18n/sv.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "cmd-resetplaylist-response": "Serverns auto spellista har återställts.", - "cmd-help-invalid": "Okänt kommando", - "cmd-help-no-perms": "Du har inte rättigheter att använda några kommandon. Skriv `{}help all` för att visa alla kommandon ändå", - "cmd-help-response": "För information om ett specifikt kommando, skriv `{}help [kommando]`\nFör ytterligare hjälp, gå till https://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\nVisar endast kommandon tillgängliga för dig, för att se en lista med alla kommandon, skriv `{}help all`", - "cmd-blacklist-invalid": "Ogiltigt val '{0}' angett, använd +, -, add, eller remove", - "cmd-blacklist-added": "{0} användare har lagts till i svartlistan", - "cmd-blacklist-none": "Ingen av de användare finns med i svartlistan.", - "cmd-blacklist-removed": "{0} användare har tagits bort från svartlistan", - "cmd-id-self": "Ditt ID är `{0}`", - "cmd-id-other": "**{0}**s ID är `{1}`", - "cmd-save-exists": "Den här låten finns redan med i auto spellistan.", - "cmd-save-invalid": "Det finns ingen giltig låtspelning.", - "cmd-save-success": "Lade till <{0}> i auto spellistan.", - "cmd-joinserver-response": "Tryck här för att lägga till mig till en server: \n{}", - "cmd-play-spotify-album-process": "Bearbetar album `{0}` (`{1}`)", - "cmd-play-spotify-album-queued": "Köade `{0}` med **{1}** låtar.", - "cmd-play-spotify-playlist-process": "Bearbetar spellista `{0}` (`{1}`)", - "cmd-play-spotify-playlist-queued": "Köade `{0}` med **{1}** låtar.", - "cmd-play-spotify-unsupported": "Den Spotify länken stöds ej.", - "cmd-play-spotify-invalid": "Du angav antingen en ogiltig länk, eller så är det ett annat problem.", - "cmd-play-spotify-unavailable": "Botten är inte konfigurerad för att stödja Spotify länkar. Kontrollera konfigurationen.", - "cmd-play-limit": "Du har nått din gräns för köade låtar ({0})", - "cmd-play-noinfo": "Videon kan inte spelas. Testa att använda {0}stream kommandot.", - "cmd-play-nodata": "Fel med att extrahera information från söksträngen, youtubedl returnerade ingen data. Du kan behöva starta om botten om detta fortsätter.", - "cmd-play-playlist-error": "Fel vid köandet utav spellista:\n`{0}`", - "cmd-play-playlist-gathering-1": "Samlar spelliste information för {0} låtar{1}", - "cmd-play-playlist-gathering-2": ", ETA: {0} sekunder", - "cmd-play-playlist-maxduration": "Inga låtar lades till, alla låtar var längre än den största tillåtna låt längden (%ss)", - "cmd-play-playlist-reply": "Köade **%s** låtar för att spelas. Position i kö: %s", - "cmd-play-playlist-invalid": "Den spellistan kan inte spelas upp.", - "cmd-play-playlist-process": "Bearbetar {0} låtar...", - "cmd-play-playlist-queueerror": "Fel vid spellista {0} köande.", - "cmd-play-playlist-skipped": "\nDessutom skippades den aktuella låten för att den var för lång.", - "cmd-play-playlist-reply-secs": "Köade {0} låtar att bli spelade inom {1} sekunder", - "cmd-play-song-limit": "Låtens längd överskrider gränsvärdet ({0} > {1})", - "cmd-play-song-reply": "Köade `%s` att spelas upp. Position i kö: %s", - "cmd-play-next": "Härnäst!", - "cmd-play-eta": " - beräknad tid fram till spelning: %s", - "cmd-play-badextractor": "Du har inte behörighet att spela media från den här tjänsten.", - "cmd-stream-limit": "Du har nått din gräns för tillåtna köade låtar ({0})", - "cmd-stream-success": "Strömmar.", - "cmd-search-limit": "Du har nått din tillåtna gräns för spelliste objekt ({0})", - "cmd-search-noquery": "Var god ange en söksträng.\n%s", - "cmd-search-noquote": "Var god ange din sökfråga på rätt sätt.", - "cmd-search-searchlimit": "Du kan inte söka efter fler än %s videoklipp", - "cmd-search-searching": "Söker efter videoklipp...", - "cmd-search-none": "Inga videoklipp funna.", - "cmd-search-result": "Resultat {0}/{1}: {2}", - "cmd-search-accept": "Okej, kommer härnäst!", - "cmd-search-decline": "Åh! :(", - "cmd-np-action-streaming": "Strömmar", - "cmd-np-action-playing": "Spelas", - "cmd-np-reply-author": "Nu {action}: **{title}** lades till av **{author}**\nDuration: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "Nu {action}: **{title}**\nDuration: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "Det finns inga låtar köade! Köa något med {0}play.", - "cmd-summon-novc": "Du är inte i en röstkanal!", - "cmd-summon-noperms-connect": "Kan ej ansluta till röstkanal `{0}`, ingen behörighet att ansluta.", - "cmd-summon-noperms-speak": "Kan ej ansluta till röstkanal `{0}`, ingen behörighet att tala.", - "cmd-summon-reply": "Ansluten till `{0.name}`", - "cmd-pause-reply": "Pausad musik i `{0.name}`", - "cmd-pause-none": "Spelaren spelar inte.", - "cmd-resume-reply": "Återupptog musik i `{0.name}`", - "cmd-resume-none": "Spelaren är ej pausad.", - "cmd-shuffle-reply": "Blandade `{0}`'s kö.", - "cmd-clear-reply": "Rensade `{0}`'s kö", - "cmd-remove-none": "Det finns inget att radera!", - "cmd-remove-reply": "Raderade `{0}` som lades till av `{1}`", - "cmd-remove-missing": "Inget funnet i kö från användaren `%s`", - "cmd-remove-noperms": "Du har inte behörigheter till att ta bort det numret från kön, se till att du är den som köade den eller har tillåtelse att tvångs skippa låtar", - "cmd-remove-invalid": "Ogiltigt nummer. Använd {}queue för att hitta alla kö positioner.", - "cmd-remove-reply-author": "Raderade nummer `{0}` som lades till av `{1}`", - "cmd-remove-reply-noauthor": "Raderade nummer `{0}`", - "cmd-skip-none": "Kan inte hoppa över! Spelaren spelar inte!", - "cmd-skip-dl": "Nästa låt (`%s`) laddas ned, var god vänta.", - "cmd-skip-force": "Tvångs skippade `{}`.", - "cmd-skip-force-noperms": "Du har ej behörighet att tvångs skippa.", - "cmd-skip-reply-skipped-1": "Din röst för att skippa `{0}` har noterats.\nRöstningen om att skippa är genomförd.{1}", - "cmd-skip-reply-skipped-2": " Nästa låt kommer!", - "cmd-skip-reply-voted-1": "Din röst för att skippa `{0}` har noterats.\n**{1}** fler {2} krävs för att skippa denna låt.", - "cmd-skip-reply-voted-2": "person är", - "cmd-skip-reply-voted-3": "personer är", - "cmd-volume-current": "Nuvarande volym: `%s%%`", - "cmd-volume-invalid": "`{0}` är ej ett giltigt nummer", - "cmd-volume-reply": "Ändrade volym från **%d** till **%d**", - "cmd-volume-unreasonable-relative": "Orimlig volymnivå: {}{:+} -> {}%. Ange ett värde mellan {} och {:+}.", - "cmd-volume-unreasonable-absolute": "Orimlig volymnivå: {}%. Ange ett värde mellan 1 och 100.", - "cmd-option-autoplaylist-enabled": "Auto spellistan är redan aktiverad!", - "cmd-option-autoplaylist-disabled": "Auto spellistan är redan inaktiverad!", - "cmd-option-autoplaylist-none": "Det finns inget inuti auto spellistan.", - "cmd-option-invalid-value": "Angett värde är ej giltigt.", - "cmd-option-invalid-param": "Angivna parametrar är ogiltiga.", - "cmd-queue-more": "\n... och %s fler", - "cmd-queue-none": "Det är inga låtar köade! Köa något med {}play.", - "cmd-queue-playing-author": "Just nu spelas: `{0}` som lades till av `{1}` {2}\n", - "cmd-queue-playing-noauthor": "Just nu spelas: `{0}` {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}` av `{2}`", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "Ogiltig parameter. Var god ange ett nummer av meddelanden att rensa.", - "cmd-clean-reply": "Rensade upp {0} meddelanden{1}.", - "playlists-noperms": "Du får inte begära spellistor", - "playlists-big": "Spellista har för många låtar ({0} > {1})", - "playlists-limit": "Spellistans låtar + dina redan köade låtar når gränsen ({0} + {1} > {2})", - "karaoke-enabled": "Karaoke läge aktiverat, var god försök igen när det är inaktiverat!", - "left-no-owner-guilds": "Lämnade `{}` på grund utav att ingen botägare hittades i den." -} diff --git a/config/i18n/th.json b/config/i18n/th.json deleted file mode 100644 index c6b66ac7d..000000000 --- a/config/i18n/th.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "cmd-resetplaylist-response": "เพลย์ลิสต์อัตโนมัติของเซิร์ฟเวอร์นี้ได้ถูกรีเซ็ต", - "cmd-help-invalid": "ไม่มีคำสั่งนี้", - "cmd-help-no-perms": "คุณไม่มีสิทธิ์ในการใช้คำสั่งใดๆเลย แต่การพิมพ์ `{}help all` จะแสดงทุกคำสั่งอยู่ดี", - "cmd-help-response": "สำหรับข้อมูลคำสั่งบางคำสั่ง พิมพ์ `{}help [คำสั่ง]`\nสำหรับข้อสงสัยอืนๆ ลองดูใน https://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\nกำลังแสดงเฉพาะคำสั่งที่คุณใช้ได้ หากต้องการแสดงทุกคำสั่ง พิมพ์ `{}help all`", - "cmd-blacklist-invalid": "ตัวเลือก '{0}' ไม่สามารถใช้ได้ กรุณาใช้ +, -, add, หรือ remove", - "cmd-blacklist-added": "{0} ผู้ใช้ถูกเพิ่มเข้าสู่บัญชีดำ", - "cmd-blacklist-none": "ไม่มีผู้ใช้ใดเลยซึ่งอยู่ในบัญชีดำ", - "cmd-blacklist-removed": "{0} ผู้ใช้ถูกลบออกจากบัญชีดำ", - "cmd-id-self": "ไอดีคุณคือ `{0}`", - "cmd-id-other": "ไอดีของ **{0}** คือ `{1}`", - "cmd-save-exists": "เพลงนี้อยู่ในเพลย์ลิสต์อัตโนมัติแล้ว", - "cmd-save-invalid": "ไม่มีเพลงที่เล่นได้เล่นอยู่", - "cmd-save-success": "เพิ่ม <{0}> เข้าสู่เพลย์ลิสต์อัตโนมัติแล้ว", - "cmd-joinserver-response": "คลิกที่นี่เพื่อเพิ่มเราเข้าสู่เซิร์ฟเวอร์: \n{}", - "cmd-play-spotify-album-process": "ประมวลผลอัลบั้ม `{0}` (`{1}`)", - "cmd-play-spotify-album-queued": "เพิ่มอัลบั้ม `{0}` ซึ่งมี **{1}** เพลงสู่คิว", - "cmd-play-spotify-playlist-process": "ประมวลผลเพลย์ลิสต์ `{0}` (`{1}`)", - "cmd-play-spotify-playlist-queued": "เพิ่มเพลย์ลิสต์ `{0}` ซึ่งมี **{1}** เพลงสู่คิว", - "cmd-play-spotify-unsupported": "นี่ไม่ใช่ Spotify URI ที่รองรับ", - "cmd-play-spotify-invalid": "คุณส่ง URI ที่เปิดไม่ได้ หรือเกิดปัญหาขัดข้องขึ้น", - "cmd-play-spotify-unavailable": "บอทไม่ได้ถูกเซ็ตเพื่อให้รองรับ Spotify URIs กรุณาตรวจสอบการตั้งค่าของคุณ", - "cmd-play-limit": "คุณได้เพิ่มคิวจนถึงขีดจำกัด ({0})", - "cmd-play-noinfo": "วิดีโอไม่สามารถเล่นได้ ลองใช้ {0}stream", - "cmd-play-nodata": "เกิดข้อผิดพลาดในการดึงข้อมูลจากการค้นหา youtubedl ไม่ส่งข้อมูลคืน คุณต้องลองรีสตาร์ทบอทหากนี่เกิดขึ้นเรื่อยๆ", - "cmd-play-playlist-error": "เกิดข้อผิดพลาดในการเพิ่มเพลย์ลิสต์:\n`{0}`", - "cmd-play-playlist-gathering-1": "รวบรวมข้อมูลของเพลย์ลิสต์สำหรับ {0} เพลง{1}", - "cmd-play-playlist-gathering-2": " จะใช้เวลาประมาณ {0} วินาที", - "cmd-play-playlist-maxduration": "ไม่มีเพลงที่ถูกเพิ่ม ทุกเพลงเกินระยะเวลาสูงสุด (%ss)", - "cmd-play-playlist-reply": "เพิ่ม **%s** เพลง ตำแหน่งในคิว: %s", - "cmd-play-playlist-invalid": "เพลย์ลิสต์ไม่สามารถเล่นได้", - "cmd-play-playlist-process": "ประมวลผล {0} เพลง...", - "cmd-play-playlist-queueerror": "เกิดข้อผิดพลาดในการจัดการเพลย์ลิสต์ มี {0} ในคิว", - "cmd-play-playlist-skipped": "\nและเพลงปัจจุบันถูกข้ามเพราะยาวเกินไป", - "cmd-play-playlist-reply-secs": "เพิ่ม {0} เพลงเพื่อเล่นใน {1} วินาที", - "cmd-play-song-limit": "ระยะเวลาเพลงเกินขีดจำกัด ({0} > {1})", - "cmd-play-song-reply": "เพิ่ม `%s` เพื่อเล่น ตำแหน่งในคิว: %s", - "cmd-play-next": "ถัดไป!", - "cmd-play-eta": " - ระยะเวลาจนกว่าจะเล่นโดยประมาณ: %s", - "cmd-play-badextractor": "คุณไม่มีสิทธิ์ที่จะเล่นสื่อจากบริการนี้", - "cmd-stream-limit": "คุณได้เพิ่มเพลงสู่คิวจนถึงขีดจำกัด ({0})", - "cmd-stream-success": "กำลังสตรีม", - "cmd-search-limit": "คุณได้ถึงขีดจำกัดรายการเพลย์ลิสต์ ({0})", - "cmd-search-noquery": "กรุณาระบุข้อความค้นหา:\n%s", - "cmd-search-noquote": "กรุณาใส่อัญประกาศ (เครื่องหมายคำพูด) ให้ถูกต้อง", - "cmd-search-searchlimit": "คุณไม่สามารถค้นหามากกว่า %s วิดีโอ", - "cmd-search-searching": "ค้นหาวิด๊โอ...", - "cmd-search-none": "ไม่พบวิดีโอ", - "cmd-search-result": "ผลลัพธ์ {0}/{1}: {2}", - "cmd-search-accept": "โอเค มาถัดไป!", - "cmd-search-decline": "แย่จัง :(", - "cmd-np-action-streaming": "กำลังสตรีม", - "cmd-np-action-playing": "กำลังเล่น", - "cmd-np-reply-author": "ตอนนี้ {action}: **{title}** เพิ่มโดย **{author}**\nความคืบหน้า: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "ตอนนี้ {action}: **{title}**\nความคืบหน้า: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "ไม่มีเพลงในคิว! เพิ่มบางอย่างด้วย {0}play", - "cmd-summon-novc": "คุณไม่ได้อยู่ในช่องสื่อสารเสียง!", - "cmd-summon-noperms-connect": "ไม่สามารถเข้าร่วมช่อง `{0}`, ไม่มีสิทธิ์ในการเชื่อมต่อ", - "cmd-summon-noperms-speak": "ไม่สามารถเข้าร่วมช่อง `{0}`, ไม่มีสิทธิ์ในการพูด", - "cmd-summon-reply": "เชื่อมกับ `{0.name}`", - "cmd-pause-reply": "หยุดเพลงใน `{0.name}`", - "cmd-pause-none": "เครื่องเล่นไม่ได้เล่นอยู่", - "cmd-resume-reply": "เล่นต่อใน `{0.name}`", - "cmd-resume-none": "เครื่องเล่นไม่ได้หยุดอยู่", - "cmd-shuffle-reply": "สลับคิวของ `{0}`", - "cmd-clear-reply": "ลบคิวของ `{0}`", - "cmd-remove-none": "ไม่มีอะไรที่จะลบ!", - "cmd-remove-reply": "ลบ `{0}` เพิ่มโดย `{1}`", - "cmd-remove-missing": "ไม่พบสิ่งใดในคิวจากผู้ใช้ `%s`", - "cmd-remove-noperms": "คุณไม่มีสิทธิ์ที่จะลบสิ่งนั้นออกจากคิว คุณไม่ได้เพิ่มสิ่งนี้เข้าคิวและคุณก็ไม่มีสิทธิ์ในการข้ามทันที", - "cmd-remove-invalid": "เลขที่ระบุไม่ถูกต้อง กรุณาใช้ {}queue เพื่อหาตำแหน่งในคิว", - "cmd-remove-reply-author": "ลบ `{0}` เพิ่มโดย `{1}`", - "cmd-remove-reply-noauthor": "ลบ `{0}`", - "cmd-skip-none": "ข้ามไม่ได้! เครื่องเล่นไม่ได้เล่นอยู่!", - "cmd-skip-dl": "เพลงถัดไป (`%s`) กำลังถูกดาวน์โหลด กรุณารอ", - "cmd-skip-force": "บังคับข้าม `{}`.", - "cmd-skip-force-noperms": "คุณไม่มีสิทธิ์ในการข้ามทันที", - "cmd-skip-reply-skipped-1": "รับทราบการข้าม `{0}` ของคุณ\nการโหวตเพื่อข้ามได้รับอนุมัติ{1}", - "cmd-skip-reply-skipped-2": " เพลงถัดไป!", - "cmd-skip-reply-voted-1": "รับทราบการข้าม `{0}` ของคุณ\nต้องการการโหวตอีก **{1}** {2}ที่จะข้าม", - "cmd-skip-reply-voted-2": "คนเพื่อ", - "cmd-skip-reply-voted-3": "คนเพื่อ", - "cmd-volume-current": "ระดับเสียงปัจจุบัน: `%s%%`", - "cmd-volume-invalid": "`{0}` ไม่ใช่เลขที่ถูกต้อง", - "cmd-volume-reply": "เปลี่ยนระดับเสียงจาก **%d** เป็น **%d**", - "cmd-volume-unreasonable-relative": "การเปลี่ยนระดับเสียงที่ระบุแปลกประหลาด: {}{:+} -> {}%. ระบุการเปลี่ยนแปลงระหว่าง {} and {:+}.", - "cmd-volume-unreasonable-absolute": "ระดับเสียงที่ระบุแปลกประหลาด: {}%. ระบุการค่าระหว่าง 1 ถึง 100.", - "cmd-option-autoplaylist-enabled": "เพลย์ลิสต์อัตโนมัติเปิดอยู่แล้ว!", - "cmd-option-autoplaylist-disabled": "เพลย์ลิสต์อัตโนมัติปิดอยู่แล้ว!", - "cmd-option-autoplaylist-none": "ไม่พบสิ่งใดในไฟล์เพลย์ลิสต์อัตโนมัติ", - "cmd-option-invalid-value": "ค่าที่ระบุไม่ถูกต้อง", - "cmd-option-invalid-param": "ค่าที่ระบุไม่ถูกต้อง", - "cmd-queue-more": "\n... และอีก %s", - "cmd-queue-none": "ไม่มีเพลงในคิว! เพิ่มบางอย่างด้วย {0}play", - "cmd-queue-playing-author": "กำลังเล่น: `{0}` เพิ่มโดย `{1}` {2}\n", - "cmd-queue-playing-noauthor": "กำลังเล่น: `{0}` {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}` โดย `{2}`", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "ค่าที่ระบุไม่ถูกต้อง กรุณาระบุจำนวนข้อความที่จะค้นหา", - "cmd-clean-reply": "ลบ {0} ข้อความ{1}.", - "playlists-noperms": "คุณไม่มีสิทธิ์ในการเพิ่มเพลย์ลิสต์", - "playlists-big": "เพลย์ลิสต์มีขนาดใหญ่เกินไป ({0} > {1})", - "playlists-limit": "ขนาดเพลย์ลิสต์ + เพลงในคิวมีจำนวนมากเกินไป ({0} + {1} > {2})", - "karaoke-enabled": "โหมดคาราโอเกะกำลังถูกเปิดใช้งาน ลองอีกครั้งเมื่อมันถูกปิดใช้งาน!" -} diff --git a/config/i18n/zh_TW.json b/config/i18n/zh_TW.json deleted file mode 100644 index e90ee7fac..000000000 --- a/config/i18n/zh_TW.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "cmd-resetplaylist-response": "伺服器上的自動播放清單已重置。", - "cmd-help-invalid": "指令不存在", - "cmd-help-no-perms": "你沒有權限執行這項指令。試著輸入 `{}help all` 來列出命令清單", - "cmd-help-response": "試著輸入 `{}help [指令名稱]` 來了解特定指令\n如果需要近一步的幫助,請參閱 https://just-some-bots.github.io/MusicBot/", - "cmd-help-all": "\n輸入 `{}help all` 可以只顯示你能夠使用的命令", - "cmd-blacklist-invalid": "指定的選項 '{0}' 無效,請使用 + 或 - 來新增或是移除", - "cmd-blacklist-added": "{0} 使用者已被加入黑名單", - "cmd-blacklist-none": "這些使用者都不在黑名單中。", - "cmd-blacklist-removed": "{0} 使用者已從黑名單中刪除", - "cmd-id-self": "你的 ID 是 `{0}`", - "cmd-id-other": "**{0}**s ID 是 `{1}`", - "cmd-save-exists": "這首歌已經在自動播放清單中了。", - "cmd-save-invalid": "沒有有效的歌曲可以播放。", - "cmd-save-success": "新增 <{0}> 到自動播放清單中。", - "cmd-joinserver-response": "點這裡來新增我到伺服器中: \n{}", - "cmd-play-spotify-album-process": "處理專輯中 `{0}`", - "cmd-play-spotify-album-queued": "新增列隊歌曲 **{1}** 至 `{0}`。", - "cmd-play-spotify-playlist-process": "處理播放列表中 `{0}`", - "cmd-play-spotify-playlist-queued": "新增列隊歌曲 **{1}** 至 `{0}`。", - "cmd-play-spotify-unsupported": "這是不支援的 Spotify URI。", - "cmd-play-spotify-invalid": "你提供了無效的URI,或者有問題。", - "cmd-play-spotify-unavailable": "機器人設定未支援 Spotify URIs,請檢查你的設定。", - "cmd-play-limit": "已經達到列隊歌曲的排隊最大值 ({0})", - "cmd-play-noinfo": "無法播放此音樂。 嘗試使用 {0}stream 指令。", - "cmd-play-nodata": "從字串中提取訊息錯誤,youtubedl 沒有回傳資料。如果這種情況繼續發生,您可能需要重新啟動機器人。", - "cmd-play-playlist-error": "排隊播放清單時出錯:\n`{0}`", - "cmd-play-playlist-gathering-1": "收集 {0} 歌曲 {1} 的播放列表資訊", - "cmd-play-playlist-gathering-2": ", ETA: {0} 秒", - "cmd-play-playlist-maxduration": "沒有添加歌曲,所有歌曲都超過了最長時間 (%ss)", - "cmd-play-playlist-reply": "**%s** 已排入列隊歌曲。位在: %s ", - "cmd-play-playlist-invalid": "該播放清單無法播放。", - "cmd-play-playlist-process": "處理歌曲 {0} ...", - "cmd-play-playlist-queueerror": "處理播放列表 {0} 的排隊時發生錯誤。", - "cmd-play-playlist-skipped": "\n此外,當前的歌曲因為太長而被跳過。", - "cmd-play-playlist-reply-secs": " 排隊的歌曲 {0} 將在 {1} 秒後播放", - "cmd-play-song-limit": "歌曲長度超出限制 ({0} > {1})", - "cmd-play-song-reply": "`%s` 已排入列隊歌曲。位在: %s ", - "cmd-play-next": "接下來!", - "cmd-play-eta": " - 預估播放時間: %s", - "cmd-play-badextractor": "您無權使用此服務播放媒體。", - "cmd-stream-limit": "已經達到列隊歌曲的排隊最大值 ({0})", - "cmd-stream-success": "串流。", - "cmd-search-limit": "已經達到播放清單的項目最大值 ({0})", - "cmd-search-noquery": "請指定搜尋詞句。\n%s", - "cmd-search-noquote": "請正確引用搜尋詞句。", - "cmd-search-searchlimit": "你無法搜尋超過 %s 部音樂", - "cmd-search-searching": "正在搜尋音樂...", - "cmd-search-none": "音樂搜尋無結果。", - "cmd-search-result": "結果 {0}/{1}: {2}", - "cmd-search-accept": "好的,馬上就好!", - "cmd-search-decline": "好吧 :(", - "cmd-np-action-streaming": "串流中", - "cmd-np-action-playing": "播放中", - "cmd-np-reply-author": "現在播放 {action}: **{title}** ,由 **{author}** 點播\n進度: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-reply-noauthor": "現在播放 {action}: **{title}**\n進度: {progress_bar} {progress}\n:point_right: <{url}>", - "cmd-np-none": "沒有歌可以放了! 用 {0}play 新增歌曲。", - "cmd-summon-novc": "你不在語音頻道!", - "cmd-summon-noperms-connect": "無法加入頻道 `{0}`, 沒有連接權限。", - "cmd-summon-noperms-speak": "無法加入頻道 `{0}`, 沒有語音權限。", - "cmd-summon-reply": "連接至 `{0.name}`", - "cmd-pause-reply": "暫停播放 `{0.name}`", - "cmd-pause-none": "播放器已經停止。", - "cmd-resume-reply": "繼續播放 `{0.name}`", - "cmd-resume-none": "播放器已經在播放。", - "cmd-shuffle-reply": "重新洗牌 `{0}` 的列隊項目。", - "cmd-clear-reply": "清除 `{0}` 的列隊項目", - "cmd-remove-none": "沒有東西可以刪除!", - "cmd-remove-reply": "刪除了由 `{1}` 添加的 `{0}`", - "cmd-remove-missing": "使用者 `%s` 在列隊中找不到任何內容", - "cmd-remove-noperms": "您沒有從隊列中刪除該條目的有效權限,請確保您是新增這首的人或具有立即跳過權限的人", - "cmd-remove-invalid": "無效的號碼。 使用 {}queue 查詢列隊位置", - "cmd-remove-reply-author": "刪除由 `{1}` 添加的 `{0}`", - "cmd-remove-reply-noauthor": "刪除條目 `{0}`", - "cmd-skip-none": "無法跳過! 播放器沒在播放!", - "cmd-skip-dl": "下一首 (`%s`) 正在下載中,請稍等。", - "cmd-skip-force": "強制跳過 `{}`.", - "cmd-skip-force-noperms": "你沒有權限強制跳過。", - "cmd-skip-reply-skipped-1": "你發起跳過 `{0}` 已被確認。\n跳過投票已通過。 {1}", - "cmd-skip-reply-skipped-2": " 即將播放下一首歌!", - "cmd-skip-reply-voted-1": "你發起跳過 `{0}` 已被確認。\n**{1}** 需要 {2} 票才能跳過這首。", - "cmd-skip-reply-voted-2": "位是", - "cmd-skip-reply-voted-3": "位是", - "cmd-volume-current": "現在音量: `%s%%`", - "cmd-volume-invalid": "`{0}` 並不是個有效數字", - "cmd-volume-reply": "更改音量從 **%d** 到 **%d**", - "cmd-volume-unreasonable-relative": "提供了不合理的音量變化: {}{:+} -> {}%。提供一個在 {} 至 {:+} 之間的比例。", - "cmd-volume-unreasonable-absolute": "提供了不合理的音量: {}%. 提供一個在 1 至 100之間的數值。", - "cmd-option-autoplaylist-enabled": "自動播放清單已經啟用!", - "cmd-option-autoplaylist-disabled": "自動播放清單已經禁用!", - "cmd-option-autoplaylist-none": "自動撥放清單的文件中沒有項目。", - "cmd-option-invalid-value": "提供了無效的值。", - "cmd-option-invalid-param": "提供的參數無效。", - "cmd-queue-more": "\n... 以及 %s 等等", - "cmd-queue-none": "沒有歌可以放了! 用 {0}play 新增歌曲。", - "cmd-queue-playing-author": "現在播放:`{0}` 由 `{1}` 點播 {2}\n", - "cmd-queue-playing-noauthor": "現在播放: `{0}` {1}\n", - "cmd-queue-entry-author": "{0} -- `{1}` 由 `{2}` 點播", - "cmd-queue-entry-noauthor": "{0} -- `{1}`", - "cmd-clean-invalid": "無效的參數。請提供一些要搜索的條件。", - "cmd-clean-reply": "清除 {0} 條消息。", - "playlists-noperms": "您無權請求播放清單", - "playlists-big": "播放清單包含太多項目 ({0} > {1})", - "playlists-limit": "撥放清單項目 + 已經新增的歌曲,已超過上限值 ({0} + {1} > {2})", - "karaoke-enabled": "卡拉OK模式已啟用,請在此模式禁用時再試一次!", - "left-no-owner-guilds": "因為沒有找到機器人的擁有者所以留下了 `{}`。" -} diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 000000000..f06d01777 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,3 @@ +files: + - source: /i18n/musicbot_*.pot + translation: /i18n/%locale_with_underscore%/LC_MESSAGES/%file_name%.po diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 0a308e40b..ff2529efc 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,7 +1,7 @@ #!/bin/sh -if [[ ! -f "/musicbot/config/example_options.ini" ]]; then +if [ ! -f "/musicbot/config/example_options.ini" ] ; then cp -r /musicbot/sample_config/* /musicbot/config fi -exec python3 run.py $@ +exec python3 run.py "$@" diff --git a/i18n/en_US/LC_MESSAGES/musicbot_logs.mo b/i18n/en_US/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..dd6b179ec3c4402a3bb72628b9edfdc1941cd4be GIT binary patch literal 105849 zcmdp$)={=|{ zk3P3hI2la91iTp3@4Es{fyeTEb9jCe_(YyR0v5q9f=7UV0*?ltNG1Bc3sk=Iz+=EI zpz0Y04+n1qPXk{Ds=m9xW5LgYO80$G<^B(NB6!64g~F*|FR1ieK>c10I0Y`{`Gw#K z;D z1x&!hmV12*!ET;6fEte)DEhnvJOlht`2Bux70-uVSSViHJ%vEaABRp1XnmD9Dt`@a*U>4leoYX2v}OTeFkDtGC{j4?RHf98XC zgQD9vK}cOVe5Jo%3$EdL6x92-f@gu>0~aXWDsR_0pvtd+qUT+p+WSNBO7Mi$g~D3! zsURdPydP9Q{tY|{JfBLofCJ!};OoJK;OD`4;D3R1v2YTFh>v!HCxA8Z6!3-Mso-0{ z)4)%I$AP~96Yx=VTEBOJkhHKKR6B13H7@T3HJ;xBmF~#(o^L6*i0AE~==p3=?f)=% zGWfgj{^$)(|1F@E3ohpO_kz9P4?)rGNIKmGUJUB}2&i$t1*EBk4}(f4Vro1Wf=7Xa z;3}{QD&PA-k`{gdo&lb<$=kCHq)CNIP`}>|Ho!lD>R%n^6@A|Zo(_H$JiG(?g0JEE zF`Em8e((*T`u86oO)nh9;4A>I0yQo-fv{5HU7*JKm*8dK{H;#ED#*Wum+_w`f!_h= zgAane;E8>ne-kKrJ|9$j{{a;J9!n#R2QLH{fdioOJqHwh?gG`0`#_EJVV8UQ(?HSd zB2eY@gX;H9pxXOEa2R|L6dyc=NxvAp4HUgU11^Uie*{(kvVlSYRxex*YW!aT9tnOH zq|1fx1Uzep_hTCD=KXuYBKU1^33%8QEGG%_ z6u;aFs{fw>j{tuUs-DL_+55K?RJ!Xx@x#l(1pEMa9QY0JH1OA;=za7~@Bda%^Xf&Q z^8F*Ia(@MCypOxe>Af=G9#C|A6{zw0DkwUhe08DlOmHWt_J0!`1Rn%Nhn-Jx`n~{U ziWNQ#s+^8%;AwCr*aN-~RK53sYR@6p`h4#N8M4A!@G$U|;5_iJLGkCu!Sle*UEaUd z;L$uk4LliqId~%Y&VZi89$^@73 z{PeQ(!`Fxqg0ly8N3jQ}JI-Xc@zBnH|mgiwm?YtfoU%wZ;2>e%2?d`hG$Kz^H za$*uZ2K+Gi81T!W%Ka9&0Q?=Obf@g`a;^i_{x=8wKB#mjj(a=Sf-8Bhf$IOeK$U+V zsQLZxptWPd=gHOJ2YG)Z_!aP?YN7Bc@QF3%H28J!9`OB>E(aPsB&KizEQt} zUk9(Q7Yg46&u(}kJAcp8P9vb&EOlr3&97#o50@dz5I8BSM&T`Q1br5r#b&$ za)VE2}JOg|Scs}?=kfs+N^K_RdPX~|Z`L*Cl;0HjB|38BR;LpKD;Hqc1J~0XE z`A%>?_!Us?_#LS6+xARv-}T@LJiirO3Vs|+z~6yNcigjl{;UL-^ZX1@>HZG93j77A z_HVq==g9v{vxRI9|T43v!3mI)(>99 z^9`WN|2yzv@K>PH_ddtv^B|~ktAj>YP`|$gd^Pwl;Bs*9bG`icfami3HBjw2{CO@< ziUB9V(|CUuc!tt}uv+1dpy>A0=ewMHF{p8QE2w$!DNyzP2Y43P{Q~d*0H}5022k&B z1y%3ggBthyLG|xRFZAa=FyZ<6;C%2c;DzA5;rGY9$mQ}%@B-dn2CAIrg6h{jpvwC# zcnsM6V&|ia!Gz~4LA7HasP?`AJP-UjD87IEOMHH>0?*|6SpnY;s@-1$PX`|amG9)2 zdinuy6VJDT3&8t8@$VrobGdmcsQi@Bac;3{ka?50R948 z3!eRQ$0<6&|)%yid?KVCzaLD% zuYjV%zk^QzyI$#ZI2RP(Tnnncz2F((o4_Z7p9eKQXZ)q}>*b*6&;X@I zmG^5aSmgP7Q2l)?xC;CnxEg%iZBG9_u*CDLz@^}Sg0Ns=;qC0nz`Mc6bTIZzGWBoc z9q6_^kAs>&V}Ipx^Tpu#JpUai`ab|_yo;~(_BOyZJiikZ-5&sz?&R087XYsUSLkGU}V9O8KxRC%8QF9v@Wo_pTl@^}k)4(~_6%fZ{hdEn2%qru0$(dX}cQ17n=MfYcg z=Q}}_|H<(D(}0J)$>mEgsPvbD8pjFnLhx0f_~t9%CE%mp?ETsTYP?^7EkR_Lz5jeQUwfd44K*3HX=bDd2a(wf}+!Ua4A>;yTI3k z_a6f<utSa(eFedGZu+8PB(aD)-CaX7IuA`}z+! zpWXzj9k+vP!Fxc>vyQ)YKDrpxxYoe4zz={LpC5o%fRFq;ms?kX%Xr=gE(YHN>i7FW z@!JI-^!!(YNAdi8@I3I2@czr7+W#j|{aNxMpFe}(LY`j<>i3U<;?Ms8)vpB~_Hirm~{+@7;w{H|&&hv9X@!viH1S>@ALF@Q2954$AY`S#Ce4SbbuHgMRcqaHZ@C>B~)s8=aYUfcO zcRpAGs{S3I%6|?hdb|x>34SL$pZp0gryopsKLu_9Zv$1&k3o&Y5ufz-?gqsluLgI5 zUja3)y`S>&y9(6!+zhI|&w`@kAHlQ1Gyc)*zY0`;Uk$4LcY#~M&w!_c$A8+#a|O77 z=P^+A-VBO~9{@Lk{h#%6ZUaj^{}ZTs&%PJk zAG`_N0R9S8z2|<;%fANH^NYaw;9X!J_*JkQ?E1X7cPqG>=Y62Y>x1Az@If#EyT0Ij zumMy*o8ax>?V$MZ>@WKK-2?96`CZ^T@X=rLeq9RALtpqMxCVUpKRKO$ z3#$ADU-o&r8C=ZsAlL)GBH)Jt{s^q{{s~{fb_6~HoCa6@v&-!df@kskd2kW;QPRf!G8dc1`GenTLFM}wQ0bHV0>6Xj^ZX)E`9B8U0R93Loh#q< z_3RE%`A++u^Zzzb^YO(2KMIPke;b~U{l3?KDR=?z8=&fc2dH`V8*nvv{Qb_aSAnZ| zel3`Q-vv(v3qNpvNkH|dAG`^i2E~tm0H4?aEr00abMcRyuA|^ie!mq|JAVb90nY!i z_hS>dl;?e*#_#Rma`5}0`0AvexZh+WIFIKigNK0EgBr&hLGjmLf}P;oz(3HA_k-fA zyMF3^o}Yl{@%*%(xxBgyd=k%}1y2Tl1Sa4kf9}7Z9`GXYSl$nW=RM#Pd44viakv!} zUw#}^d%hZe{~4%!{|z1k9{CHeryD$+=MCU#;CApha0*oVn?bebO`yvC1SmfG8mMvj z4XE@-{?dOxGvGy_=(rU;0lX1Zd+q>5w|9f$<1d4c27eBUuO0xmfv5e-`EM^M{&**- z_Wc&rxE%Ly?&sM8icfC?6Yxu*>U#hbUmW&pm+R+%MV>DQ&j6nV>i0K;tH3XT;)f$1 zaDHD8cJW*TRsSo&jo`OHjpO{^`16(EV|jiZxC(qLsB(S=E(K5dt%O- z0Z-w1D=5C00M*}@g2#dH0Tb{u;rE|`7xLWsU*66QpvGk%cs}?#Q006bOu*lRi@@Xm z+v#};cmdBhg5u8)h4=H?=7I(|7-AM@VNi+{m;3eet#O+06z|@f9DrEOrF%h z(|LY1D7)WB!PoHoxsDFA8&@9DVdZ@g+`#*9fEw>pAK78!vJqUta}(4!-vwR<{scS~ zJo`}{riW|?pTzU)!TI1lpxXaEQ28JK=nkXjW>D>Y9=HVj0(d-FIHbeqe*&m{n?TWL z3KW0b32L0b1SgJ_f41 zKR&j@^paycJ4|1@0z8uUH-lTi*9ZJHD89J(unwEw`#{b6zXsKgFM;QRkAT<-xC|8C zc7htWmw}tWzX4AHe+O;@k9k~&@yl*d{eKyF1o&Z4a^wr3`uBTKe6{HD9mWqkz=Y=; zK+)%~K+TKygKFnDLG}NrCv@1n>I20`F9B8VdqIu&w?WbSQ7mf0#h~c;6j0;!YEb3e z4?Yt-2 zcfeg>$H`8Y5~%*&0cxB-2}-{G3Oo}$<&-ebK&6`k#gBgtYF__6C^~)*6hHg{JQnOe z)!Vre6kqQHF9P2Is=Yr0j|P*(<;1z5#`Q+GVlkW%2_ne+dm%g zO`y_!4^%r2o$vGX98mplf-3(`P;&V1Kx+r6d6JygVSb(s;8%F=IK9LCJYNOB!}Dvp zI?T^={TVI?mMw7pxExfuBj6js>%p&sNq2|&c^(8+&o_EH%+K@qGds-B^8--wZ*XCU z`FWlVzMto9z24qKi_XvIgQD}!@H`DZf#*9w$&t5%;*;-yk_V4ic@8`QkG z6;%26fTH)WLGjr!7dStz237tuK(*_=pwj;alzi@D5z)Av4;o!T{XPM{8vH+?`f(wX zT;=Zt#W#0=^T2-sSA)L|cF6R6&jVi$T@2rPOT3(398+9 zfTH6)pz_@hD*Xv-UEb~l)$cn&)q5}45B?BT{&Uy)xLyfLUfc?<13w9hA3E3jdUrOc z{yYuTy7L}zE%;!-i#GWCXMq~ue*~o`JYu8Ew|-D^dK}cc)B+{n{sL6Hz65HW`zfe? zUwBENHz@kN9Mt;oVNm_~H7GfK{3f4gYe3Pr4yybYfa1S5fhzxVpy=}>Q1m+KQkNgA zL8ZSQOu*YflbfLU_-CN#@L%9@;Axk6eHVh_$35Va!COGBBR>bV{v5m6>99Ot3tYzg zcY|v8PeJwTs4YPbfa0$zxC(p)xElO2xDh;hYe%63J_Qt?d<1+U_yG6<@M(RlCmrx% zzxVI(%R9`^vjkLo7H)UB*$;|8p8<;gcY_-5-+~&qWdj{%e`&wqkLJa_N(@?H!|{=6$Z{|b~mKJqG`Z#|&+=~__jd^dPB_+?P@_b1`~X;(Yl z*Mmy88&rE=6rSH1@JpcN%Wpu9(-WTJi4!E(g62l%9GED7t+PRDFkzdU@x8qTkh^_~{Lx=H17^ zL&1Lm_rV`O1UK<~&F&8K^Sl{c&GVv)_vfjg`01}f&G*lOPXhl96rDP+^KmJHk`pCR z@1GA|2EH9syM7O9+*g6pPwoNrd*_7n z=|)iXT?>kCH-Y;7Q=s_hkyRhpb3o058$gZETfi&8PlJ+Mr`Ei_6`=C%1@-%zLGjz4 zK;=&+eSf$aJdfu=Q14#_s{J1a)t}#iTCcjE>if*AK>hxFQ2hBpQ2qJ^sB}lxeS9~9 zs`vSz`gwkFLr~f=Q*I#zYWxS|1nVW z<=fyw@aR@YVGvvmYMfpVs@{7+&C{QP%76G?r~B!k)`JVf^8l#v+ykorw+H-mc>jA) z^S*1!`@aTMyPBZNeKn}^?h3!(3u>MEBdGbm1ZLH`Py@AIyc#?f{0C6&{01mK_#LSF zpET{|ZvsX48mRg6`tW=|sB(_EzN3(U7lB*AYe3cWc2MK+HBjT#`!wf|UEofhZv#cQ z-+&swQ*ZF`830w^&7kP`F;M;ZIjH(ieY*E|7pV46fm^|sftp|60X3eFc!rPXLQw17 z04Vys6cm5I4OIO<0kz&7{Y;l*eW2+2a!_*aZcuXVm}hx8*MKFS{}NQa4}yEZjW;@9 zy%!W8{THb6=ilVdeW3VY3e-CFYEb?A8L0Li^=y|LD?p9cGePCQ2TZ`9f#Q$Dp5y(z z0KA>&YeDhhgP`W`;^%glpQj0Gefuo93Vg!zd>;0LqGKKW7HN2#==clp zDDa3E_`1~rb)1CItj0gBGw1T~H)y~62oDX4MY3o8Gepyu&MLDA_Op!oHVpvH6gEsoCw zHBUbQYFvH`D*wrU;e2%gsC+}9^1TjJ`X7R#>ruBl-)sey|9RjI;JZPaudnp=Y!|3} zKLIt5j{QsLlfHn@2Iuqs1L65wp!oXnuk!Wvd{Fg271X@C8x)zTNlJD?qI;e-A#f1O5OtK99J=>3Sw8`SN5?a^o&ga_YyR`ti8e zxO}+?)cDmv(c_Jv`09J$6T!p&%E$F2@DQFa1~rcBLGjmBU?*4w3!Q6smxuRMs$Ev-gnculRD@Oq>?S+0(htHYIYqgX5!I=A)>Y+Ad1dFMba8LR9q zC)3T|k@3l-G(22xSnlastFFgdtJ++c?5#8^&E=g*($(l3*j=tBFnSRo2=JHnI3+jV@xz|%- z#YyN=t|yg|@w9E5%VVYC=_Eta3=1TyCg5JiA(qu&uJ<;|bw&s7or6x>#Ei+d+EAsM zT%Kw2_HwB{ygS+KW1?PfFOQExuF_~Z5`H_Q$~38$8@p@cBQ(Cd+M4JYfyA1n%*?Lt z$#Q*|2K5vdj~cnRPu7~1(P`MCSsts~tO}jpZlj(|_&|i0SJo>`rr}n-P9b3^;I+}p zcpz;rb&Rzt<0CzdMP1#)yGzw-dAx__@)GEW}wc{04SY=W&x2u+MVKP;!G?koUGjpCg86C~|TJNOzn$9KGCYuX| zGtb;mqP-($o~dav;EDzvhLbQ2w60Z~ zB}?3@miJ9M$q>7xVrN%(y)?C}T(8&aP&k)sq%snTrQ9%uq)s+>vZd0HcuV$_r^PAz zEy`!V`YP)8UA8>Ax-Al}LELoL%OxhInh*v09trJzla+dTWFcJ{6-QDR37*>0OP^lJ zrgg~rQbNo5g_#KZ(V!8N6hoA{XA&|sNu~z2S{0az<0w%GbT@i5%_nQD7FrD8FMd=B zn`^_R@ePcz#z|6aeYIJi)`+U0Mr-Ig$mnG$d7nh%QiOJEOr)wMJAHlHwB8vel)7Wv z=7TG5T-7H`;Km~A97kj#hW1wKwW?%6(!YA(663BRW;%SBjE+uBmdA|6y#3-cYEx4r zZ`6Z@G(7&@BU#ejte1xOv^$|ZWA$1K0YI*DeL}+v2Zgzrp-!U-X(zO(I!#oSI@;Z; zYo@LquP`GAyShvIqo*-wl5Nr_YH6IjBhw5nZ9=4I2{s{S1%$t2A>Cz0NMcc$HJvKe zy%fr{uqwpF`D{tjd$Af~zmqvM2H7P6WBg}pHIt?`sRfpHl(fL_3OS0`!HC`iGG(hq zruSN-H3D23M6FiC}m z={QkTRFl5#iA`@UrIH`eQS?`K6KJRi%~E!RHSLDWlQtiw7)BNYRef0Slw(&PSXZDAB3z4=VYz-p03-1 zT4_!%Oom#`MEYQm8%(Ud66D6^UXZGzBvVLO%u@|ARUfC5NmyK3fDvngrZcg|rzxW| zwk8xJdHV1MB-aMbSk|?+PB^=ntx1;0kur)$b2qbtX(8qh3*n@Qs3js-YCg+Y1zFV^ zAD^8OQwpPz*l?tZO{2-$GXizQUrYo`VyjeGvRFN|ybqNT{>B2x!-WvEiR`J3@}pEu zeyW!zYJ1BgG%j0&jcg48fX>ZACDD#H71ByoV1X}9JiKiCt0GAQ)vs2FQ#N5N^1*lwBb973v?1=MY)Z!W~TY*Pm zvuWSGB*U&bvD8W>M@^z754Vi5R=Lqc85)r&^lii-%LR&zmWR?%gXSzu#cj6_*ho)Y zVl+lU`xe>I-zC{m&rA){3^vga=Wk=V|CkP`bNxhVQqpO3yn;w#?p@}3i#P!;Px@Tp zWx3VU*7B6rNEXFdRa#mY@wCu|bZoC0QL9?-+G}oNOKg6IsF*UUb<$P0Rt60-YNC?4 zL80@x)2yXp%L$~KT=a*PJyMA|XG9wD7qn$BYHDdnf*U1iBXXxT1ZiSb+GCsaD>e4m zHhT?H4BeH5dB$?-5=6o{orxvWq8Ndo7b9VEzehn}^DCQ1n-j7%%llYHUFZrIYrk58YwqvY0iu`q#^MJrN6>5(!hfLWK110%vmhDv$2_W;=vN|ka8~6?@bWxicKR6WI*VJ{zNvAGBrX?^s1E6 zwOv=6D>Vy{X+l9?KsckWFiiVRD>_+!6!!p{ctD&a+G^Z!E+3yxQx2tMn@z|D!Xc?>QYF5T=4oaM9 zj>Rn}bIl@pk ziaoK8hHPcNiTGc2sZlQP(R4siRjQLMHrInmHxI!qqsRDXN|K;E`yy+cRZ7Oo)iLyI z^j9*&eq&e;knzbP@tagzN=n<#0+@0?bvx6=Jto}=BOe9Wf%DBdF;Hxz8&`W%b4<-_ z2V$anT3)kMZ)UbHK`<~pvdqlu?Ch`CSj8t~(Pp(l3X3yY1AR_aCMIijGkl~wAllC6 zD_YUhZBVhZb34XTZSGW-Ox{)O$f7&;)|R$L5Epw5yD9jny?YX4$HK|TliRtCdoe60 zgT1}g8a!rsd#PD!9bJ!^NJyDlqo^xZ0bftpoMEL&*^&|y`!CjZbfGa z^GPvN9PrQB3-L+q@a$-+HWX1)3>^q9WU2 zOG$r4z_%q+R_sExn+2EZcSS;P{~C(+!1BB3G^ZM@5R=O$f@8)fuHQCm zVF`&pP1Wk=5oo0@FfaKGPpFHg!#- z)YxtY*qtmlugf&)LK=@ONKxn^v z1--f11Q^(QO;Hx%%(|CzCbo?)XHitf%NS~~nVv56Zlb_wWfrA0Jr)c0O1qh(5)Gqf z=Z~tIIs>mVsJ<~t##oDGP=dB_gqWygmVpM|$YE3*lkv8F-XWVkv#C*=DDP(T&ys+% z09i#57~qDeN9Lck=$B%aO9lq|leO-rsA15L?@N{1?q+imdYWyv{X<(#S^v;TWYSO*bUM)OxJa< zn`F8fHQix{xHR{Q?@;Tk=qkRL>@d2G1eai2%z6vG4!3e;)Z!!^c5!)WoK96KZ?Aiu zL+{{SvxcgROqj`1T^`n9D|lXXg82NicRS3dE$3WZg)EEpzO6ZXThQog_<$LrfhP}m zm!emzIAiUcEXmWY6%!fh{_kRE%&nc7+Q;x_rVKHZ z<|a`|ZVw+0?J=>)x(vINhkA!F0&6tu6-)(^1J0&&2V)FE)D%FK+zEv=%tNyG441?a zECcYM9JTyrB?doz^nDFUYK@@gNFOm5yt((LN_D+P>#o&ClFhB*J^cNY9g7z)Ub5lb z3(o6INf)=I*c;K3w6=ymuXff)+q63maQ%1se0WHGRGW@S9%JW3sOg)Pg z?6)-Zwn2E$d@2WDTCK|Bh8maAz9AM%p1E6Wm&ND>F`jM52poq|TiRj}+bq7QqsgV) z`?ls2TF`?iwNODEqAR{8W5;Md%k)pv02fphVF5dhXu+wEFv}4;D8cBFC9U__3Vc}U zx=*OEy*3ru#wzQdY|}Arpav(Wi~ODR63;Q1WEv8T0WdEXC7TttKS}U)<^88($T&LL zOcG~^sLZdn>uj%9T8Va7#!$HET0ct*vqqaUn@1*BMXPrDnI*|D;N1}aXGt=K(B6b& zhMAjHYpfShR5t6HCFU$hb*ZSyWW;Ff89t1mu-}taR-+soz^vbC|9wl646@lF!{qKk zltSA}2i3nkvNDs}w#8l9{Pt!jV~$i^VjYcSKB4(t1}7oWV1^2*tjYLIvy=%N19zNi z@ixIEFN{QT>};BfjU<92%CG$-+y6L(a-79xmp^HncLfsB5c34((#QsY*l;$&ST1#0 zydjO;jJ5Lg+Frjjp6%mAX-_%XxPCwjM$SX4KqWcc4=^n(Z-3wRKP$7ZcMCS5M^ssX zX!*E;mgHK^wl5^xylwTtB^>BKxOBDAQM8qVOY5;N50$pY3^CJsv=&J3kAI8268C5( zrYK0w%ykpqWhW@XpN^RRknZ(x$_dsSHmwUK4{fbWrCppGxhRY_BfBpympUr7a|*~* zv5>>IRxi~nXbNeilG!nQs$T95>#3NR023)8wqMWEfLFC~)P7CVgbhA|X|A7BRZB{u zNvWV5%9B`(vXRNSx5AneSErau&B~_FOd_*V#g&2aqAPn2!2Ooo&2tSxUbN|RnHLrn zyz1*^n#uOTEIn~^9n6@xw1SU?i7*=U?NmpeL%O>0BN|bI=grlGj0=sJEnIoy77&(e zf|*Y8xr;0SF5KqwGH3QN-876s&9)`MqsyP zHSaZ}DE@VBVHPVsf3ew1;US01lq9hkYbikTx9C^muJ zu!81jwp(FYMt!R(%9eb?)o&~`D>plkxnsh@=GSyO_RGW;J5AirrM9LmIH)q>4%!I& za0&?~x6lUM^$MV2nTiF9VX^V=X-&>Ms79$g&1yHY#!}qw=;M;<*mjHX5$)R1au16# z4^=>{fB$5etAszBCi^Swpb3J)^}nFT0dqezDQ0E=v*|ErNe4#+O<7l(#CbN6L%i;W z4GLGZ9f3OxG$#oZ&m}6QzC_yK(O_|9V=JKv8~5>Wb0|0j|FEi=Ju3*{yaPo>hWzht zccIXjT}HaN*DvDkh=Jy4l@dhl*m2~k$0b4$L~E!|SuP3Ia~x6%r@$Q*ew59R*jj}T zNMzU{h3-&sPb2T2ksZQ35;1R(>GDup)M8qwM5C(h!?-|0G(e$`!4e?pFB6`0B-3t4 zGJ!h?+U-r&w8rLX&6f?(t1@#hN}7!6IT;xvN+j#|n=!gFBrDkKdoijx?m6QcrFObO zkd&Ds`_t&thtrT5x&G`{xNhAxzd6<2%K#a}7PjqPlljhk|Lntq%nSQpBXVI~P}cRw zaH(!FH(TV8@}0m$HJz`>MAEx1BX-_nu04h_ z)2VFhl{2@vN}CK`3!Cz3KRu<~rLI|J>dOp-Qz+bmt@J=-sF%s+2` zX#a59DF&wmKbIIJYd=fdop+Fw;=!!2sXVw$auedwu}Jnb`1m1ebjO=TJuz_e_Gi$T z(assYu2hkZcDhSv41ymK-VAQ5;u20<`AIMgbK8Q+WIufhE^4n~y<4IS>#L2H9p%Vu z9ArLcNofBzRbC)ZtK0kP*a5Y&rNREBvki$>OV?6uK_U6hCP(15g;O5uh-uVrlL%oC z5MMD+4`Bod1oxm6tt|HOQu_1S9s2{ZO5)ofJ5r*`+IuLZvl`KSU6+riqLm2 zRiliB&};{_svK3EkekGXZ|BgAXq@gk*rpG(HKK!Rvrjc>z}zvGFcYq%=?oRkoI0Y2 z?6#VKwpEp~V-xX zGkUNcnUNVUT7nW12SO#IbV#nC-0<6=c!&cC^<;3dB53fM@e`d6REd)auUXy!KdpK0PH~q%BGZ1)RV^5 zvt7q%r96%&*u{g(%F%Mu4`#PhrM%1NPUoAPYR|OARxX-rLLuD&!HE_j>C9`ZS+tf< zo6?P+hNDMnrA2bi=+BlIaHq+o9<`el2owYr`L*zxzcU72WcwB6HnIxOVI$uScDo8} zuwQIKaRxgkls_gpBl3Oj1RUogky~L~I-}v+EV#<0niZ8YBHX7Vm11=5TttcU|(Lhb7O|`KK#(orV#Hq$4Hxjn+WK^>mbdexc9xpDJQzX$aXEGy;u}(|& zD==s8E*^V=HJV8)wr;9fc^1xhDnHV;IEMqr;RHo0NdqT^HQE>3bZ{-EG>$dR3{ET< zz>O2}%}nbAd{C;?gKr^gJaA=8=7{y|X4p`Ak=M9s+BHC&MJ(wx_OXgDV&%k8$$>4I z8{|TQF-1y~4TO@Lptiz7W4tJf6~TZjm$~vp3yi8JQoxFcQr$^lf{su_yjlujN?Db~ z%``MsDv8g5V2-xsi68a{EP|OR{(O>y6o+B{Zbn8tkPZ!5h-GthqpegtF^>b z9v)&e3@VA%L016KuI!MPX&&vELw7u9CCfo}XKi-ylNp_hViTj6V#h?)11;I6MX?kF zqM$vws^sdGDJS7T^rB3Oh4nhyD(iOUl!k2)Ep*k^ZH*hJPT3qYW|q8G-K7aNZF`|n zny2IR7Mq5;ogRV>TQ{WW5C`>Kd03wL9ZA6qR)Og3M1+`jA%#6HK`FA&xg)i<@s*&` z{R#DY3s12Jrq0Wh;0u_Isgm0E$hL8GC9TF2rR9Zfg?0q#4ujN_Xh13>zZbA6sA6Ty z3R@eFLuV2CEDlG z^CNDcR(w+<93w##(3QBcBAl#qy={E8D+?RQ^mq`BXS!LK4oa@>i-r+@aJvY<u;#X7pTo(zsI7H_mff5d`pxSwdd^ksVLOnvN zWGJGtQ>m!1h{4U?6mOJT^On8?VQy}F#efY zr)7{$YOJi>1>*y0%0pz4jHH3$9{rZxnpt~TZSwXD1f$OFH$o_`1zgIC5u&V2$z>Ol zr9;>;g{4(S8ZD@bH_N69x9Y^pYg{Lc?Ka!7HwY86;);UOkhwc;bi6htBW;^4%(ED~ zl#_OygE^~BcG7yLhaO!^=gY**k+Ywob8*wwO>R1hF69~RL-^U=M|@%NBXgD(RggI) zq1C7LEas2k)=E1w1T8mq zAzF$~*`e(@1K*-gReYV#OsGj^c+bOH=Hl%pVd*#JV*zHicqB3Yjz-pwfDhE2p%IJ6 zV^qDQoI-Jf)=M*G(ho;D!&q0Ul?I1I!v=s9dS->t31Bh0H_3J%A=(0y--g;a9Iv0X zqH8RLI+@CJ4#`x0=0wv5+BGD(?phtE)od=c4>GpJtrUc?wXvn1b89pxRo$el6+1VL znjR1}U+TB6s(z(6VbI>cF0{n5tz8^R38M(61 zXo8Z*Y1rTpQC3q-cMh!E+^^279Xmvm)trY8fgCZB<+2Ocw5zB4495Olwj1p7I=5=W zu=uV}S2DCkSF;qN=Y*M0W+iEpe?O-pH-G0+fs*~S2b~FGV8N*%mPlLti|H>ii(!LGf8AuejhN4O z&1$19|0=v**hm&hp;U2;$0DI$P%VQbGF{?8$+IdWizXwGX3=d5soTL>GjK;X>TbkZ zlcptNUL)$1o1KnGBknyx0Wz~d7(IGZN+Z0Zg(?)mEcRo3*|bbC)Aj>D`lUHRJyK^= zEesD@=2*K7Zg$tG$SL-+p^AJqE1z_I#`d8yNjYA$yE(z}R*IzpUCGt!@i;cK!{)s0 zf@SPY?CT7?8AOJ3l#Jg~d-r}4w5qd`5ZX#;Eny~F4rr}>&BGp}8iaBPKo!6G9iQS# ztG_!9Q|ZAZTjfe6bXKNLxxO$gqb1vp*Ul`BwZN{g*Jp5g1V#px+QMOh6O%p1z z-nVb`v6G}%mh2ilyYMIE%vtzTH@MkKv^3b*gJh3yfx$M+-KX}ZDG4xj@F>%Nx^w9>PdN zK>~6qk|_{&emmpT;1Y^rVUsSUL>?+OM|-S2LAgXmr<#(@l6HJ(%%WKRaB_;#pR~D{ z=FvSN*%{gJnzYC=@hP4E!aZ)3!Hr_Mb0R;qO*vMhMD||FIK{cX&|dk~vLZsdu7ru~ z6tspazs5OS#}qWHIHPtqDe_%1LP&U?iDSZY8TG1pM9nLSPDhb#S3?=oDZ!=f&agKf-i zQtRe|vce|3W~PTp!fKACD|I%Yv~U?S0?(yg_NUb)I0e#Hq_xGES&Z!=Kz3eXGb&WF zx;{qy3I3e*3e<3Uw%M*#mrAC#N9U)u*?q+zw%ZVerDQJ8P{0Mj{!wA{w2tLN}J-d+&_z zDgNMeHItgen?G9D{g_N%>!eLYlDW;-dS*)kq||6dPgO`{cj~u8XKhi}aZ5Bv{Zvf2 z*gtxN=%$n>+$@PNM(ISA|2f=7s9*iE7h{7^YpNJ}c2A(V16|HrskItx(B%`61w)sD z)^*A;Y<^T?jT;;N>PS(1Ogs4sYn~R>v9Kde2f+4dp`mCmL8T|o!S5@v7U(@YBY24; zeyDx%;&BvD`CWphX}-+^rgu-9T%by3-!!mQE>*W|sI&^(A3emN$gFH0SDSwNDZWt* zy5=btqlkODtq@ji3eGuqL!^BOscLeErRt=lx+N7i+Qq6tZ<3}I*AyoU8~m6icmd@Q zm~6>qqg5kBW5h+D0;Ru6VF`e2#O#*yB3c8dRYri@DKldl(ibm!1n- z?5aTDjp)M#%<1&_tXUn}H>ns=!xEy5_B8|d49wVHiF#pc4V_|2c+UDS?LPc!%5Kw9%(}%70g6jtWGL4`If3OxL>Pk1-Uv z*$Iiq%0NdY-`6lj!}wwn!{~3RD4LR?e9gj4Nx9<_ z?Hl)MBYeJN3pR3vf7rfjWu_&m*EDoQ#fhvzqb_z1RZH+U-Y+XI!7$6{p5NjTm`AZQ7?uy>#jxeM%zo#B>?c$6mOXb@>> z-uF~c&XwD*zmMTlbCM)9q?CkvA)+Q`AudUBr4Fn_PGl^hwHwe)BB)V>g=B&TwDVC2 zy%}hO3AoMmEZ=r>O}Mhfmli+i9{b*yrpO78Hu8@#{G zN&1K_!q{nQ+)AbBBX>mL%U5ilx~=G0DYBHJ|IezNii4b;5l4W^;F@ss0HiHQ%SdlG zB=nIJaIBF?i?v(U=_G_i%_73RbdwCqK$y2}BD7OCexN-ErM{{d48(8=Je$KR%-W^GAJt-~|47NM!+jL6jTM=zgaC+6IFmLm9W}hAq#uDK5nt(7mx4iyee!7GirzX@xR{Qk877 zn?h|{6>ds|aV1Bf_bkp%(%ci;it0u~(|#fwg)--ec@oWn+QoY2p0%Jwre)fRsY6*Q33Qs_8ix|uUQY56f+69K~ z+T7qR2V1zQ(0MkBq;^8-V|?gM>uY}c$9uU{bAA=)EZ+a;3%K2_W5JUT+`|>u6 znm6uM$TveG0zETz5>3+kdLvo#n#|v^P8lkGed4a4PPwG{!v}cocZ2Q zlAvGnox6-a9Sh^jcjm0nZx&{g-o+ENohagvq(g+tGC>RMXXAVb8e~>|Qb~i@(9?Sw zEdv`89SImA!#D;rmU;Q-Y}vPq`N9bxk9_eoz8Lw;H|MbxqzTQ0FwG@gD3r5)BpYA@ zWpzD*&wfp4m5^AW-5I^wb>CSnXCIJnx%PxM4c#O+!#trv{RgqGt1(uyM7y6aw6Gx* zqlSnsV`Q=I~!i=Dvk7n?zpSzBhS@+eV z29>m=_+~tO3n^Z0MpJXKRGCt2gft5z(`|7Pxjb6L-nsE|hMm?5h>=xJg{bB+up)J) zKwDj!m8O5PC+9}9a-^fkA1a1Xz^AQuQ9g^JY;w(qOgjB;r;UR6_Mh8d*hp6b(~eHF-3=E8%2`_=k9Q8gvbD;H2_6TddSn>XADYP2=G z)!cbx)R4o;&&a@~y6_v59!=U(8t&Wfp?C41M9|&i7Av$(E!vHNgd;Lj#m+wXr9M?@ z;4QT=HU3G@JVXl_24|DBUN?=1W%{;3^A>>802xCL{^U^>z}+n z?jX{2Y7i5J+>^T9Zeb@y(|s+jX%(>zX3XlHl5>J}gYlw9Lc@$CoL^~GZT5-%L*t4= z?Ao+Qh(0oBadnWGL~4kA#fH9Wp?2{Y5-Gns5cZSEoFQ~f->pnLVKt%;1k-M6`B51d zne>S#8Xyibo_fgZ3tU$;hd;r-im_{(_mi$J%;+%$!Mzryj;kW*0jp=@4vZQyEEf6> zs@h5#gkWOb+rYQ1?2jIti%$F~-PQAK=}g4b=^q^q3arz*$rrK}HzD$C#?xNrj+O^$ z*`aj@%3n;@dQLPw?`UYn!^`bq)D{DRY4YLJ8?AEgUYR?uv<>xcW*d=ec9?B`%c))TA63eDl7dQh+(^FL2tVD~(+q#)^JB0`?}#_%#3*foJ;qG&6b*BQJlB0o9=iV6lRO)z0#*XWUC;die8OBj)wC^!Ok7zQed&y>6_nPq?g?O zz2Q7Yl=&0^fuN6ntr}7VvW_yj?PCd%bcMdu1xs~tnk|ZpNNPnLhgvNyC(`1q5sCw5 z(TkmDjOQwe&7$SO9it{Ofck!zf6)N?tLKuL+~ICx7;l94-MUX;lbJX*%;;`Q7AxSW zVnn%dGfBGFx#ow`BsX+Vz8$K-UC@kyb~w^leb?Y;@zenm4lytY<-5=B8_Atfc6Gq) zK+{3dN5f+?-stHJ>BDDWxWx~aW9Y?s*$i4ZRWJ?ZpBejy)O^rc=-<>IuR;qdPTzL3 zW)|o8sXsmE;ejM`rHKP1#&G0-5!RZg$RpFm8Z^E?Dipz=${iUc zaezD~3dgVG81F}=Rz~BBe#u%CY1h-DjXfwUrmaDW7z%3_)%HLZlh6uzjb-@@)nsA2 zbE`zi#LhZBJ z9!dO)hWSA18`9&6R$YXiVEu>E!qO9pmo?X_uW*kt$60Q+EqK2dDzfp zQ7i^X2+1^oCNd1!2QG^V|5K$g>Zm<5*x`MaLE~0cqoo0#F<#thNAt7mI}4m$AeW(# zv7mX4sL4KB&V)-pUd#foa}fSXKA7ABZfy415r^X0>D_xe|Lv1u*CZRu;!=KDr1XXO zNer4t7!yP1QG#kPTwsjtpGD-;3TKI;F~%q?scEBOCq#v(4KFn=jl$(Rl#7qUj7`C= zX2&RW-Y&Nt$OL*m^ac5bpE*|7v*HHyKE6JaqevCh}9m-$tD#lkkJ0r7-(_TF`UNUju;=tYz z$!?NC3PO;}J{H@`#78#Fq7cnh1QKSC+iJwO>0{;Uj~R~4E+K}Nc+m%cvl32;X~xApSa{{Sa?s?^9)_q18x*&ao2tip67K9& z;HUZ$icOES`hv(sZ^*V?eAY5tw#P#a@u(UTeq=}7{!tJ7NMU?H2RWciQq)v4Tm~7d zst|v&`ydbJI)ffh9O`qHe6=Tr8?r2CvKqrXUu(80ypTz5_BL!R19o>riJjD$XU2)& zIP*-KCg@OVfkgz)*axwx3PE(b$V6LVdP+y5LY{7jDWNgRq298`rp6YB4-}CDODMNw zG9O~P5a&o!we0m>wp_&Xmm;lV67`uBBc26?&7LR5arSX5Njlq)1g5bMB3bObDI!#= zPhde0olTv@e;m0wzL&BXqV2f~K?BASN7X3)GcAeC`rGv6{VRvLd<-}fJF6XLl}u4R zL;%FuD7DuKn#Yv-=#sMoq_3L#8>Bn65F`dx$v4>$(UIKhJ82T;PT6B^_kp6icFG zugUuMB``W1nRJVV6cpWKgLm+$ZJpW9HxZe7rXbNcQ-%%@gzd?FHl&BkGt(nkp+N|S zB3f<&k;T)tJ9Zy}JT`JA7q$~}u9bXn^QN`yw{Bn0VP@$jsY@rC2AFU5%@NCC*QA7L z)3#PiNnrn3=0J>6x%nWjH$f-iy?>NLjE%@)nN&8$e|wna*!1}tmcB<7cauRO_wRMs z?aIE&#vDer_U(Bp&kcv!9^3JJnuXiZHt97p@8~ueU2cF#bFqUVzB)Y4M;vLM$P$z* z`!VFUo6GbYCZ0VZT;G0|q7q7*nKWC>tYnkYi%@R41tZ8~Yo=aXxoV3#<%Nj0bV9$X z5m|Syv5hSeA&qjHUZ5}yq=%o}@(sJKkH`ia1TRv_Jx)ZHfEK5H;@*l!sxK&<4^u74 z7<~IKgnh#jQ7g}d0#VhZjE|glq*!C_DP?Hi)=B%PcyP}8q$3Lnp9d>(xB}-3GrRQzTGK4leudqGr z5M*&O2SaL-(fYHeT!ui=61dp3T}IK^r@>*gV#fTU(|(ku0ZlEgcKBL@h)v5T4S$CV zYVya*`-ZOLxSZMWBx5kv#yQE?>A99`SgUrrp!%-Dw@Ql8N)>Kq*kp|_+j2LhomSUg z%RgkSjPZK|!PN$i2{caQb0Ns`hV}?WvK66(i*Y+%?GPB*pxwFiXFzPj^ zkM($`UYh?GE@!Zf}36N#Bnc@ zRY&H1Y3yM$n4wtMI;&P&N=@Fi7g)P=%nPvle-fx?e~5Nzz>M909a3d(mymnHd=6Zt zM??hcdE4XQ#}=f9a)849c3MD<26mlb*vs3P>q~=PysSVHe=-ZXdqm{SMFU7)kjqR~ z#pDvKn`YRR`GM--KT+f0%h51+S!qUVlUdZcc{6*HNjqi(jZ-`mW}X&(K2ewn@ouOnnbN2P+ZAU5>n$O3jJtQG!AIXBQc3;Lv6gtE z(G>LAei*Mfj0iQyxoiT=8ric7bW>%6zj>m^Z;V5ZjbrTEXn@-=IbLxq8Aq z2%N*JF_%2D?uE|8sW$gwZNt!B9X%q6*azzy;aA+=<2Gq_8eC8UkwYt#La~4r4-hEr zgE=p`+_tkC0^cLeF#=YD@@#^Z-2Mf?ZgVWf^oLHOM^y>YVO^O4~@WYNpQnVL6gcYhFG-mX^j{z@r?im1V*@ zNS9@yDB%UNPh_EhP>yPGNg6CwcFCUJ;>(v4M~tT+_KzpFTB<#`Dt;c+Xd3 zf|8}mQp1H}{YFPMfCcKp|# z23x3+>zL(=x9G9Wiu-or@5Rn5LOGiG_KhSh%~)^sA;2YKZ@YD1uBx+jrsXC5*-vZ3 z{c)9DlIr}09d@OUEg>vJ?Dt($wLfWOZ!evQ5gI+v)RJ?Zg9XbkMt*n8#cM|~ zec0&?bJ7gT@@GM9u~M}s=))!vY?b%#t0Ujds%*#ic9`xgxj8dFEO3XMt&(XL|H#GY zA(YtSgVx}__Rzg_!9y#zuNFY6@O8wrV6GH%C5$%iw^kRjy$yx!%8;41!k8tkRVA3u zsI7d9EprFDa5UP9_@D#m_wXkhl`Bva!mv4+vTp)?T;)-Vv<)7q*<2%#?XoflzoU^S)fug)i$!r(4bR2+_!dyif&Ex_mbrB~mTRR1C8$~+ zgCVi)7OwDk2j^2$RKig*3RGemE$6m2QE{cGTK6zzL%^*4nX59=BVXAv8>MMxKZ?by zvZ>0<@%Dua@jZed{mO+EfvJuK99KnX5mOp*RxSp$N@aR*RVH=V=!T?7mhhd7=yEGu zS;9=rJdpAd!&;bL2sl48>IvB}t9#kR!Q3GenOVhhp)>LGcp9DXL*|+}_d?oQ7_H1# zYN=s@v!;(TGQ)hYfKMjuk&v;~I%jB%Q`9|_)PShO+BEK}NdEd&Gz95PF0=BUR+Dy; zM|St*l@{oV{$V34lI%4*PdpM9tRC{ctX6=-rQv8wF0dgj1P*b_1xEI;oN1@rgNdC+ zjJB$rq3kJGaxqnI^@?|G=2G&3coSFQ6qqTh8Z!vI6P?O;F{ngAc{dKV&0#8W^9fU~ z)*P~)vg@GtQpQx#3^Ug}t3^C1nQA(v_H@o(+F!bBSW_>G5;QvLbV+fMr{V^$Scs-o z2-Q*_+;_o(jr1|ckJ~)G!PKebZoh!V<8H-5Z1oGHt7?6;(k+IF!t_xBQ&8K2MjfVB zq?HaXis1;Opf4h6(OP&g`5r2z_{!SV-lMxq$Trg9RBv!Mv0JAlVAr& zjNG=dWl6M_w5!1stCo-9BZu(OW2dFu7Bg#8*pb-{N6vOuA|W4~l$4=8wOL4!-{)lM zpP_YRG9t=wYM3=%NAs*JsYPIdHZviEyHRbk%5r&9l|@%X`HC_lkF4G~oudm=d0X31 zu|~EKZA;f-XI$HylMY%MJ+IiMe=(LU%@b3U%s@#NKU_)~ra>7!t?+h2*TqO0jE9mu zE@3j;eIJRra&mCMbRV~H?X@MDIb+%=h1w1>%)&VfN$I5qx_xkt-bA~THBLI+!)|OS zVXo#%s#rTQAw`KXXIo8U+JLA+brxF|7R>EL=IUEs{Thki52F<~&tnr+Y4jLjiaDkG?1NqQ~QKE|l7CMD7#(iqrnGrsU z;_|N$4J_^5pA47&p&>U-ntj~&;l(t0%5-hhtu1G{VvOet;VKFkZmKs-@VJo**Hp{> z6m2vtRqOzY1)OXx;;j~Bj5-U9XT!k=8xvhnoL*ZTdQvPPTB4@TtYPb_s!co7#ENzX z8QPRIH8*KXHS2|xo)|7krJ#Y@lW zU9zNi@v>y``OD8;${&jtldyLi;pqx0pPg>W1qG zZ0KFqPN!P2BKEH5>u93g@?_airOCZ^t$Jy^cLS#cu!|5(tjETRr57?}`g28hHJP^} zS<-W1=aZpBZHm0T8_eLbXtY#bR9UjDx+v0c7u)nkkr132X?u0u>C*EuZ)3mJ!OZJ0 zMl#{G2c}(bI)oH={@Ld&UUEKp(~o2HuHizJ$!SIUqGY0nCrgUw_D&2fUea0c^U`7& zt(mT=TTt#64L`;UEneAE+}a0rZtWW&#&Efg5XxH^Z>dQ?JmexNScy5J%HTKc6Qm8P zzjg&V`j4&9c`+wHvhBo8*R)lPEd(pQeOQ5c!x~`c8}p$B7{5E?5rX0}y5ffjxa)Pi z#9qrb*08egQZy&Dje!uI1#ME+VRS*O+*I9b7oOUj$-LjnH0^g4VCGK*GT4Q)F_?|r zSSBOCwyKggM%%6t%p=pDV8A02C=N~3J7*c&@6%56p61#vEn}!q!`X%sT!AP+EcZ&$ z4z088sm_%_No$b52zoW|(!l7X+XBh;%Kp%v)XJ^(dIU@;U~SM#FkGQ=hnIGVd$Pp_ z%&G}T6xoT%B1)=}t}coT)ZOB-M7m&IG+2kNRW@gcBZVt?s1Wk@>w1Z=m{iw0vt3{_ zp=dw^+#)}lWSV>^&eL$V7OymkuUMOV&t*s+N189vwvdwjWvGZHy8WwJATlJ)ut2gZ zo|y|(u=VKmwKmn?a&+2ec8zT{&g8paG349s_s(vX9o2iiUEdQ}SLR?lpQkW7Y}XD| z))>~}aUI0$W_|48avMA~MCG&n?`Cs_udCTpTs&&zj&UOv{8%^7Vl2$>0uC!pczGp; z1@`P2vx3cjsqUUaMqsm^*k?e(3Wjko;fF>6)|8vlG|d?Nq~&w}p*UR)GfxGLL+V~? zif9|yC^j?a-ISlXeM!rowaJZkXP)VwlHvpc62ecm2-o1P_Pw0!Ch)TSH*WYzBapbqR$stOH6e-)QI0Lnj)kC4 zGn~$FkmPd3*r1Txl(2km{DR!s$qeD!s^XNa!z5P};zD;q2NT1rvl7Z04@;~zr4y>^ zv)bW^q(Xb*@twlz7#!ze+U#}Y9-}&bVJ5oG-#-j#pO3XTFSbN#V5=olbb(-pAOv(t zF4H_U3&3Ces4i_*xQrH8jgyRm>)k$K5qa&PhnPHQ&@AB`w--+Yjd|00XP8hbPPl_B z&!csiz>P(4k#5yM4DGG(Auh=Rzr|L|=Mc+|okbm;m@M1f;-My8Y$2B)O_97&5B7fq zDU-){^2#;CzLD!ki2b7}vf0oMs#1b*gl)C$Fb6YHe3EQ3d1Vw_i|5l>r6|O#fUx7z zD5;R{G9wf-tD>mp+iumY|M_e~}JUa*$mTFj8h{FGOR~@R@mybo_o-$Whdn z?Y(j`WvkW&ch+c)KxpSfS3ZtWQ0I?VhfsiYo@;0_rrh?im;HQsEEd4-Nc%E19Ze?O z4%hbKx{eb?MK$T$9^yuW4~RivvKf!NiCTidh@-whE={{(Tp$Yj*M=nb#cA7P`5eoC ztD6qu^0ru72@H{l>8?{#`f|6zPtd9htNjLV+Cb-nkTv0)tmTPF4aPV6|J-~aeK5!k zCYGCxB}ly>5rL9SAz=rUYLKb=*uLM_h&4ge<$%@Yo}Duakvx5P1CnclW-RMkTPHMm zpGy)BXt@JxP!>Bee^?0Zdg)m`%V&wFzh-AF*l2LG3QLfO-k{i6e1{?_!pL$mMNR@G z@g+;qWWN3F@%e!~)I}LY2+8Y!+QykBeo8}}yp~Wzy#JWF5N{x-(vViFLhza}TG^Tp zm~DS)(--BIrcP@qMQsT#dUL(lNQGOKucO>Yq=z~xDw zE4(bXdfHlUfAVccX<@|ELb*fC&kgI~ZN6fQhRe?oHOlWut6Spm)v)O5oe_hq;!?5Y z1Zs=^u(C%gLDb-EFtX8>7_e(f(#A^jlGYHUiB-jGdgL**xPvuvuENQ|2ijgPU4lp$ zr!%n>qius;%-WIrJqiMwU)eNrx-xKP8wv{`(X*<>IR}Om%_OAP&}}8tAV*Q_>MaUfuAuYpw$3 z%AwdW@$0+<1A{49C}}pc(_1j+QE<3lG;R{4!$iwlw`--+N%=++jR`BKH7MqbiS1Yi zxnpN%{?43qT`Wx?U57ymfii>HNOD=cr3FkwE(RMX84Zo;5e>G(Xvn5w%pmc{Tf7Gf zKMgr;{M#AhTx8AfuS*XvFCsReccX>wgkg3`;~(4^NvlkAX0#y8K^;v>4{aVfmCEc6wACUxLx%9TH*iWF4^BnXnph zuamKJZieyE;xa}L&Z6i83pTyOt~j$rNZHwf9$n+6ktP-6q)6;U3?t0HA%NQhMzx`& zfihH@K+z}#ZId$6PWcTa{*j1CQJ2A}FqQFUFXaSZe&9s~R%AJS29GD*1M=STFQ4z^ zaFkZec+-5N*c0opi}?N@bcvvB`|2WsDqiKAbn_6*GEx)bpJII@Nzk2rkqsg9eyUgc zE16+GZeDC4`zmf6X|AaOOqXJ4)YDENXAz3ff^=vH6k8JyFm}hLccQHJ-b} z2D-%&0N2M4aapHgdyhkHRv01SgbpP1w$Y0!S5;egsm;8EX-eTN3+=F_wCN!56J;ta z42m(*&F%6&o^ew(qerR&8j3P zvZ<`z*Sw48d+XW?fud%Ju%l?Vg{p{^zPqGS@+quzH|iUM>wn>_-{PP^G>NczNAPC> z5(?)L&8Hi|%O9-Iv|$Z4n_qe?a$->FAZr#-MNS^?!Yv@x2izqm*ydwICDjq3CM>Dc zTi?w{q0JR!wuP|}!Aduh{bJd`C>TWr9BTHFy&{nbj=X*t7O(OW$2#^p8Z&h@O-L2_9E{)5iAj!cikWIra86p(*P?9CNq zlwXRwQ-cc4R}ZL?dyqXY=xUXd@#UWxs{4>L_@*~TA0`TnR*nj9?Hx1+H^);%kzu96 zKzAxZA-rfDYA7a76P7`VCSaM6XlYwV)Vxa?@8{f~DgFvxnh_6T2{;R&Rb(1tfb$zD zn1Al(g9Cmn;BEv0^KxMOeR+7SH=2MaCP34r>@bO`G)|W#Zb0go!gvfF0{)~-?-1m! zgni)7!galN;6qXVeJX^al`7!{sfbmIbnBl)n#-Jr@QEU(2O_c`2qvjSWF|rFJHWp$ zE%=zdGY(5s^B%)~?J{|SRe0S*)9ttoQi|S!ikdVxOP&IV`7@hDD-(Glv$3<713(N` zU}_QfXtJChPP00k>jQUf4b>L8ZYRr?Jgoa3_Sn% zPG4;2<0$PWp^SOj!z-Z6WD&lsoQM~(~y)7>K9^K%LaJ=j+2-pBPs0vnm^N8uEFW=V-(VdrwIb!uwAQ>rl`WdPF`1s}g;o1Jr{QZBPeg669 zUwr+i|Mjoe8t6(T&4PzQ%YX`8-wBBE;su8W8Se2G;EsN7jGTyHvYotX5GSEOKV2PtHXf-x;(1UK^XA0sF zT&bNTq-o}}ZhyK4dU{V8gqegunv2LN5PB+E?=?X-{RDBWT)Q~@q}gWEqQrxLa)M(i zPMkw9Lm0{K>0KbaF#IQmb8kaaqJr>y$feYMs(aVv46H$1}S zt!0T(DQDVv3nJ;b+vZ5}3&b{L;^;x5Ji-UcMO@8$vBtY7QaL1pZb&j68LgdBmhMGd zcaP$?oWlVO|8Dyam1Mq$vO|ZHH+u+$)}>SQKY00N*V=0FjlREsnbL>??m``%65Fqk?|W z638Z4=*i{d)pDhr@;0exb}6=0Cr*AU?r2pn1tu@T%We zigCY1TY5^lPLnAvEo3oqIxd2ubam!UM&3eQ!}w7~)bzZCn9#YWnzp?}BETPpw;Z0|h2K>t4a^6cfa|fmtsS zrxB>BmT{y*QOHz=njc(B67qPAC;*7vXmtIZc1{Q6bmMg`aseJSm5w`P?<+h95hM~Q zcSvs$426s64_&m%pk%udXeonp>A!SMIf*U@lnw)L_(~*mD3b>ShVX2}_HP8y z$2av+OzPGtR1GME z#m4{h*~#@QElT6*R)>+bMhUxPoJ+T{T}SvlNr~jX-S!^^nGX$6^Ir^>Z6o|{m|Qg2 zl>vgl^RL99Wf& zmd%&Q8X_93I9p!W(&MLrE6XU1Go`MN4ip&~#_wTwVbJRCRG*~YDil+J=17$yL{scI z^fY4afe56v>++Yho|EmXa0=W}`B64MVrvyXAd=xEg_}9?&idN5U4q%guk=B72!{+; z-=yivOtRgf4Jy*;C+zjiMySlW$8@g$9Xt^ zLs=6YjjV_g(fSKJmMcTF0$pEeAo!!0xpdAl%m|UzlJ(TG8}dnuKK+=5Z1nows|eY8 zGQS1XTXCMm*~z`;rv~NwM-NY$m-?@PJiC{|y8hT-t}GAQFD3$!kU`(leF-5+5d+9r zYMw9IryW|n1**&>@oepvT^nJd7cD(xCwJ}?NV_zm?{<%xE{9-8n^DqdkPK~$V-9|kLTO0r<&KakVzwbmi%sY~3q zo%P&h#;2B%b`ttR47WC~luFJ(`MGSE`%4Ua9W`voYF}6+LfQapCntqD*&upg(PDvlMHs8nhw{?#Wl4T`krBZpdPI43C(HToKePG6L zygBNLgS&o_L1SZ`8@s09c7kK$!IW@YExu?E$zXH*K20VU?8%y2#r55HA+49Q`|s9g zuF2Xd4l z#Q*K-D#HjM2;o6lcr5gIN#LV&hkoEUctQp=wO-sBLL|JFMjhOx}PAR-CAz{Rr zq5!fo>e>tNWgHMEjY(dLEUoaYZs30OugDou4XukueVk?f$tL1Pb1%EovEo-wQG~-u z`0=dF!D{tfx%Sh)6etPFX&u7#lcfOrUFc-CPhR^J*d`m)q)x@y)hY!CQ!pfiF81Ux z)_ACo!1dssgtw9w^!7=3$=bUz4uyakf-1>~H-b-mH$VY+hX%6;3uo*~5&Ge!S|4B` zwCx}Yl#yb7f(zeyXa*XAi&tIxQy+0J;atAvPzZqmcgHAU6RupY8zP#WI)aFd!n%M~ zRVD1$gv$L7am<56xTQrQ;1c!^KfuVjm_HIi`*C{$i;*Bu_Bf0W@5uYv*ugF|qholi z#6_>-AT%;Uhv*8z4d3>JLnI&&zx{ch6 z;eHSaiAytXZ?ciuIKZ5Q&dWpAo~!UwAGgCF6oV3#e)6Jbf|z!u@sht7$q*DpW(`y% z!h(05jSTQwJVFIhrCd3ApUlkk1@}|_6h=tm3ss`_7}jPW8lid!ltwZ_Lbq=UF35Fr zFaogUf2OwsMj_<4=U-8R{K35qJiQmil}f!)OCTCeh5Z_9n&Z{s!CT5F#44j~>Z^m( zNX(vEHQeQN-;Yaf(lcu@=VG}g3QYq76CEKL$ZKv^)^Z-oKv9?mTV8lmGRryWVb&`UT!UCixh`5i(CX!O+Crc$iZ*pC37 z2sNC98BZsgZNNo@ROcAO4Lt=C9dp;2@*})vguj+O@bh#2xg)~@OoU4-v`)Ktf7Iiq zMuatU&e~>~LD48_Vp8(xV7BdW9aCCo%`(%81plbn>^2Zh=7{@f zGbofXWEC8sgPb2vb8$NpymEiAaFYD)b~obe{+28atB4L=HQ&~`k#&k) zj!n9GD^4k0=oQQJJ3xwcLELUhu&KI1MPKNh*aMdq?!H4QxWO6_nVpCbH;};IMo^3X z-$P2R6<-l5)lXQh&L}<_fvMNK5rTpFOx4utk<~c1(x!<>koKhKNgD)Ogm34TTvg~mr657iy zwJ`+>+bM{B!M*}7;8PA>53k=T-R@J#CAl0(C~+p$S024GT1@`nR>VlY4*R}5`r=w~ zma@;a{E;wF`^+_qFf>NcQ zdMlyGrsaj;URL_BZ zpU47SSI;!UDrBbm10mG6;BQwqfYmJb^YZ9IU#JeOg!lbJSL2&~hh>c%Hm}E-x{nMx$$Y=6id4qN~4^VI=+$ zb`ib}gZiqKpWgUdN68J%H}a+}Cu#9zDn1*h!yLW6bLygyx(H4P9F8;Hw7ZP$%Wu{7 zYgZSzYDiVM6~0>N3t1$4wYP9Y96~^Kn%fx8k^e$G!Y0~5L}NFqsIZ8xklf}POk$cC zl%}}Ea5mVkNiNy3K0#kMChUSi^9m>C+p%T<_j5~u8FZ9Q#ES-l@hY&CjP7#-C0#&g zqRyHUhW%(Mv`bgT*}{Lj!3({d`POMf7=LHi_cF*1uSy3Z7K)4@jOe#sHS>DlHlzIl z!l=Ccb=E6%z@>EkjIuImM2qR+kQ!66R`EhHRK*_kt+J|4EC1L<^9EYU^JO+nW~sv}#?cWFvwoXD-*;Hlb3WWrOa`d&?Rld$IZ zW%RKmU*`8#HNV=M7)<(WJWe4?4#XTM1sb=q0F?)!-K4R=naiRmnIsbWxTR<4%4dcN zwk)z?(;=d+7EJY;^%HGg>v$%Zd__KV269v*_wtJdz+2nrFfMl4e(mCQVbum<@m(RV zbg<>@+(Pg?viam(lL`D6WJR_*m2h3UN1vYec##4LEk{_56Np2s(-Qx{{8 zXK}wnoTxzS^=z}vlk``0Z@-EmRI?%aYzkI1KKVlKP?Y4sJEUW0>5X`X&}_@Hl|BEZ z)?MV8o5u}DHEnZt4{3%zQD0;h!v^K@=hAZ?Slg(tGDAh-FSCCQzM6eQ7g3=mxK&~% z@EavZ%MzD0??pyn#0j)6s-|G*Sbyz{HU-*NbqNjM+7dCZ6Aj3nZ%3pNajOVQHVbGs zfQbIf7U5kMsvLq_9EFSfwp=kw`-zVcY@6bdMr%?S9<(m4T?RMT8hyomlm*pCr9X5~ z=lV(3=WIXJNy72%H>XFWw=ygfs3g~|h{y5GPUU=Z!7gUsxK@X9;O!iKp;R)yH+%O5 z4bI-3YqI&~i|i}=5u=(!IRj9IuMvu>&3gWNGDD##dbmqgEAirkRn=WzS{=I?Kkk5d z?)Olx;QX74^{YdoA7xwB-vI1T*88cVk26VsTq=TE&nC6m2Md35gEw6B*{ER4ZOS#- zOPezSa|)NxXf4n| zZoVZ`d}wuv_k_*pIQ`6J~XjM zfXveF4m^K|rIk`7QD}jf3oPzu5X4WEQF!o<2RiWNX#goZ8r~WAy5%MMa@A|VjGIa` zW@z3a*tQl~hnTnFU*o7qmx(knly#F`abdt5gEQX$_K~39|3N5)3FMzewxYXqa%51ZM|| z%4zAXM?iV@mOzXY!u1DgJv3N?HsbZ>IL&qDr+@E&oUce74`StBD&{o-hk{(xa*Ed{ zyoA{BUI?QgXivQ2C z$d<{=NmS;0{VQwBCy?b3ba+U*`i+7AsikWAW{D1 z^_i;C&%au|CJ>0iTKDa1u{`$BWz{8;5s0vFo}(os^{^Y)WsXoqy5Fg|ZXHNYg?j{% zOR$e1ti|jhbtu$yU?vmONd_>HTlL@xRQOST5{V9mBB{Y;WuwV!3nZeFmo(LIPUwef z-dI2SvjVFWk`gga=!-{78GVqwEw8=gL4*B+*~6${Ze6RZ*5?CbWl5wNJK9OIWs6s7 z$(5Tpd9$vCu)I04z-BvC$g7})=F_i@Zf96vh$!{-r+m!i=?`Ue>WOZ(3f(&b2jc8= z@PKRc$HhN8*QS8NNVCfTuVv?n&28ugSao$7TJx4*8Pec|B6$M@C!NpX5 z)PZNiun81QUrUoegy)H=zD|v_9e{PTT&NO;C4;+ay2^g&Wf2C{?`TF4j$fBtl*4=n zw)`$BY1+4WY5VZB$pxxrB&31~Vn9vY@==N5`H!9ToQmK7_skwwUq5}SUnKbJp1wY| zA>pP6fon5xSAwsJ))`Wz8kU-qkydW1HMp>9%1x4#il+ovQ1GiwdI6Q?c5)_{jkrce zV-(Y80BoP?N^K{OX}Kb{K_wm>k54)WzOuKF%GwF5@bB%$P4gY@VQUyxlgP5U?sjSPG#;`zDhvLB**r@3HpCPD~ zJ!YdDgx?Hq$VFjWhNd_qn}h*!XZjIR&=d{LHwQQ8eVQfij$iUB)gx@=3jeU)^<}q` z<~7ZYXgJN75;f1Qj`3NRcXAvz6svGeEe?e-kbRLKhm}^$hlM+ht?eq9O6I;MTW#&a z)t`j%b}DfvS7JJgrx9+vEmsB!4=n1|G-A z9#nc4fuKv^g6_Z`h645r9=mZSccs!~LfD!}OMBlNq1@Ix%HLP`)K-w>LYDKa3sI7o zLtOs5zUH;%K+<_9dL z6rVo6HnB`Dd8l422oXkZZEgd6FY0r)QEok(-&)NVx0Clt=v^;Pe>;s*NLma}KoO7~ zybaq8{zdLnt^ZRDfl=701Yt$&Rh(sM)~{dRhW@}9in3OPDZsR8-#FiX91A9`s7{V)y9knbV+!0-|%q~VQPA=Y$$~Y}il2surg$LXsy)YRMRTuRq)1`9Y>|sqGZjopa=(S7F z<@=MN8%C)b5ZS^@J_rgYllX>aju796l1bZn(fN57*S?yH2~MSR8ojj*MtCY!k0BNM z)&WJ^bNWy?D1B+3g#CB(mbea&_TLiNSW4!INsJ%G@`Y87=MgQWLesdWb4R+4vhMeS zdsNBz(oaZd#SHO*{nIlTx}s@1dw1PzBjDg8`5!lU&|%F3iv^ELb?Aj5QC^RyVmAqh^^QjXgcYqE- zbn$C42#5PL&D87;6OZmqcooKFh(v&nfrAHS z{qZb&*w9;@Mt6XoDJ4LU+`q-*1)Eo_t=T>oqG^~B`4Vl+>GI~=dF+97p}7#2T(Y3h zVEveX4H~Fx$Pq+99Eqok=dkWhuC9ohjg_MZj4PK;=xZ1zxefD#28|Cw-4J6uv*>Z; z7dmVR0jVm#t4q3-2#M)~Zf>mgO}K4_7Rx-C=#4#7i7~teAIol;~ltK>sEM>gdHgqPJ<~C}rDj-^Y=J zcgQyRKX)>F=MBZDq%%&B@JP}SoC8Ve2u(o)GR-< z9llzmBvF-A#*dbM3#m$*L8pgUs%{kepbBvdMAOY&1g?k{@o!0wUaVg-_{H_FeK@=s|K4jWCc3LqzNxtLr^uk8t1OZAr zRX|eXvOH-T?BLxo<-~n>QluI6WJ&zJa*K2%HY^JDPTQ*50K^dF#CnUyh7VPRL1e08 zz2oX*m{g+L^|d5Xp7Jn(H4jBI?Hs;6Jbmv~xQL)S`>br|>rd+)3zblC(Lp(#Ca!Q^ zx-gx3AP)(E^xuS!+Yc>)kk`Ot7LULE3?n&8^&1S^rGIE`jRXm#3aXH6NUft(LK1X- zdN+TFDeX6$Wjaf!IALzGX5fBGlhR1KQj8;uT*|w8@t+k+{M}ZYH*2+-K=q>EMjsh9 zD=AB^@pIAMZx!T_sAS>|QEXu1yT(4f+NtGQTdaJqBM^zaFmfGy6=9 zKP~5>EMyp*O=)9p7Exn{+MxM=Bmw*QS5S)Oi#h6!gH`w#w*&_6a!!Pugc%79Gf2o^IeTaCpvKOgix+5ZViJOn zq+v=22}vY|_!S!#B1RqLF&n9WI1nyqWM_zkRv1{@gl9w^ScFpCEI%3pBa@zZVgbS+ z<5a{ET#`5+vZ5XS1p6v`dou6OZ`>e8qe2kEYf)t}MV&P8mY#?9^Z^6*rAlNYiT!XWVL#se7cj@W~w-dx>f{VALt zJ(2Wcqq&NY>mBjYjsd|m`7!gRYl_Jwnr-hZX+yi)TqATN;6LoJTF1zuH_<3^Z4^VR zvCiHdLhu0C>8}Ua85L>{mv@c*cw8yS!f9XQ|+YdfY7e1p^yU-MCqzL&4J9MFBarA>RbuJgS(Vay9I_Ad*M5 z-CLsI6!U*wFR(|S8YwBAq7|U0p%{KE1$H1VsSI7emK7dZ)Qbbr`ote}?_Y7wtVB8x zmDx_jL1DHi?-dk{MZ2Mf{tAB_3x7#&@H2YZYVA2g`Mm}8lH32*G2-2uKh{$=8Ug?T zpVI>>Q!7#_!TO5J?Z*-dbhF3J1YbDd;2Np^UG0 zu4Vgt28Jqrpd3dp%Aq>{I=49{aL~w3{(g4me@sEdfl4)C^n#Mfy{zk+B5D>@iU|zKS6~L8MkkW5pBE zS_J7R(Ns3}6jm&)0g4KReJ*h9z)MV_S39dVR{Wru9JZUojba}&Pk^|b-xE(3V@F~b=WG;G?}FY25Tf`CXPCf&r=3}9@+p1 zqfl-J52&fk_AdyuPJGmr3k{B8_hFEx@bGKjgNdgC#NhxnuLaI&a`s5L)vk=o)3AF+Mk_isWU$T%wTH#ER-c& z9S`pQ!H%j+#t&gZ+yND%u>gmN<%veM1=CbYgwnI2!y>)Si94D8g>wOJ@356j=U7A(N7WZsYnl}jXsd9cx2l7%IN%b-ESO0HD(=tpmU66TZH$=U|XRH$i&w0SCGVw&ms}Ny8t3&R@6@G z_EKnpqU$j`FE@0!qLLY?bo~+~KV>2DMC1y}IAc!44m{3>cri(`o6zH_nTib}XL>i^b__EEkaLAY>G@*NBK#H z=2b$`l<%TB`aHr9&M-EyS zI`Qub+cS}~;mFFl5L)C#5B}EQQD4tD5Wht01jf_2nHJ+pSD(xJqb3Al#NU}&V!Cmq zgXK>lE2kuf^zee2U}I-1QZr>kg(@7p(>+q)r}mP=wv^Uji0G@(w&y&6_V@Y!)*Srf z81kqY=X^vXo<8ayd}J_+8A1p2%%_%W!)4M~O$GUbYRFQsEeE|a4p9oQPq%PG*mBp^ z2p@Q@+oteBF1hV(*jS#rcEl1g`iDQ%#b5v7556V{fLehg0yp#^l&TD(Qy~*sIN2#1 zErGl##Eh^$0dxlun_4T*2a4!{C6p?e+=pt1&Y=1dELCjp@wayby!cU|RZOCuNip#F zIdY&yqo#XejPv7GqIA|r5@`sQ$=G=dB220$uz-hhQ%~?87gpErku{G}LOtGV&>r->I%$IJh%2cYJtPZ*4xa%bSQ? zJqt)I&ce_oLDW+yoKkX>~``#neWwDE=i=mh4X+9`^lQIdvQ}&E(Adw(Q z4s250IRD+e<=FIj4GWOt@d`$e0=dgu z9mRg@Vnfn`>|lt0xBr$$99f>glERfgW^Y$6(>F{!KWDhUze`Zb(Keg*!<=h&BDo0R zmMR!YkG)L&>~XagZ7K#4Y}tgqY7xD=*JxuFk!{q|a)Hnk>Jgb+p|G1jLK}PtF{GMD zoQTXaXJq@7ZpA;Dex`6fOtm!Q@ck}?->`(#%5$MWR4u9Vk+Y80Y!;xsgLSxi zft$4qst9s&03?7Um=0G@rz$Iny5?Yq)_wV)(<%WKdMl132 z{L}ngH5kDw@LZ<5o9OI_J*|IA*;VnS{k|4c#I`K=nVTa|J<3#t@iqevY4-B!+u2#x z>e76;24DQ~e@fzaX*is6%ucNtZht53pUc&xkrh;kNv@`yMp?tz;>Z z;||+P(q&0jv_jPRvKnaWj(z(}Xvfgm&N8hBdkDZ3YGLfAdcYD1b7%Hc29I#$Pt-=h z!K*NTIs`Wdx2|(v&{Zk(!5ViEayy8n>a1DKN=@%32J50@F@Wp;%z>W&5bRpOjO$-# ztFF3)+!OXWoME3Ju+Nz`Rb|L&3lc*~pa{QRm>mIt%L%3~&p+d(!5CgvAdx?rg~B}| za1PM`;<@y)$!anG3y5#SuI6Jp@K4aV`Zzj<7^`*knjD8i<;}j5$rQ7J#3`J~nkL*B2V2M$Imf(LU^v1uYJMb7b@r0A}D!jLk-MZGa)X~s@VpAx1_ zQ6h~kHb%GjlaF5MOe8o7Mu9KsQbfwQA>+;F{cbiX^@wanb`AX!NrsI{^>Y+kBUu9$ zi1Jtn3hz!XxrO|eR{%;YKU>&$o#v+LS{$IN<|__IHpmd4`l6n5gLMixN|%3lsbRYz zfAM6G+c|4liQJx1r(dt-@>{GgE($lHYC{R%+_FN!tQB{WVQ$DBqxP;O`0_16m9!6~ zwNyr<1@!ZNn3y)-M+k7xe|hxc z@bwwVj4k80IF*8dLl~1&HCGz`q)94zseBSp^pySf#8vwbsXm~ZkQAj9%a74IdUS=o zn1$v+!Fft}vwQhZiz5BIs?z?DNqTodTPXQzn!+P)&TRNP+0 za1VS_I%hO&nX;ZJ1Kyu#F)3sXdAW-9d-X~;-UhF*{a(_xE7Phw z740Q#bm&-U2nHLx+4;Wi4~p6gZBL+(ILy40LSH~#8C zaq9JOUj_{_d?_rb+A<$>Rw00$mFs)KJ^LEI z&(1$GHgsLFwey36x6e6%=REHH=6OCktmFxa$O6XCSW$DWh)zhfI{h+w+QuCbr8Et1 zf(;bE@X8~cTC|N5DtaWvTfUt5y0b=wdif7-x#BH$tgM7@r@k+){gC76<}0!i?2@U@ z^L`=pcGZDxQ}=VW@#atZr?tWU;<8^fnSb^y5@N+dU_|5dqCoM8F`w_=$(Eph{H9a7Z45=P{@J(`0xnR zXvp%}!lR@R^zPs_2#IZX_Cv%w1fE(@AwPoCWIVNH&GKzahbl(Ttl?mSKfOIY4CTYi z?y6l| zu663U*%ZPORdQi~k;^;#afy|fYarRBqFTUp=v$f)(%<7Y!n+JXXxPDdk{O_s7@OXPBr;ZC zML>|q6eMeOw3^t(+3l=mKRV78@xv!8ko;mZPi2IqqAb_TSBh__%2^5hz@9b;7!rmH zZ0yO+q$uxTVP_Gq&fbwixf62=sRrhi_%&F#Bd4dF&vf>C^ec^O9ZJbuqFa#8?j~ZA$o#>1< z%&ZVA`?U6YC)9wF<|nbey;EkLlR!o_xQ9lHv3(jKqc zH5l2YrSCKvT)w@lY)mj4ffAZCi^k?G3khX`l@FtamZ}%dtS(BdpJj3<0xCYEBRFrw z;I>{14fRT3_myb`^=l{oFm^_bp9t<94SeVW9g3Q=48$ml(Y95=9(Pr`7DgG=g3x7yGIn2Wn%8Fl~lCbwqda=~E#0+sPX1WpcL5H#O!jY~K1lvr^bSJAt zWST}H-GA4j5kH;Y(yJqRMx*PDq+_1TT~n-t!;W?~>4`6LcJ=6zpE=<4epB_qsG;_^ zKR^5C??b8rr(ekuW7!tjJBg4W`j)d%dX7q&2^UawEf~q6saTZ87RsV$ueW@ToOolQ+!n2a>4b3aJvDN)d@dPc$e cm%N)*N1$qY^1WCzuOA%^)_#K#+M_u8PnSObZ2$lO literal 0 HcmV?d00001 diff --git a/i18n/en_US/LC_MESSAGES/musicbot_logs.po b/i18n/en_US/LC_MESSAGES/musicbot_logs.po new file mode 100644 index 000000000..8a428b1c2 --- /dev/null +++ b/i18n/en_US/LC_MESSAGES/musicbot_logs.po @@ -0,0 +1,4077 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: 2024-11-08 19:27\n" +"Last-Translator: \n" +"Language-Team: English\n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: en\n" +"X-Crowdin-File: /fae/i18n/musicbot_logs.pot\n" +"X-Crowdin-File-ID: 26\n" + +#: musicbot/aliases.py:52 +msgid "Aliases file not found, copying example_aliases.json" +msgstr "Aliases file not found, copying example_aliases.json" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" + +#: musicbot/aliases.py:80 +#, python-format +msgid "Failed to load aliases file: %s" +msgstr "Failed to load aliases file: %s" + +#: musicbot/aliases.py:88 +#, python-format +msgid "Failed to parse aliases file: %s\n" +"Ensure the file contains valid JSON and restart the bot." +msgstr "Failed to parse aliases file: %s\n" +"Ensure the file contains valid JSON and restart the bot." + +#: musicbot/aliases.py:114 +#, python-format +msgid "Aliases skipped for non-existent command: %(command)s -> %(aliases)s" +msgstr "Aliases skipped for non-existent command: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "Alias `%(alias)s` skipped as already exists on command: %(command)s" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "Error loading auto playlist file: %s" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "Removing unplayable song from playlist, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "Removing song from playlist, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "Could not log information about the playlist URL removal." + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "Updating playlist file..." + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "Failed to save playlist file: %s" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "URL already in playlist %s, ignoring" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "Adding new URL to playlist, %(playlist)s: %(track)s" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "Initializing MusicBot %s" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "Loop is closed, cannot create task for: %r" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "Unhandled exception for task: %r" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "Unhandled exception for task: %(task)r -- %(raw_error)s" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "Spotify did not provide us with a token. Disabling." + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "Authenticated with Spotify successfully using client ID and secret." + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "The config did not have Spotify app credentials, attempting to use guest mode." + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "Authenticated with Spotify successfully using guest mode." + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "Could not start Spotify client using guest mode. Details: %s." + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "Initialized, now connecting to discord." + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "Network ping test is disabled via config." + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "Network ping test is closing down." + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "Could not resolve ping target." + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "Network ping test cancelled." + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "Network testing via HTTP does not have a session to borrow." + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "Could not locate `ping` executable in your environment." + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "MusicBot detected network is available again." + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "Voiceprint is not connected, waiting to resume Multiplayer..." + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "Resuming playback of player: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "MusicBot detected a network outage." + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "Checking for channels to auto-join or resume..." + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "Guild not available, cannot auto join: %(id)s/%(name)s" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "Found resumable voice channel: %(channel)s in guild: %(guild)s" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "Will try resuming voice session instead of Auto-Joining channel: %s" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "Found owner in voice channel: %s" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "Ignoring resumable channel, AutoSummon to owner in channel: %s" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "Already connected to channel: %(channel)s in guild: %(guild)s" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "Attempting to join channel: %(channel)s in guild: %(guild)s" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "Discarding MusicPlayer and making a new one..." + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "MusicBot will make a new MusicPlayer now..." + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "Finished joining configured channels." + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "Member is not voice-enabled and cannot use this command." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "You cannot use this command when not in the voice channel." + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "Getting bot Application Info." + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "MusicBot does not have permission to Connect in channel: %s" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBot does not have permission to Connect in channel: `%(name)s`" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "MusicBot does not have permission to Speak in channel: %s" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBot does not have permission to Speak in channel: `%(name)s`" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "Reusing bots VoiceClient from guild: %s" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "Forcing disconnect on stale VoiceClient in guild: %s" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "Disconnect failed or was cancelled?" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "MusicBot is unable to connect to the channel right now: %(channel)s" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "MusicBot has a VoiceClient now..." + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "MusicBot VoiceClient connection attempt was cancelled. No retry." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot does not have permission to speak." + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "MusicBot could not request to speak." + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "Disconnecting a MusicPlayer in guild: %s" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "Disconnecting VoiceClient before we kill the MusicPlayer." + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "The disconnect failed or was cancelled." + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "Disconnecting a rogue VoiceClient in guild: %s" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "Disconnecting a non-guild VoiceClient..." + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "Guild (%(guild)s) wants a player, optional: %(player)r" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." +msgstr "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "MusicPlayer has a VoiceClient that is not connected." + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "MusicPlayer obj: %r" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "VoiceClient obj: %r" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "Created player via deserialization for guild %(guild_id)s with %(number)s entries" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Something is wrong, we didn't get the VoiceClient." + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "Running on_player_play" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "Setting URL history guild %(guild_id)s == %(url)s" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "No thumbnail set for entry with URL: %s" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "no channel to put now playing message into" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "ignored now-playing message as it was already posted." + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "Running on_player_resume" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "Running on_player_pause" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "Running on_player_stop" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "Running on_player_finished_playing" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "Event loop is closed, nothing else to do here." + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "Logout under way, ignoring this event." + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "VoiceClient says it is not connected, nothing else we can do here." + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "Player finished and queue is empty, leaving voice channel..." + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "Looping over queue to expunge songs with missing author..." + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "No playable songs in the Guild autoplaylist, disabling." + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "No content in current autoplaylist. Filling with new music..." + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "Looping over player autoplaylist..." + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "Error while processing song \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "Error extracting song \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr "MusicBot needs to stop the auto playlist extraction and bail." + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "MusicBot got an unhandled exception in player finished event." + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "Expanding auto playlist with entries extracted from: %s" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "Error adding song from autoplaylist: %s" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "Exception data for above error:" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "No playable songs in the autoplaylist, disabling." + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "Running on_player_entry_added" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "Automatically skipping auto-playlist entry for queued entry." + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "MusicPlayer exception for entry: %r" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "MusicPlayer exception." + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "Auto playlist track could not be played: %r" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "Logout under way, ignoring status update event." + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "Update bot status: %(status)s -- %(activity)r" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "Serializing queue for %s" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "Deserializing queue for %s" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "Writing current song for %s" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "Cannot send non-response object: %r" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Tried sending an invalid response object." + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "sending embed to: %s" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "sending text to: %s" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "Cannot send message to \"%s\", no permission" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "Cannot send message to \"%s\", invalid or deleted channel" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "Message is over the message size limit (%s)" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "Could not send private message, sending in fallback channel instead." + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "Rate limited send message, retrying in %s seconds." + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "Cancelled message retry for: %s" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "Rate limited send message, but cannot retry!" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "Failed to send message in fallback channel." + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "Failed to send due to an HTTP error." + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "Cannot delete message \"%s\", no permission" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "Cannot delete message \"%s\", message not found" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "Rate limited message delete, retrying in %s seconds." + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "Rate limited message delete, but cannot retry!" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "Failed to delete message" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "Got HTTPException trying to delete message: %s" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "Cannot edit message \"%s\", message not found" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "Sending message instead" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "Rate limited edit message, retrying in %s seconds." + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "Cancelled message edit for: %s" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "Failed to edit message" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "Got HTTPException trying to edit message %s to: %s" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "Cancelled delete for message (ID: %(id)s): %(content)s" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "Caught a signal from the OS: %s" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "Disconnecting and closing down MusicBot..." + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "Exception thrown while handling interrupt signal!" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "MusicBot is now doing shutdown steps..." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "Waiting for download threads to finish up..." + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "Will wait for task: %(name)s (%(func)s)" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "Will try to cancel task: %(name)s (%(func)s)" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "Awaiting pending tasks..." + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "Closing HTTP Connector." + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "Closing aiohttp session." + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "Logout has been called." + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "Exception in %(event)s:\n" +"%(error)s" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "Exception in %s" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "MusicBot resumed a session with discord." + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "Finish on_ready" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "Logged in, now getting MusicBot ready..." + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "ClientUser is somehow none, we gotta bail..." + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "Owner: %(id)s/%(name)s#%(desc)s\n" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "Guild List:" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr " - %s" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "Left %s due to bot owner not found" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "Not proceeding with checks in %s servers due to unavailability" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "Owner could not be found on any guild (id: %s)\n" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "Owner unknown, bot is not on any guilds." + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "Got None for bound channel with ID: %d" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "Cannot bind to non Messageable channel with ID: %d" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "Bound to text channels:" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr " - %(guild)s/%(channel)s" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "Not bound to any text channels" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "Got None for auto join channel with ID: %d" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "Cannot auto join a Private/Non-Guild channel with ID: %d" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "Cannot auto join to non-connectable channel with ID: %d" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr "Auto joining voice channels:" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "Not auto joining any voice channels" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "Event on_ready has fired %s times" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "Getting application info." + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "Ensuring data folders exist" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "Validating config" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "Validating permissions config" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "Disabled" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "Enabled" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "Options:" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr " Command prefix: %s" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr " Default volume: %d%%" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr " Skip threshold: %(num)d votes or %(percent).0f%%" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr " Now Playing @mentions: %s" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr " Auto-Summon: %s" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr " Auto-Playlist: %(status)s (order: %(order)s)" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "random" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "sequential" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr " Auto-Pause: %s" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr " Delete Messages: %s" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr " Delete Invoking: %s" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr " Delete Now Playing: %s" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr " Debug Mode: %s" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr " Downloaded songs will be %s" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr " Delete if unused for %d days" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr " Delete if size exceeds %s" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr " Status message: %s" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr " Write current songs to file: %s" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr " Author insta-skip: %s" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr " Embeds: %s" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr " Spotify integration: %s" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr " Legacy skip: %s" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr " Leave non owners: %s" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr " Leave inactive VC: %s" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr " Timeout: %s seconds" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr " Leave at song end/empty queue: %s" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr " Leave when player idles: %s" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr " Timeout: %d seconds" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr " Self Deafen: %s" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr " Per-server command prefix: %s" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr " Search List: %s" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr " Round Robin Queue: %s" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "The requested song `%(subject)s` is blocked by the song block list." + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "Channel activity already waiting in guild: %s" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "Channel activity timer for %s has expired. Disconnecting." + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Channel activity timer canceled for: %(channel)s in %(guild)s" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "Ignoring player inactivity in auto-joined channel: %s" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "Player activity timer already waiting in guild: %s" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "Player activity timer for %s has expired. Disconnecting." + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Player activity timer canceled for: %(channel)s in %(guild)s" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "Player activity timer is being reset." + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "No such command" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "You must mention a user or provide their ID number." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Invalid sub-command given. Use `help blockuser` for usage examples." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot could not find the user(s) you specified." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "The owner cannot be added to the block list." + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "Not adding user to block list, already blocked: %(id)s/%(name)s" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "Not removing user from block list, not listed: %(id)s/%(name)s" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "Cannot add the users you listed, they are already added." + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "You must provide a song subject if no song is currently playing." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Invalid sub-command given. Use `help blocksong` for usage examples." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "Subject `%(subject)s` is already in the song block list." + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "The subject is not in the song block list and cannot be removed." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Invalid sub-command given. Use `help autoplaylist` for usage examples." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "The supplied song link is invalid" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "The queue is empty. Add some songs with a play command!" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "This song is already in the autoplaylist." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "This song is not yet in the autoplaylist." + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "You must provide a playlist filename." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "You are not allowed to request playlists" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "Playlist has too many entries (%(songs)s but max is %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "Ignoring auto-pause due to network outage." + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "Already processing auto-pause, ignoring this event." + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "Auto-pause waiting was cancelled." + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "A new MusicPlayer is being connected, ignoring old auto-pause event." + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "Playing in an empty voice channel, running auto pause for guild: %s" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "Previously auto paused player is unpausing for guild: %s" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "Cannot use seek if there is nothing playing." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "Cannot use seek on current track, it has an unknown duration." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "Seeking is not supported for streams." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "Cannot use seek without a time to position playback." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "Could not convert `%(input)s` to a valid time in seconds." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Invalid sub-command. Use the command `help repeat` for usage examples." + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "The player is not currently looping." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Song positions must be integers!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "You gave a position outside the playlist size!" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "Could not prompt for playlist playback, no message to add reactions to." + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "Local media playback is not enabled." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "Spotify URL is invalid or not currently supported." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Detected a Spotify URL, but Spotify is not enabled." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "You have reached your enqueued song limit (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "Karaoke mode is enabled, please try again when its disabled!" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "Issue with extract_info(): " + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Failed to extract info due to error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "That video cannot be played. Try using the stream command." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "YouTube search returned no results for: %(url)s" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "No songs were added, all songs were over max duration (%(max)s seconds)" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "Extracted an entry with 'youtube:playlist' as extractor key" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "Song duration exceeds limit (%(length)s > %(max)s)" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "Added song(s) at position %s" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "Cannot estimate time until playing for position: %d" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "Failed to get info from the stream request: %s" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Streaming playlists is not yet supported." + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "You have reached your playlist item limit (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Please specify a search query. Use `help search` for more information." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "You cannot search for more than %(max)s videos" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "Waiting for summon lock: %s" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "Summon lock acquired for: %s" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "You are not connected to voice. Try joining a voice channel!" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "Joining %(guild)s/%(channel)s" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot cannot follow a user that is not a member of the server." + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Player is not playing." + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Nothing in the queue to remove!" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "Nothing found in the queue from user `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Invalid entry number. Use the queue command to find queue positions." + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Can't skip! The player is not playing!" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "You do not have permission to force skip a looped song." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "You do not have permission to force skip." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "You do not have permission to skip a looped song." + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` is not a valid number" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "Speed cannot be applied to streamed media." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "You must provide a speed to set." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "The speed you provided is invalid. Use a number between 0.5 and 100." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Invalid option for command: `%(option)s`" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Failed to save aliases due to error:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "You must supply an alias and a command to alias" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "You must supply an alias name to remove." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "The alias `%(alias)s` does not exist." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "Config cannot use channel and user mentions at the same time." + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Unable to reload Config due to the following error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Could not resolve section name from option name. Please provide a valid section and option name." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "The option given is ambiguous, please provide a section name." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "You must provide a section name and option name for this command." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "The option `%(option)s` is not available." + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "Option `%(option)s` is not editable. Cannot save to disk." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Failed to save the option: `%(option)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "Option `%(option)s` is not editable, value cannot be displayed." + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "Option `%(option)s` is not editable. Cannot update setting." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "You must provide a section, option, and value for this sub command." + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "Doing set with on %(config)s == %(value)s" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "Option `%(option)s` was not updated!" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "Option `%(option)s` is not editable. Cannot reset to default." + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "Resetting %(config)s to default %(value)s" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "Option `%(option)s` was not reset to default!" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "The option command is deprecated, use the config command instead." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Invalid option specified, use: info, update, or clear" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Failed** to delete cache, check logs for more info..." + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "Queue page argument must be a whole number." + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "There are no songs queued! Queue something with a play command." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "Skipped the current playlist entry." + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "Not enough entries to paginate the queue." + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "Could not post queue message, no message to add reactions to." + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Cannot use purge on private DM channel." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "The given URL was not a valid URL." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Could not extract info from input url\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "This does not seem to be a playlist." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "Invalid user ID or server nickname, please double-check the ID and try again." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Could not determine the discord User. Try again." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Permissions cannot use channel and user mentions at the same time." + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "You must provide a group or option name for this command." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "You must provide a group, option, and value to set for this command." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "The %(option)s sub-command requires a group and permission name." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "The permission `%(option)s` is not available." + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Cannot add group `%(group)s` it already exists." + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Cannot remove built-in group." + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "The owner group is not editable." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Failed to save the group: `%(group)s`" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "Doing set on %(option)s with value: %(value)s" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Permission `%(option)s` was not updated!" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Failed to change username due to error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Unable to change nickname: no permission." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Failed to set nickname due to error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Custom emoji must be from this server to use as a prefix." + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "You must provide a URL or attach a file." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Unable to change avatar due to error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "MusicBot found a %s with no guild! This could be a problem." + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Not currently connected to server `%(guild)s`" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "You must provide an ID or name." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "No guild was found with the ID or name `%(input)s`" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "Activating debug breakpoint ID: %(uuid)s" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Could not import `objgraph`, is it installed?" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "Debug code ran with eval()." + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "Debug code ran with exec()." + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "Debug code failed to execute." + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "Sub-command must be one of: %(options)s" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Could not locate git executable." + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "Failed while checking for updates via git command." + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "Package missing meta in pip report." + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "Failed to get pip update status due to some error." + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "Got a strange voice client entry." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookies already enabled." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Cookies must be uploaded to be enabled. (Missing cookies file.)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Could not enable cookies due to error: %(raw_error)s" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "No attached uploads were found, try again while uploading a cookie file." + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "Could not remove old, disabled cookies file: %(raw_error)s" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Error downloading the cookies file from discord: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Could not save cookies to disk: %(raw_error)s" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "Got a message with no channel, somehow: %s" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "Ignoring command from myself (%s)" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "Ignoring command from other bot (%s)" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "Ignoring command from channel of type: %s" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "User in block list: %(id)s/%(name)s tried command: %(command)s" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "Message from %(id)s/%(name)s: %(message)s" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "This command is not allowed for your permissions group: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "This command requires you to be in a Voice channel." + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "Invalid command usage, missing values for params: %(params)r" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "Error in %(command)s: %(err_name)s: %(err_text)s" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "Exception while handling command: %(command)s" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "Cannot generate help for missing command: %s" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "Missing help data for command: %s" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "Leaving voice channel %s in %s due to inactivity." + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "MusicBot has become connected." + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "MusicBot has become disconnected." + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "Got a Socket Event: %s" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "VoiceState updated before on_ready finished" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "Ignoring %s in %s as it is a bound voice channel." + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "%s has been detected as empty. Handling timeouts." + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "A user joined %s, cancelling timer." + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "The bot got moved and the voice channel %s is empty. Handling timeouts." + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "The bot got moved and the voice channel %s is not empty." + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "No longer following user %s" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "Following user `%(user)s` to channel: %(channel)s" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "VoiceState disconnect before.channel is None." + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "Cannot find the auto-joined channel, was it deleted? Guild: %s" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "Reconnecting to auto-joined guild on channel: %s" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "Cannot auto join channel: %s" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "Bot has been added to guild: %s" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "Left guild '%s' due to bot owner not found." + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "Creating data folder for guild %s" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "Bot has been removed from guild: %s" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "Updated guild list:" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "Guild \"%s\" has become available." + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "Resuming player in \"%s\" due to availability." + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "Guild \"%s\" has become unavailable." + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "Pausing player in \"%s\" due to unavailability." + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "Guild update for: %s" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "Channel update for: %(channel)s -- %(changes)s" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "Creating %s" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "Loading config from: %s" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "An exception was thrown while validating AudioCachePath." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "Audio Cache will be stored in: %s" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "StatusMessage config option is too long, it will be limited to 128 characters." + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "Validating options with service data..." + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "Acquired owner ID via API" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "MusicBot does not have a user instance, cannot proceed." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "Config options file not found. Checking for alternatives..." + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "Copying existing example options file: %(example_file)s" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "Generated a new %(example_file)s and copied it to %(option_file)s" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "Something went wrong while trying to find a config option file." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "Dev Bug! Config option has getter that is not available." + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "Dev Bug! Config option has invalid type, getter and default must be the same type." + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "Option was missing previously." + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "Config section not in parsed config! Missing: %s" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "Saved config option: %(config)s = %(value)s" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "Failed to save config: %s" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "Option names are not unique between INI sections! Resolver is disabled." + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "Failed to save default INI file at: %s" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "Upgrading config file with renamed options..." + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "Failed to upgrade config. You'll need to upgrade it manually." + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "Block list file not found: %s" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "Could not load block list from file: %s" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "Could not update the block list file: %s" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr "Loaded User Block list with %s entries." + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "We found a legacy blacklist file, it will be renamed to: %s" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr "Loaded a Song Block list with %s entries." + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "Cannot load data for guild with ID 0. This is likely a bug in the code!" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "No file for guild %(id)s/%(name)s" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "Loading guild data for guild with ID: %(id)s/%(name)s" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "An OS error prevented reading guild data file: %s" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "Cannot save data for guild with ID 0. This is likely a bug in the code!" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "Could not save guild specific data due to OS Error." + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "Failed to serialize guild specific data due to invalid data." + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "Forcing YTDLP to use User Agent: %s" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "MusicBot will use cookies for yt-dlp from: %s" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "Yt-dlp will use your configured proxy server." + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD seems to have no headers..." + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "Checking media headers failed due to timeout." + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "Failed HEAD request for: %s" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "HEAD Request exception: " + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "Sanitized YTDL Extraction Info (not JSON): %s" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "Song info extraction returned no data." + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Cannot continue extraction, event loop is closed." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "Spotify URL is invalid or not supported." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Error in yt-dlp while downloading data: %(raw_error)s" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "Download Error with stream URL" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "Assuming content is a direct stream" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Cannot stream an invalid URL." + +#: musicbot/downloader.py:517 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "Caught NoSupportingHandlers, trying again after replacing colon with space." + +#: musicbot/downloader.py:544 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "Extractor youtube:search returned single-entry result, replacing base info with entry info." + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "Called safe_extract_info with: %(args)s, %(kws)s" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "The local media file could not be found." + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "Missing __input_subject from YtdlpResponseDict" + +#: musicbot/downloader.py:623 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "Warning, duration error for: %(url)s" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "module 'pymediainfo' not found, will fall back to ffprobe." + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "Created future for %r" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "Completed futures for %(entry)r with %(callback)r" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "Unhandled exception in _for_each_future callback." + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "Starting asyncio subprocess (%(process)s) with command: %(run)s" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "Entry data is missing version number, cannot deserialize." + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "Entry data has the wrong version number, cannot deserialize." + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "Deserialized URLPlaylistEntry cannot find channel with ID: %s" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "Deserialized URLPlaylistEntry has the wrong channel type: %s" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized URLPlaylistEntry cannot find author with ID: %s" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "Could not load %s" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Cannot download Spotify links, processing error with type: %(type)s" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "Getting ready for entry: %r" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "Download cached with different extension..." + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "Local size different from remote size. Re-downloading..." + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "Download already cached at: %s" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "Got duration of %(time)s seconds for file: %(file)s" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." +msgstr "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "Exception while checking entry data." + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "Trying to get duration via pymediainfo for: %s" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "Failed to get duration via pymediainfo." + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "Trying to get duration via ffprobe for: %s" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "Could not locate ffprobe in your path!" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "ffprobe returned something that could not be used." + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "ffprobe could not be executed for some reason." + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "Calculating mean volume of: %s" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "Could not locate ffmpeg on your path!" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr "Could not parse 'I' in normalize json." + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr "Could not parse 'LRA' in normalize json." + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr "Could not parse 'TP' in normalize json." + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr "Could not parse 'thresh' in normalize json." + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr "Could not parse 'offset' in normalize json." + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "Download started: %r" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "Download attempt %s of 3..." + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "Download failed, not retrying! Reason: %(raw_error)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Download did not complete due to an error: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Download failed due to a yt-dlp error: %(raw_error)s" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "Extraction encountered an unhandled exception." + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Download failed due to an unhandled exception: %(raw_error)s" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "Download failed: %r" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Failed to extract data for the requested media." + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "Download complete: %r" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "Deserialized StreamPlaylistEntry has the wrong channel type: %s" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized StreamPlaylistEntry cannot find author with ID: %s" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "Got duration of %(seconds)s seconds for file: %(file)s" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "Failed to delete cache file: %s" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "Audio cache directory has been removed." + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "Audio cache directory could not be removed or renamed." + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "Audio cache directory could not be removed." + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "Audio cache has no limits set, nothing to delete." + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "Audio cache deleted %(number)s file(s), total of %(size)s removed." + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "Audio cache is now %(size)s over %(number)s file(s)." + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "Audio cache directory is missing, nothing to delete." + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "Audio cache file is from autoplaylist but marked as busted, ignoring it." + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "Cache level requires cleanup. %s" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr "Auto playlist has no cache map, moving on." + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr "Loaded auto playlist cache map with %s entries." + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr "Failed to load auto playlist cache map." + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr "Saved auto playlist cache map with %s entries." + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr "Failed to save auto playlist cache map." + +#: musicbot/filecache.py:355 +#, python-format +msgid "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "Lang Argument Error: %s" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "Failed to load log translations for any of: [%s] in: %s" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "Failed to load discord translations for any of: [%s] in: %s" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "Loading JSON file: %s" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "Error parsing %s as JSON" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "Could not grab data from JSON key: %s" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "Skipping logger setup, already set up" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "Log level was previously set via override to: %s" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "Changing log level to: %s" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr "MusicBot loggers have been called to shut down." + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "Permissions file not found, copying from: %s" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "Error copying example permissions file: %s" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr "Config 'OwnerID' is set auto, will set correctly later." + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "Validating permissions..." + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr "Setting auto 'OwnerID' for owner permissions group." + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "Updating group in permissions file: %s" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "Deleting group from permissions file: %s" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "Adding new group to permissions file: %s" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "Saving permissions file now." + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "ConfigUpdater could not parse the permissions file!" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "You have a duplicate section, fix your Permissions file!" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "Failed to save permissions group: %s" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "Dev Bug! Permission has getter that is not available." + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "Dev Bug! Permission has invalid type, getter and default must be the same type." + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "Max search items can't be larger than 100. Setting to 100." + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "Cleanup got called on the audio source: %r" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "MusicPlayer.skip() is called: %s" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "MusicPlayer.stop() is called: %s" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "Guild or network unavailable, cannot resume playback." + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "MusicPlayer.resume() is called: %s" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "MusicPlayer.pause() is called: %s" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "MusicPlayer.kill() is called: %s" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "Playback finished, but _current_entry is None." + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "Possible Warning from kill_current_player()" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "MusicPlayer.play() is called: %s" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "MusicPlayer is dead, cannot play." + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "Guild or network unavailable, cannot start playback." + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "MusicPlayer was previously paused, resuming current player." + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "MusicPlayer already locked for playback, this call is ignored." + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "Failed to get next entry." + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "Failed to process entry for playback." + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "Playing %(source)r using %(client)r" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "Skipping deletion of '%s', found song in queue" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "Deleting file: %s" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "File deleted: %s" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "Cannot delete file, it is currently in use." + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr "Cannot delete file due to a permission error." + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "Cannot delete file, it was not found." + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "Error while trying to delete file." + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "Could not delete file, giving up and moving on" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "Deserialize returned an object that is not a MusicPlayer: %s" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "Failed to deserialize player" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "Data from ffmpeg: %s" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "Error from ffmpeg: %s" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "Warning from ffmpeg: %s" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "Unknown error decoding message from ffmpeg" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "Decoded data from ffmpeg: %s" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "Adding stream entry for URL: %(url)s" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Could not extract information" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "This is a playlist." + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "Entry info appears to be a stream, adding stream entry..." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Invalid content type `%(type)s` for URL: %(url)s" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "Got text/html for content-type, this might be a stream." + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "Questionable content-type \"%(type)s\" for url: %(url)s" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "Adding URLPlaylistEntry for: %(subject)s" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "Adding LocalFilePlaylistEntry for: %(subject)s" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "Ignored video from compound playlist link with ID: %s" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "Not allowing entry that is in song block list: %(title)s URL: %(url)s" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "Ignoring song in entries by '%s', duration longer than permitted maximum." + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "Not adding YouTube video because it is marked private or deleted: %s" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "Could not add item" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "Item: %s" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "Skipped %s bad entries" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "Reorder looping over entries." + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "Pre-downloading next track: %r" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "no duration data" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "no duration data in current entry" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Invalid track_data, must be of type `track` got `%(type)s`" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "Ignored non-track entry in playlist with type: %s" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "Spotify Album total tacks: %(total)s Next URL: %(url)s" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "Getting Spotify Album Next URL: %s" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "Spotify Album has more tracks than initial total." + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "Getting Spotify Playlist Next URL: %s" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "Spotify Playlist has more tracks than initial total." + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "Spotify Playlist contained %s usable tracks." + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Response status is not OK: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "Response JSON did not decode to a dict!" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "Failed making GET request to url: %s" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Could not make GET to URL: %(url)s Reason: %(raw_error)s" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "Failed making POST request to url: %s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Could not make POST to URL: %(url)s Reason: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Failed to get a guest token from Spotify, please try specifying client ID and client secret" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "Created a new Guest Mode access token." + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "API response did not contain the expected data. Missing key: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "API response contained unexpected data.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Requested a token from Spotify, did not end up getting one" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "Created a new Client Mode access token." + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "API response status is not OK: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "Failed to get Spotify Guest Token." + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "Failed to get Guest Token due to: %(raw_error)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Only the owner can use this command." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Only dev users can use this command." + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr "Cannot count members when voice_channel is None." + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "Failed to save ytdlp oauth2 token data due to: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr "Loading YouTube TV OAuth2 token data." + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "Failed to load ytdlp oauth2 token data due to: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "Storing YouTube TV OAuth2 token data" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr "Invalid cached OAuth2 token data." + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "Access token expired, refreshing" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "Refreshing YouTube TV oauth2 token..." + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "Starting oauth2 flow..." + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "The application may hang until authorization time out if closed at this point. This is normal." + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr "Timed out while waiting for OAuth2 token." + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "The device code has expired, restarting authorization flow for yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "Yt-dlp OAuth2 authorization successful." + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "Adding OAuth2 Plugin to Yt-dlp IE: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "Default Yt-dlp Clients: %s" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "Could not find git executable." + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "Attempting to upgrade with `git pull` on current path." + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "Result of git pull: %s" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "Upgrade failed, you need to run `git pull` manually." + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "Cannot execute pip." + +#: run.py:180 +msgid "Error using -m method" +msgstr "Error using -m method" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "PIP failed while calling sub-process." + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr "PIP failed due to Permission Error." + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "PIP failed due to missing Python executable? (%s)" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "PIP failed due to OSError." + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "Could not decode pip update report JSON." + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "Cannot locate or execute python -m pip" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "Attempting to upgrade with `%s` on current path..." + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "Result of pip upgrade:\n" +"%s" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "Result exit code from pip upgrade: %s" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "Upgrade failed to execute or we could not understand the output" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "You may need to run `%s` manually." + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "Press enter to continue . . ." + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "Starting sanity checks" + +#: run.py:361 +msgid "Required checks passed." +msgstr "Required checks passed." + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "Skipped checking for updates." + +#: run.py:376 +msgid "Optional checks passed." +msgstr "Optional checks passed." + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "Checking for Python 3.8+" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "Python 3.8+ is required. This version is %s" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "Attempting to locate Python 3.8..." + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "Could not locate py.exe" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "Could not execute `py.exe -3.8` " + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "Python 3 found. Launching bot..." + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "Trying \"python3.8\"" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "Could not locate python3.8 on path." + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "Ensuring we're in the right environment" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "Failed environment check, %s" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "Current working directory does not seem to be writable" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "Please move the bot to a folder that is writable" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "Detected FFmpeg is installed at: %s" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "Adding local bins/ folder environment PATH for bundled ffmpeg..." + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "On macOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "Less than %sMB of free space remains on this device" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "\n" +"Checking for updates to MusicBot or dependencies..." + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "No MusicBot updates available via `git` command." + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "Could not check for updates using `git` commands. You should check manually." + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "The following packages can be updated:\n" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr " %s to version: %s\n" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "No dependency updates available via `pip` command." + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "Could not check for updates using `pip` commands. You should check manually." + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "You can run a guided update by using the command:\n" +" %s ./update.py" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "Value is above the maximum limit." + +#: run.py:638 +msgid "Value must not be negative." +msgstr "Value must not be negative." + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "Value for Max Logs Kept must be a number from 0 to %s" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "Log level '%s' is not available." + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "Log Level must be one of: %s" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." + +#: run.py:669 +msgid "Available via Github:" +msgstr "Available via GitHub:" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "For more help and support with this bot, join our discord:" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "This software is provided under the MIT License." + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "See the `LICENSE` text file for complete details." + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "Override the default / system detected language for all text in MusicBot." + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "Use this language for all server-side log messages from MusicBot." + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "Print the MusicBot version information and exit." + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "Skip all optional startup checks, including the update check." + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "Skip only the disk space check at startup." + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "Skip only the update check at startup." + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "Disable MusicBot from trying to install dependencies when it cannot import them." + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "Override the log level settings set in config. Must be one of: %s" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "Version: %s" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "Opened a new MusicBot instance. This terminal can be safely closed!" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "Loading MusicBot version: %s" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "Log opened: %s" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "Python version: %s" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "Changing working directory to: %s" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "Certificate error is not a verification error, not trying certifi and exiting." + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "Here is the exact error, it could be a bug." + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "Could not get Issuer Certificate from default trust store, trying certifi instead." + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "Syntax error (modification detected, did you edit the code?)" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "Syntax error (this is a bug, not your fault)" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "Attempting to install MusicBot dependency packages automatically...\n" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "OK, lets hope installing dependencies worked!" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "The exception which caused the above error: " + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "MusicBot is doing a soft restart..." + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "MusicBot is doing a full process restart..." + +#: run.py:1169 +msgid "Error starting bot" +msgstr "Error starting bot" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "Closing event loop." + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "Restarting in %s seconds..." + +#: run.py:1183 +msgid "All done." +msgstr "All done." + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "OK, we're closing!" + diff --git a/i18n/en_US/LC_MESSAGES/musicbot_messages.mo b/i18n/en_US/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..f6777f8f90e64ae2d9b5bd059819a07bdd7ee46c GIT binary patch literal 102124 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 %(max)s)" +msgstr "Song duration exceeds limit (%(length)s > %(max)s)" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "Playing next!" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "%(position)s - estimated time until playing: `%(eta)s`" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "%(position)s - cannot estimate time until playing." + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Streaming playlists is not yet supported." + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "Now streaming track `%(track)s`" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr " Search with service for a number of results with the search query.\n" + +#: musicbot/bot.py:4432 +msgid " Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr " Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "You have reached your playlist item limit (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Please specify a search query. Use `help search` for more information." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "You cannot search for more than %(max)s videos" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "Searching for videos..." + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "Search failed due to an error: %(error)s" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "No videos found." + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "To select a song, type the corresponding number." + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "Search results from %(service)s:" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "**%(index)s**. **%(track)s** | %(length)s" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "\n" +"**0**. Cancel" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "Pick a song" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "Added song [%(track)s](%(url)s) to the queue." + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "Result %(number)s of %(total)s: %(url)s" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "Alright, coming right up!" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "Show information on what is currently playing." + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "[autoplaylist]" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "Now playing" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "Currently streaming:" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "Currently playing:" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "Added By:" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "`%(user)s`" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "Progress:" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "There are no songs queued! Queue something with a play command." + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "Tell MusicBot to join the channel you're in." + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "You are not connected to voice. Try joining a voice channel!" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "Connected to `%(channel)s`" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "Makes MusicBot follow a user when they change channels in a server.\n" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "No longer following user `%(user)s`" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "Now following user `%(user)s` between voice channels." + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot cannot follow a user that is not a member of the server." + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "Will follow user `%(user)s` between voice channels." + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "Pause playback if a track is currently playing." + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "Paused music in `%(channel)s`" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Player is not playing." + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "Resumes playback if the player was previously paused." + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "Resumed music in `%(channel)s`" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "Resumed music queue" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "Player is not paused." + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "Shuffle all current tracks in the queue." + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "Shuffled all songs in the queue." + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "Removes all songs currently in the queue." + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "Cleared all songs from the queue." + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Nothing in the queue to remove!" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "Removed `%(track)s` added by `%(user)s`" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "Nothing found in the queue from user `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Invalid entry number. Use the queue command to find queue positions." + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "Removed entry `%(track)s` added by `%(user)s`" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "Removed entry `%(track)s`" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Can't skip! The player is not playing!" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "The next song `%(track)s` is downloading, please wait." + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "The next song will be played shortly. Please wait." + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "You do not have permission to force skip a looped song." + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "Force skipped `%(track)s`." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "You do not have permission to force skip." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "You do not have permission to skip a looped song." + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr " Next song coming up!" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "Current volume: `%(volume)s%%`" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` is not a valid number" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "Updated volume from **%(old)d** to **%(new)d**" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "Speed cannot be applied to streamed media." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "You must provide a speed to set." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "The speed you provided is invalid. Use a number between 0.5 and 100." + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "Setting playback speed to `%(speed).3f` for current track." + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr " Add an new alias with optional arguments.\n" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr " Remove an alias with the given name." + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr " Reload or save aliases from/to the config file." + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "Allows management of aliases from discord. To see aliases use the help command." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Invalid option for command: `%(option)s`" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "Aliases reloaded from config file." + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "Aliases saved to config file." + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Failed to save aliases due to error:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "You must supply an alias and a command to alias" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "New alias added. `%(alias)s` is now an alias of `%(command)s`" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "You must supply an alias name to remove." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "The alias `%(alias)s` does not exist." + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "Alias `%(alias)s` was removed." + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr " Shows help text about any missing config options.\n" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr " Lists the names of options which have been changed since loading config file.\n" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr " List the available config options and their sections.\n" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr " Reload the options.ini file from disk.\n" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr " Shows help text for a specific option.\n" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr " Display the current value of the option.\n" + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr " Saves the current value to the options file.\n" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr " Validates the option and sets the config for the session, but not to file.\n" + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr " Reset the option to its default value.\n" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "Manage options.ini configuration from within Discord." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "Config cannot use channel and user mentions at the same time." + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "*All config options are present and accounted for!*" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "No config options appear to be changed." + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "**Changed Options:**\n" +"%(changed)s" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "Config options reloaded from file successfully!" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Unable to reload Config due to the following error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Could not resolve section name from option name. Please provide a valid section and option name." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "The option given is ambiguous, please provide a section name." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "You must provide a section name and option name for this command." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "The option `%(option)s` is not available." + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "This option can only be set by editing the config file." + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "By default this option is set to: %(default)s" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "Option `%(option)s` is not editable. Cannot save to disk." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Failed to save the option: `%(option)s`" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "Successfully saved the option: `%(config)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "Option `%(option)s` is not editable, value cannot be displayed." + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "Option `%(option)s` is not editable. Cannot update setting." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "You must provide a section, option, and value for this sub command." + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "Option `%(option)s` was not updated!" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "Option `%(option)s` is not editable. Cannot reset to default." + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "Option `%(option)s` was not reset to default!" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "Deprecated command, use the config command instead." + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "The option command is deprecated, use the config command instead." + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Invalid option specified, use: info, update, or clear" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "Disabled" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "Enabled" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "%(time)s days" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "Unlimited" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "Cache has been cleared." + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Failed** to delete cache, check logs for more info..." + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "No cache found to clear." + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "Queue page argument must be a whole number." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "(unknown duration)" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "Songs in queue" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "Invalid parameter. Please provide a number of messages to search." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Cannot use purge on private DM channel." + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "Cleaned up %(number)s message(s)." + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "Bot does not have permission to manage messages." + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr "Dump the individual URLs of a playlist to a file." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "The given URL was not a valid URL." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Could not extract info from input url\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "This does not seem to be a playlist." + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "Here is the playlist dump for: %(url)s" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "Your user ID is `%(id)s`" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "The user ID for `%(username)s` is `%(id)s`" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "Valid categories: %(cats)s" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "Here are the IDs you requested:" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permissions of the mentioned user." +msgstr "Get a list of your permissions, or the permissions of the mentioned user." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "Invalid user ID or server nickname, please double-check the ID and try again." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Could not determine the discord User. Try again." + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr " Show loaded groups and list permission options.\n" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr " Reloads permissions from the permissions.ini file.\n" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr " Add new group with defaults.\n" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr " Remove existing group.\n" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr " Show help text for the permission option.\n" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr " Show permission value for given group and permission.\n" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr " Save permissions group to file.\n" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr " Set permission value for the group.\n" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "Manage permissions.ini configuration from within discord." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Permissions cannot use channel and user mentions at the same time." + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "Permissions reloaded from file successfully!" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "You must provide a group or option name for this command." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "You must provide a group, option, and value to set for this command." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "The %(option)s sub-command requires a group and permission name." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "The permission `%(option)s` is not available." + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "This permission can only be set by editing the permissions file." + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "By default this permission is set to: `%(value)s`" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Cannot add group `%(group)s` it already exists." + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Cannot remove built-in group." + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "The owner group is not editable." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Failed to save the group: `%(group)s`" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "Successfully saved the group: `%(group)s`" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Permission `%(option)s` was not updated!" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Failed to change username due to error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "Set the bot's username to `%(name)s`" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "Change the MusicBot's nickname." + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Unable to change nickname: no permission." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Failed to set nickname due to error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "Set the bot's nickname to `%(nick)s`" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr " Set a per-server command prefix." + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr " Clear the per-server command prefix." + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Custom emoji must be from this server to use as a prefix." + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "Server command prefix is cleared." + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "Server command prefix is now: %(prefix)s" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "You must provide a URL or attach a file." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Unable to change avatar due to error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "Changed the bot's avatar." + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "Force MusicBot to disconnect from the discord server." + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "Disconnected from server `%(guild)s`" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "Disconnected a playerless voice client? [BUG]" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Not currently connected to server `%(guild)s`" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr " Attempt to reload without process restart. The default tion.\n" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr " Attempt to restart the entire MusicBot process, reloading everything.\n" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr " Full restart, but attempt to update pip packages before restart.\n" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr " Full restart, but update MusicBot source code with git first.\n" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr " Attempt to update all dependency and source code before fully restarting.\n" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "%(emoji)s Restarting current instance..." + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "%(emoji)s Restarting bot process..." + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "%(emoji)s Will try to upgrade required pip packages and restart the bot..." + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "%(emoji)s Will try to update bot code with git and restart the bot..." + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "%(emoji)s Will try to upgrade everything and restart the bot..." + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "Disconnect from all voice channels and close the MusicBot process." + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr " Leave the discord server given by name or server ID." + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "You must provide an ID or name." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "No guild was found with the ID or name `%(input)s`" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "Unknown" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "Command used for testing. It prints a list of commands which can be verified by a test suite." + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "Logged breakpoint with ID: %(uuid)s" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr " View most common types reported by objgraph.\n" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr " View limited objgraph.show_growth() output.\n" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr " View most common types of leaking objects.\n" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr " View typestats of leaking objects.\n" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr " Evaluate the given function and arguments on objgraph.\n" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Could not import `objgraph`, is it installed?" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "Sub-command must be one of: %(options)s" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "Makes default INI files." + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "Saved the requested INI file to disk. Go check it" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "Display the current bot version and check for updates to MusicBot or dependencies.\n" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Could not locate git executable." + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "No updates in branch `%(branch)s` remote." + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "New commits are available in `%(branch)s` branch remote." + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "Error while checking, see logs for details." + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "Update for `%(name)s` to version: `%(version)s`\n" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "No updates for dependencies found." + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "There are updates for MusicBot available for download." + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "MusicBot is totally up-to-date!" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "Displays the MusicBot uptime, or time since last start / restart." + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "%(name)s has been online for `%(time)s`" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "Display latency information for Discord API and all connected voice clients." + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "No voice clients connected.\n" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "Display API latency and Voice latency if MusicBot is connected." + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "auto" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "**API Latency:** `%(delay).0f ms`%(voice)s" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "Display MusicBot version number in the chat." + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr " Update the cookies.txt file using a cookies.txt attachment." + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr " Enable or disable cookies.txt file without deleting it." + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookies already enabled." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Cookies must be uploaded to be enabled. (Missing cookies file.)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Could not enable cookies due to error: %(raw_error)s" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "Cookies have been enabled." + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "Cookies have been disabled." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "No attached uploads were found, try again while uploading a cookie file." + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Error downloading the cookies file from discord: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Could not save cookies to disk: %(raw_error)s" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "Cookies uploaded and enabled." + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "You cannot use this bot in private messages." + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "This command is not allowed for your permissions group: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "This command requires you to be in a Voice channel." + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "**Command:** %(name)s" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "Exception Error" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "No description given.\n" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "No usage given." + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "Leaving voice channel %(channel)s due to inactivity." + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "Left `%(guild)s` due to bot owner not being found in it." + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "Disable now playing messages for songs played via auto playlist." + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "MusicBot will automatically delete Now Playing messages." + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "Allow MusicBot to keep downloaded media, or delete it right away." + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "If SaveVideos is enabled, set a limit on how much storage space should be used." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "If SaveVideos is enabled, set a limit on how long files should be kept." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "Mention the user who added the song when it is played." + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "Automatically join the owner if they are in an accessible voice channel when bot starts." + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "Shuffles the auto playlist tracks before playing them." + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song block list." +msgstr "Remove songs from the auto playlist if they are found in the song block list." + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "Auto delete valid commands after a delay." + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "Allow MusicBot to save the song queue, so queued songs will survive restarts." + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." + +#: musicbot/config.py:550 +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "If enabled, status messages will report info on paused players." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "Allow the member who requested the song to skip it, bypassing votes." + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr "Allow MusicBot to format its messages as embeds." + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "The number of entries to show per-page when using q command to list the queue." + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." +msgstr "Enable MusicBot to automatically remove unplayable entries from the auto playlist." + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "Display MusicBot config settings in the logs at startup." + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "Enable users with the InstaSkip permission to bypass skip voting and force skips." + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "If enabled, MusicBot will leave servers if the owner is not in their member list." + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "Completely remove the footer from embeds." + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "MusicBot will automatically deafen itself when entering a voice channel." + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "If enabled, MusicBot will leave the channel immediately when the song queue is empty." + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "If enabled, users must indicate search result choices by sending a message instead of using reactions." + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "Sets the default number of search results to fetch when using the search command without a specific number." + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "Allow MusicBot to automatically unpause when play commands are used." + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." + +#: musicbot/config.py:920 +msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "Toggle the user block list feature, without emptying the block list." + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "An optional file path to a text file listing Discord User IDs, one per line." + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "Enable the song block list feature, without emptying the block list." + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "An optional directory path where MusicBot will store long and short-term cache for playback." + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD seems to have no headers..." + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "Song info extraction returned no data." + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Cannot continue extraction, event loop is closed." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "Spotify URL is invalid or not supported." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Error in yt-dlp while downloading data: %(raw_error)s" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Cannot stream an invalid URL." + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "The local media file could not be found." + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Cannot download Spotify links, processing error with type: %(type)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Download did not complete due to an error: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Download failed due to a yt-dlp error: %(raw_error)s" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Download failed due to an unhandled exception: %(raw_error)s" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Failed to extract data for the requested media." + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "The maximum number of items that can be returned in a search." + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "Allow users to queue playlists, or multiple songs at once." + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "Allow users to skip without voting, if LegacySkip config option is enabled." + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "Allows the user to skip a looped song." + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "Skip songs added by users who are not in voice when their song is played." + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "Allows the user to add songs to the queue when Karaoke Mode is enabled." + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Could not extract information" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "This is a playlist." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Invalid content type `%(type)s` for URL: %(url)s" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "no duration data" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "no duration data in current entry" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Invalid track_data, must be of type `track` got `%(type)s`" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Response status is not OK: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "Response JSON did not decode to a dict!" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Could not make GET to URL: %(url)s Reason: %(raw_error)s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Could not make POST to URL: %(url)s Reason: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Failed to get a guest token from Spotify, please try specifying client ID and client secret" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "API response did not contain the expected data. Missing key: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "API response contained unexpected data.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Requested a token from Spotify, did not end up getting one" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "API response status is not OK: [%(status)s] %(reason)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Only the owner can use this command." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Only dev users can use this command." + diff --git a/i18n/es_ES/LC_MESSAGES/musicbot_logs.mo b/i18n/es_ES/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..27779ae2f4d78ff61dfa2ccbfa164c0198cd7542 GIT binary patch literal 116252 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 O9}y^c&y{4c@qYm*JyQ_? literal 0 HcmV?d00001 diff --git a/i18n/es_ES/LC_MESSAGES/musicbot_logs.po b/i18n/es_ES/LC_MESSAGES/musicbot_logs.po new file mode 100644 index 000000000..1a2caa58b --- /dev/null +++ b/i18n/es_ES/LC_MESSAGES/musicbot_logs.po @@ -0,0 +1,4075 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: 2024-11-08 18:12\n" +"Last-Translator: \n" +"Language-Team: Spanish\n" +"Language: es_ES\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: es-ES\n" +"X-Crowdin-File: /fae/i18n/musicbot_logs.pot\n" +"X-Crowdin-File-ID: 26\n" + +#: musicbot/aliases.py:52 +msgid "Aliases file not found, copying example_aliases.json" +msgstr "Archivo de alias no encontrado, copiando example_aliases.json" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "Error al cargar alises.\n\n" +"Problema:\n" +" Faltan sus archivos de alias (aliases.json y example_aliases.json).\n\n" +"Solución:\n" +" Reemplace los archivos de configuración de alias o cópialos de:\n" +" https://github.com/Just-Some-Bots/MusicBot/" + +#: musicbot/aliases.py:80 +#, python-format +msgid "Failed to load aliases file: %s" +msgstr "Error al cargar el archivo de alias: %s" + +#: musicbot/aliases.py:88 +#, python-format +msgid "Failed to parse aliases file: %s\n" +"Ensure the file contains valid JSON and restart the bot." +msgstr "No se pudo analizar el archivo de alias: %s\n" +"Asegúrese de que el archivo contiene un JSON válido y reiniciar el bot." + +#: musicbot/aliases.py:114 +#, python-format +msgid "Aliases skipped for non-existent command: %(command)s -> %(aliases)s" +msgstr "Alias omitidos para un comando inexistente: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "Alia(s) omitido(s) para datos de alias no válidos: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "Alias `%(alias)s` omitido como ya existe en el comando: %(command)s" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "Error al cargar el archivo de lista de reproducción automática: %s" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "Eliminando canción no reproducible de la lista de reproducción, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "Eliminando canción de la lista, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "No se pudo registrar la información sobre la eliminación de la URL de la lista de reproducción." + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "Actualizando archivo de playlist..." + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "Error al guardar el archivo de la lista de reproducción: %s" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "La URL ya está en la lista de reproducción %s, ignorando" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "Añadir nueva URL a la lista, %(playlist)s: %(track)s" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "Inicializando MusicBot %s" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "Loop está cerrado, no se puede crear la tarea para: %r" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "Excepción no controlada para la tarea: %r" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "Excepción no controlada para la tarea: %(task)r -- %(raw_error)s" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "Spotify no nos proporcionó un token. Desactivando." + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "Autenticado con Spotify con éxito usando ID de cliente y secreto." + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "No se pudo iniciar el cliente de Spotify. ¿Es tu ID de cliente y secreto correcto? Detalles: %s. Continuando de todos modos en 5 segundos..." + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "La configuración no tenía credenciales de aplicación de Spotify, intentando usar modo invitado." + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "Autenticado con Spotify utilizando correctamente el modo invitado." + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "No se pudo iniciar el cliente de Spotify usando el modo invitado. Detalles: %s." + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "El plugin Experimental Yt-dlp OAuth2 está habilitado. ¡Esto puede romperse en cualquier momento!" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "Inicializado, ahora conectándose a la discordia." + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "Prueba de ping de red está desactivada por configuración." + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "La prueba de ping de red se está cerrando." + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "No se pudo resolver el objetivo de ping ." + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "Prueba de ping de red cancelada." + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "Las pruebas de red vía HTTP no tienen una sesión para tomar prestado." + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "No se pudo localizar el ejecutable `ping` en tu entorno." + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot no pudo encontrar la ruta del comando `ping`. Intentará usar ping HTTP en su lugar.\n" +"MusicBot intentó el siguiente comando: %s\n" +"Debería habilitar ping en su sistema o entorno de contenedores para obtener mejores resultados.\n" +"Desactivar alternativamente la comprobación de red a través de la configuración." + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot denegó el permiso para ejecutar el comando `ping`. Intentará usar ping HTTP en su lugar.\n" +"MusicBot intentó el siguiente comando: %s\n" +"Debería habilitar ping en su sistema o entorno de contenedores para obtener mejores resultados.\n" +"Desactivar alternativamente la comprobación de red a través de la configuración." + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "Tu entorno puede no permitir el comando del sistema `ping`. Intentará usar ping HTTP en su lugar.\n" +"MusicBot intentó el siguiente comando: %s\n" +"Debería habilitar ping en su sistema o entorno de contenedores para obtener mejores resultados.\n" +"Desactivar alternativamente la comprobación de red a través de la configuración." + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "MusicBot detectado red está disponible de nuevo." + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "VoiceClient no está conectado, esperando para reanudar MusicPlayer..." + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "Reiniciando reproducción del jugador: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "MusicBot detectó una interrupción de red." + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "Pausando MusicPlayer debido a la disponibilidad de la red: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "Buscando dueño en guild: %(guild)s (voz requerida: %(required)s) y obteniendo: %(owner)s" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "Comprobando canales para autounirse o reanudar..." + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "Gremio no disponible, no puede entrar automáticamente: %(id)s/%(name)s" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "Se ha encontrado un canal de voz reanudable: %(channel)s en guild: %(guild)s" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "Intentará reanudar la sesión de voz en lugar de unirse automáticamente al canal: %s" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "Dueño encontrado en el canal de voz: %s" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "Ignorando canal reanudable, Autoinvocar al propietario en el canal: %s" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "Ignorando el canal de autounión, autoinvocar al propietario en el canal: %s" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "Ya conectado al canal: %(channel)s en guild: %(guild)s" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "Intentando unirse al canal: %(channel)s en guild: %(guild)s" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "Descartando MusicPlayer y haciendo uno nuevo..." + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "MusicBot creará un nuevo MusicPlayer ahora..." + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "No unirse a %(guild)s/%(channel)s, no es un canal de voz compatible." + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "Finalizó la unión de canales configurados." + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "El miembro no está habilitado por voz y no puede usar este comando." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "No puedes usar este comando cuando no estás en el canal de voz." + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "Obteniendo bot aplicación Info." + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "MusicBot no tiene permiso para conectarse en el canal: %s" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBot no tiene permiso para conectarse en el canal: `%(name)s`" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "MusicBot no tiene permiso para hablar en el canal: %s" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBot no tiene permiso para hablar en el canal: `%(name)s`" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "Reusando bots VoiceClient del gremio: %s" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "Forzando desconexión en VoiceClient caducado en el gremio: %s" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "¿Desconectar ha fallado o ha sido cancelado?" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "MusicBot no puede conectarse al canal en este momento: %(channel)s" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot no pudo conectarse al canal.\n" +"Inténtalo de nuevo más tarde, o reinicia el bot si esto continúa." + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "MusicBot tiene ahora un cliente de voz..." + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "Reintentando la conexión después de un error de tiempo de espera (%(attempt)s) mientras intentaba conectar a: %(channel)s" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "Se ha cancelado el intento de conexión de MusicBot VoiceClient. No hay reintento." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "Se ha cancelado la conexión MusicBot a voz. Esto es extraño. ¿Quizás reiniciar?" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot no tiene permiso para hablar." + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "MusicBot no pudo pedir la palabra." + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "Desconectando a un MusicPlayer en el gremio: %s" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "Desconectando VoiceClient antes de matar a MusicPlayer." + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "La desconexión falló o fue cancelada." + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "MusicBot tiene un VoiceProtocol que no es un VoiceClient. Desconectando..." + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "Desconectando a un cliente de voz pícaro en el gremio: %s" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "Desconectando un cliente de voz que no es hermandad..." + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "¿La lista MusicBot.voice_clients contiene un objeto no-VoiceClient?\n" +"El objeto es realmente de tipo: %s" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "Todavía tenemos una referencia de MusicPlayer en el gremio (%(guild_id)s): %(player)r" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "Guild (%(guild)s) quiere un jugador, opcional: %(player)r" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." +msgstr "[BUG] MusicPlayer le falta un cliente de VoiceClient de alguna manera. Probablemente debería reiniciar el bot." + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "MusicPlayer tiene un cliente de voz que no está conectado." + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "Objeto del reproductor de música: %r" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "VoiceClient obj: %r" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "Obteniendo un MusicPlayer para el gremio: %(guild)s en el canal: %(channel)s Creado: %(create)s Deserializar: %(serial)s" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "Jugador creado a través de la deserialización para el gremio %(guild_id)s con entradas %(number)s" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "El bot no está en un canal de voz.\n" +"Usa el comando invocar para llevar el bot a tu canal de voz." + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Algo está mal, no conseguimos el Cliente de Voice." + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "Ejecutando on_player_play" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "Configurando el guild del historial de URL %(guild_id)s == %(url)s" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "No hay miniaturas definidas para la entrada con la URL: %s" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "no hay canal en el que poner el mensaje en reproducción" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "ignoró el mensaje ahora que ya estaba publicado." + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "Ejecutando on_player_resume" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "Ejecutando on_player_pause" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "Ejecutando on_player_stop" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "Ejecutando on_player_terminado_jugando" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "El bucle del evento está cerrado, nada más que hacer aquí." + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "Cerrar sesión en curso, ignorando este evento." + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "VoiceClient dice que no está conectado, nada más que podemos hacer aquí." + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "Jugador terminado y la cola está vacía, dejando el canal de voz..." + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "Bucle sobre la cola para expurgar las canciones con el autor que falta..." + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "Autor `%(user)s`, se omitió la entrada (eliminada) de la cola: %(song)s" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "No hay canciones reproducibles en la lista de reproducción automática del gremio, deshabilitando." + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "No hay contenido en la lista de reproducción automática actual. Completando con nueva música..." + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "Bucle sobre la lista de reproducción automática..." + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "Error al procesar la canción \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "Error al extraer la canción \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr "MusicBot necesita detener la extracción de la lista de reproducción automática y la fianza." + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "MusicBot consiguió una excepción no controlada en el evento terminado del jugador." + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "Expandiendo lista de reproducción automática con entradas extraídas: %s" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "Error al añadir la canción de la lista de reproducción automática: %s" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "Datos de excepción para el error anterior:" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "No hay canciones reproducibles en la lista de reproducción automática, desactivando." + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "Ejecutando on_player_entry_added" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "Omitiendo automáticamente la entrada de la lista de reproducción automática para la entrada en cola." + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "Excepción MusicPlayer para la entrada: %r" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "Excepción de MusicPlayer." + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "No se pudo reproducir la pista de lista de reproducción automática: %r" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "Cerrar sesión en curso, ignorando el evento de actualización de estado." + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "Actualizar estado del bot: %(status)s -- %(activity)r" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "Serializando cola para %s" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "Deserializando cola para %s" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "Escribiendo canción actual para %s" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "No se puede enviar objeto no respuesta: %r" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Intentó enviar un objeto de respuesta no válido." + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "enviando incrustado a: %s" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "enviando texto a: %s" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "No se puede enviar el mensaje a \"%s\", sin permiso" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "No se puede enviar el mensaje a \"%s\", canal no válido o eliminado" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "El mensaje excede el límite de tamaño del mensaje (%s)" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "No se pudo enviar el mensaje privado, enviando en su lugar un canal de respaldo." + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "Velocidad de envío de mensajes limitada, reintentando en %s segundos." + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "Canceló el mensaje de reintento: %s" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "Valora el mensaje de envío limitado, ¡pero no se puede volver a intentar!" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "No se pudo enviar el mensaje en el canal de retroceso." + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "Error al enviar debido a un error HTTP." + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "No se puede eliminar el mensaje \"%s\", sin permiso" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "No se puede eliminar el mensaje \"%s\", mensaje no encontrado" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "Eliminación de mensajes con tasa limitada, reintentando en %s segundos." + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "Valora la eliminación limitada de mensajes, ¡pero no se puede volver a intentar!" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "Error al eliminar el mensaje" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "Obtuvo HTTPException tratando de eliminar el mensaje: %s" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "No se puede editar el mensaje \"%s\", mensaje no encontrado" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "Enviando mensaje en su lugar" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "Califica un mensaje de edición limitado, vuelve a intentarlo en %s segundos." + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "Edición de mensaje cancelada para: %s" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "Error al editar el mensaje" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "Obtuvo HTTPException tratando de editar el mensaje %s a: %s" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "Cancelada la eliminación del mensaje (ID: %(id)s): %(content)s" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "Atrapó una señal del sistema operativo: %s" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "Desconectando y cerrando MusicBot..." + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "¡Excepción arrojada mientras se maneja la señal de interrupción!" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "MusicBot ahora está haciendo pasos de cierre..." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Error al iniciar sesión en la API de Discord.\n\n" +"Problema:\n" +" MusicBot no pudo iniciar sesión en la API de Discord.\n" +" Es posible que tu token sea incorrecto o que haya una interrupción en la API.\n\n" +"Solución:\n" +" Asegúrate de tener el token correcto configurado en tu configuración.\n" +" Comprueba el estado de la API en el sitio oficial: discordstatus.com" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "Esperando a que los hilos de descarga terminen..." + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "Esperará la tarea: %(name)s (%(func)s)" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "Intentará cancelar la tarea: %(name)s (%(func)s)" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "Esperando tareas pendientes..." + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "Cerrando Conector HTTP." + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "Cerrando sesión aiohttp." + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "Se ha llamado al cierre de sesión." + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "Excepción en %(event)s:\n" +"%(error)s" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "Excepción en %s" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "MusicBot reanudó una sesión con discord." + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "Terminar en_listo" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "Conectado, ahora teniendo MusicBot listo..." + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "ClientUser no es de alguna manera ninguna, tenemos la fianza..." + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "Propietario: %(id)s/%(name)s#%(desc)s\n" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "Lista de Gremio:" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr " - %s" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "Abandonar %s debido al dueño del bot no encontrado" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "No continuar con las comprobaciones en servidores %s debido a la falta de disponibilidad" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "No se pudo encontrar el propietario en ningún gremio (ID: %s)\n" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "Propietario desconocido, el bot no está en ningún gremio." + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "Para que el bot se una a un gremio, pega este enlace en tu navegador.\n" +"Nota: Debes iniciar sesión en tu cuenta principal y tener\n" +"permisos de administración del servidor en el gremio al que quieres que se una el bot.\n" +"%s" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "Ninguno para el canal enlazado con ID: %d" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "No se puede enlazar al canal no Mensajable con ID: %d" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "Vinculado a canales de texto:" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr " - %(guild)s/%(channel)s" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "No vinculado a ningún canal de texto" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "No obtuvo ninguno para auto unirse al canal con ID: %d" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "No se puede auto unirse a un canal privado/no gremio con ID: %d" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "No se puede auto unirse al canal no conectable con ID: %d" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr "Auto unirse a canales de voz:" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "No te unes automáticamente a ningún canal de voz" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "¡Se detectaron opciones de configuración faltantes!\n\n" +"Problema:\n" +" A su archivo de opciones de configuración le faltan algunas opciones.\n" +" Se utilizarán las configuraciones predeterminadas para estas opciones.\n" +" A continuación, se incluye una lista de opciones que no encontramos:\n" +" %(missing)s\n\n" +"Solución:\n" +" Copie las opciones nuevas del archivo de opciones de ejemplo.\n" +" O utilice el comando config para configurarlas y guardarlas.\n\n" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "Evento on_ready ha disparado %s veces" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "Obteniendo información de la aplicación." + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "Asegurando la existencia de las carpetas de datos" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "Validando configuración" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "Validando configuración de permisos" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "Deshabilitado" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "Activado" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "Opción:" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr " Prefijo de comando: %s" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr " Volumen predeterminado: %d%%" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr " Omitir umbral: %(num)d votos o %(percent).0f%%" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr " Reproduciendo @menciones: %s" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr " Auto-Invocación: %s" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr " Lista de reproducción automática: %(status)s (orden: %(order)s)" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "aleatorio" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "secuencial" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr " Pausa automática: %s" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr " Borrar Mensajes: %s" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr " Eliminar invocación: %s" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr " Eliminar reproducción ahora: %s" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr " Modo de depuración: %s" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr " Las canciones descargadas serán %s" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr " Eliminar si no se usa durante %d días" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr " Eliminar si el tamaño supera el %s" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr " Mensaje de estado: %s" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr " Escribir canciones actuales a archivar: %s" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr " Insta-skip del autor: %s" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr " Embeds: %s" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr " Integración de Spotify: %s" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr " Salto de heredado: %s" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr " Dejar no dueños: %s" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr " Dejar CV inactiva: %s" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr " Tiempo de espera: %s segundos" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr " Dejar en la cola final/vacía de la canción: %s" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr " Abandonar cuando el jugador recolecta: %s" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr " Tiempo de espera: %d segundos" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr " Auto sordo: %s" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr " Prefijo de comando por servidor: %s" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr " Lista de búsqueda: %s" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr " Fiesta de Robin: %s" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "La canción solicitada `%(subject)s` está bloqueada por la lista de bloques de canciones." + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "Intentado manejar la inactividad del canal de voz, pero Bot no está en la voz..." + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "Actividad del canal en espera en el gremio: %s" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Actividad del canal esperando %(time)d segundos para salir del canal: %(channel)s" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "El temporizador de actividad del canal para %s ha caducado. Desconectando." + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Temporizador de actividad del canal cancelado por: %(channel)s en %(guild)s" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "Ignorando inactividad del jugador en el canal auto: %s" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "Temporizador de actividad del jugador que ya está esperando en el gremio: %s" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Temporizador de actividad del jugador esperando %(time)d segundos para salir del canal: %(channel)s" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "El temporizador de actividad del jugador para %s ha caducado. Desconectando." + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Temporizador de actividad del jugador cancelado por: %(channel)s en %(guild)s" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "Temporizador de actividad del jugador está siendo reiniciado." + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "No existe tal comando" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "Debe mencionar a un usuario o proporcionar su número de identidad." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Sub-comando inválido. Usa `help blockuser` para ejemplos de uso." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot no pudo encontrar el usuario(s) especificado." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "El propietario no puede ser añadido a la lista de bloques." + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "No añadiendo usuario a la lista de bloques, ya bloqueados: %(id)s/%(name)s" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "No se ha eliminado al usuario de la lista de bloques, no se ha listado: %(id)s/%(name)s" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "No se pueden agregar los usuarios que has listado, que ya han sido añadidos." + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Debes proporcionar un tema de canción si ninguna canción se está reproduciendo actualmente." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Sub-comando inválido. Usa `help blocksong` para ejemplos de uso." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "El asunto `%(subject)s` ya está en la lista de bloques de canciones." + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "El asunto no está en la lista de bloques de canciones y no puede ser eliminado." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Sub-comando inválido. Usa `help autoplaylist` para los ejemplos de uso." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "El enlace a la canción suministrada no es válido" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "La cola está vacía. ¡Añade algunas canciones con un comando de reproducción!" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Esta canción ya está en la lista de reproducción automática." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Esta canción aún no está en la lista de reproducción automática." + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "Debe proporcionar un nombre de archivo de lista de reproducción." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "No tienes permisos para solicitar listas de reproducción" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "La lista de reproducción tiene demasiadas entradas (%(songs)s pero el máximo es %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "Las entradas de la lista de reproducción excederán tu límite de cola.\n" +"Hay %(songs)s en la lista y %(queued)s ya en cola.\n" +"El límite es %(max)s para tu grupo." + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "Ignorando la pausa automática debido a la interrupción de la red." + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "MusicPlayer no tiene VoiceClient o no tiene datos de canal, no puede procesar la pausa automática." + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "Ya procesando la pausa automática, ignorando este evento." + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "%sVoiceClient no conectado, esperando %s segundos para manejar la pausa automática en el gremio: %s" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "Se ha cancelado la pausa automática." + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "Un nuevo MusicPlayer está siendo conectado, ignorando el antiguo evento de la pausa automática." + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "Jugando en un canal de voz vacío, haciendo una pausa automática para el gremio: %s" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "El jugador auto pausado anteriormente está pausado para el gremio: %s" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "No se puede usar seek si no hay nada jugando." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "No se puede usar seek en la pista actual, tiene una duración desconocida." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "La búsqueda no es compatible con los streams." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "No se puede usar seek sin tiempo para colocar la reproducción." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "No se pudo convertir `%(input)s` a una hora válida en segundos." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "No se puede buscar a `%(input)s` (`%(seconds)s` segundos) en la pista actual con una longitud de `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Sub-comando no válido. Utilice el comando `help repeat` para ejemplos de uso." + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "El reproductor no está bucle actualmente." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Las posiciones de la canción deben ser enteras!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "¡Has dado una posición fuera del tamaño de la lista de reproducción!" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "No se pudo pedir la reproducción de la lista de reproducción, no hay mensajes a los que añadir reacciones." + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "La reproducción de medios locales no está habilitada." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "La URL de Spotify no es válida o no está soportada actualmente." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Se ha detectado una URL de Spotify, pero Spotify no está habilitado." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Has alcanzado el límite de canciones en cola (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "El modo Karaoke está activado, ¡por favor inténtalo de nuevo cuando esté desactivado!" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "Problema con extract_info(): " + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Error al extraer información debido a error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Ese video no se puede reproducir. Intenta usar el comando Stream." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "La búsqueda en YouTube no devolvió resultados para: %(url)s" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "Procesado %(number)d de %(total)d canciones en %(time).3f segundos en %(time_per).2f s/canción" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "No se añadieron canciones, todas las canciones sobrepasaron la duración máxima (%(max)s segundos)" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "Extracción de una entrada con 'youtube:playlist' como clave de extractor" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "La duración de la canción excede el límite (%(length)s > %(max)s)" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "Canción(es) añadidas en la posición %s" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "No se puede estimar el tiempo hasta jugar para la posición: %d" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "No se pudo obtener información de la solicitud de stream: %s" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Las listas de reproducción de streaming aún no están soportadas." + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Has alcanzado el límite de elementos de tu lista de reproducción (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Por favor especifique una consulta de búsqueda. Use `help search` para más información." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "No puedes buscar más de %(max)s vídeos" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "Esperando por invocar bloqueo: %s" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "Invocar bloqueo adquirido por: %s" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "No estás conectado a la voz. ¡Prueba a unirte a un canal de voz!" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "Uniéndose a %(guild)s/%(channel)s" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot no puede seguir a un usuario que no es miembro del servidor." + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "El jugador no está reproduciendo." + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "¡Nada en la cola para eliminar!" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "No se ha encontrado nada en la cola del usuario `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "No tienes permiso para eliminar esa entrada de la cola. Debes ser tú quien la puso en cola o tener permisos de omisión instantánea." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Número de entrada no válido. Utilice el comando de cola para encontrar las posiciones de la cola." + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "¡No se puede saltar! ¡El jugador no está jugando!" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "No tienes permiso para forzar a saltar una canción en bucle." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "No tienes permiso para forzar saltar." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "No tienes permiso para saltar una canción en bucle." + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` no es un número válido" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Se proporcionó un cambio de volumen poco razonable: %(old_volume)s%(adjustment)s es %(new_volume)s.\n" +"El volumen solo puede establecerse de 1 a 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Volumen no razonable proporcionado: %(volume)s. Proporciona un valor entre 1 y 100." + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "No se está reproduciendo ninguna pista, no se puede establecer la velocidad.\n" +"Utilice el comando de configuración para establecer una velocidad de reproducción predeterminada." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "La velocidad no se puede aplicar a los medios streamed." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Debe proporcionar una velocidad para establecer." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "La velocidad que proporcionaste no es válida. Usa un número entre 0.5 y 100." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Opción no válida para el comando: `%(option)s`" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "No se pudo guardar el alias debido al error:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Debe proporcionar un alias y un comando para alias" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Debe proporcionar un nombre de alias para eliminar." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "El alias `%(alias)s` no existe." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "La configuración no puede usar las menciones de canal y usuario al mismo tiempo." + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "No se puede recargar la configuración debido al siguiente error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "No se pudo resolver el nombre de la sección del nombre de la opción. Por favor, introduzca un nombre de sección y opción válidos." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "La opción dada es ambigua, por favor ingrese un nombre de sección." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Debe proporcionar un nombre de sección y un nombre de opción para este comando." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "La sección `%(section)s` no está disponible.\n" +"Las secciones disponibles son: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "La opción `%(option)s` no está disponible." + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "La opción `%(option)s` no es editable. No se puede guardar en el disco." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Error al guardar la opción: `%(option)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "La opción `%(option)s` no es editable, el valor no se puede mostrar." + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "La opción `%(option)s` no es editable. No se puede actualizar la configuración." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Debe proporcionar una sección, opción y valor para este sub-comando." + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "Al establecer con %(config)s == %(value)s" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "¡La opción `%(option)s` no fue actualizada!" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "La opción `%(option)s` no es editable. No se puede restablecer por defecto." + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "Restableciendo %(config)s a %(value)s por defecto" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "¡La opción `%(option)s` no se ha restablecido por defecto!" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "El comando de opción está obsoleto, utilice el comando de configuración en su lugar." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Opción especificada no válida, use: info, actualización o borrado" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Fallo** al eliminar caché, comprueba los registros para más información..." + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "El argumento de página de cola debe ser un número entero." + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "No hay canciones en cola! Coloca algo con un comando de reproducción." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "El número de página solicitado está fuera de límites.\n" +"Hay **%(total)s** páginas." + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "Se omitió la entrada de la lista de reproducción actual." + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "No hay suficientes entradas para paginar la cola." + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "No se pudo publicar el mensaje de cola, no hay mensajes a los que añadir reacciones." + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Inténtelo de nuevo. MusicBot no pudo hacer ni obtener una referencia al mensaje de la cola.\n" +"Si el problema persiste, envíe un informe de error." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "No se puede utilizar la purga en el canal DM privado." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "La URL dada no era una URL válida." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "No se pudo extraer información de la url\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "Esto no parece ser una lista de reproducción." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "ID de usuario o nombre de servidor no válido, por favor compruebe el ID e inténtelo de nuevo." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "No se pudo determinar el usuario de discord. Inténtalo de nuevo." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Los permisos no pueden usar menciones de canal y usuario al mismo tiempo." + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "No se pueden recargar los permisos debido a un error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Debe proporcionar un nombre de grupo o opción para este comando." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Debe proporcionar un grupo, opción y valor para este comando." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "El subcomando %(option)s requiere un grupo y un nombre de permiso." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "El grupo `%(group)s` no está disponible.\n" +"Los grupos disponibles son: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "El permiso `%(option)s` no está disponible." + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "No se puede agregar el grupo `%(group)s` que ya existe." + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "No se puede eliminar el grupo integrado." + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "El grupo propietario no es editable." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Error al guardar el grupo: `%(group)s`" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "Al establecer %(option)s con valor: %(value)s" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "¡El permiso `%(option)s` no fue actualizado!" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Error al cambiar el nombre de usuario. ¿Has cambiado nombres demasiadas veces?\n" +"Recuerda que los cambios de nombre están limitados a dos veces por hora.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Error al cambiar el nombre de usuario debido al error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "No se puede cambiar el apodo: no hay permiso." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "No se pudo establecer el nick debido a un error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Los emoji personalizados deben ser de este servidor para usar como prefijo." + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "¡El prefijo por servidor no está habilitado!\n" +"Utilice el comando de configuración para actualizar el prefijo en su lugar." + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "Debe proporcionar una URL o adjuntar un archivo." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "No se puede cambiar el avatar debido a un error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "MusicBot encontró un %s sin gremio! Esto podría ser un problema." + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Actualmente no conectado al servidor `%(guild)s`" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Opción inválida dada, utilice una de: suave, completa, actualizada, actualizada o actualizada" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Debe proporcionar un ID o nombre." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "No se ha encontrado ningún gremio con el ID o nombre `%(input)s`" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "Activando ID del breakpoint de depuración: %(uuid)s" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "No se pudo importar `objgraph`, ¿está instalado?" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "Código de depuración ejecutado con eval()." + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "Código de depuración ejecutado con exec()." + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "Error al ejecutar el código de depuración." + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Error al ejecutar el código de depuración:\n" +"%(py_code)s\n" +"Excepción: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "El subcomando debe ser uno de: %(options)s" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "No se pudo encontrar el ejecutable de git." + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "Error al buscar actualizaciones mediante el comando git." + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "Paquete que falta meta en el informe pip." + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "Error al obtener el estado de actualización de pip debido a algún error." + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "Obtuvo una entrada extraña del cliente de voz." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Las cookies ya están habilitadas." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Las cookies deben ser subidas para estar habilitadas. (Falta archivo de cookies)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "No se pudo habilitar las cookies debido a un error: %(raw_error)s" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "No se pudo renombrar el archivo de cookies debido a un error: %(raw_error)s\n" +"Cookies temporalmente deshabilitadas y serán reactivadas en el siguiente reinicio." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "No se encontraron subidas adjuntas, inténtelo de nuevo mientras se subía un archivo de cookies." + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "No se pudo eliminar el archivo antiguo de cookies deshabilitado: %(raw_error)s" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Error al descargar el archivo de cookies desde discord: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "No se han podido guardar las cookies en el disco: %(raw_error)s" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "Obtuviste un mensaje sin canal, de alguna manera: %s" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "Ignorando el comando de mí mismo (%s)" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "Ignorando comando de otro bot (%s)" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "Ignorando comando del canal de tipo: %s" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "Usuario en la lista de bloques: %(id)s/%(name)s intentó el comando: %(command)s" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "Mensaje de %(id)s/%(name)s: %(message)s" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Este comando no está permitido para el grupo de permisos: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Este comando requiere que estés en un canal de Voice." + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "Uso de comandos no válido, faltan valores para los parámetros: %(params)r" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "Error en %(command)s: %(err_name)s: %(err_text)s" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "Excepción al manejar el comando: %(command)s" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "No se puede generar ayuda para el comando que falta: %s" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "Faltan datos de ayuda para el comando: %s" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "Dejando el canal de voz %s en %s por inactividad." + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "MusicBot se ha conectado." + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "MusicBot se ha desconectado." + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "Obtuvo un Evento de Socket: %s" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "Estado de voz actualizado antes de finalizado el on_ready" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "Ignorando %s en %s ya que es un canal de voz vinculado." + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "%s ha sido detectado como vacío. Manejo de tiempos de espera." + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "Un usuario se unió a %s, cancelando temporizador." + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "El bot se movió y el canal de voz %s está vacío. El manejo de los tiempos de espera de espera." + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "El bot se movió y el canal de voz %s no está vacío." + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "Ya no sigue al usuario %s" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "El siguiente usuario `%(user)s` para el canal: %(channel)s" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "VoiceState se desconecta antes.channel Ninguno." + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "Desconectado de la voz por Discord API en: %(guild)s/%(channel)s (Código: %(code)s) [S:%(state)s]" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "No se puede usar el canal auto-join con el tipo: %(type)s en guild: %(guild)s" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "No se puede encontrar el canal auto-unido, ¿fue eliminado? Guild: %s" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "Reconectando al gremio auto-unido en el canal: %s" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "No se puede auto unirse al canal: %s" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "El bot ha sido añadido al gremio: %s" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "El gremio izquierdo '%s' debido al propietario del bot no encontrado." + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "Creando carpeta de datos para guild %s" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "El bot ha sido eliminado del gremio: %s" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "Lista de guild actualizada:" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "El gremio \"%s\" está disponible." + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "Reanudando jugador en \"%s\" debido a la disponibilidad." + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "El gremio \"%s\" no está disponible." + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "Pausando jugador en \"%s\" debido a la falta de disponibilidad." + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "Actualización del gremio para: %s" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "Atributo del gremio %(attr)s ahora: %(new)s -- Era: %(old)s" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "Actualización del canal para: %(channel)s -- %(changes)s" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "Creando %s" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "Cargando configuración de: %s" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Error al leer la configuración.\n\n" +"Problema:\n" +" Faltan una o más secciones de opciones de configuración requeridas.\n" +" Las secciones que faltan son:\n" +" %(sections)s\n\n" +"Solución:\n" +" Repare el archivo de opciones de configuración.\n" +" Cada [Sección] debe aparecer solo una vez, sin ningún otro texto en la misma línea.\n" +" Cada sección debe tener al menos una opción.\n" +" Use las opciones de ejemplo como plantilla o cópielas del repositorio." + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "No se puede almacenar más de %s archivos de registro. La opción LogsMaxKept será limitada en su lugar." + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "La opción de configuración LogsDateFormat está vacía y esto romperá la rotación de archivos de registro. Usando el valor predeterminado." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Error al validar las opciones de configuración.\n\n" +"Problema:\n" +" Opción de configuración AudioCachePath no es un directorio.\n\n" +"Solución:\n" +" Asegúrese de que la ruta que ha configurado es una ruta a una carpeta / directorio." + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "Se lanzó una excepción al validar AudioCachePath." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Error al validar las opciones de configuración.\n\n" +"Problema:\n" +" No se pudo configurar la opción de configuración AudioCachePath debido a un error:\n" +" %(raw_error)s\n\n" +"Solución:\n" +" Verifique nuevamente que la configuración sea una ruta de directorio válida y accesible." + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "La caché de audio se almacenará en: %s" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Error al leer las opciones de configuración.\n\n" +"Problema:\n" +" No se ha especificado ningún token de bot en las opciones de configuración o entorno.\n\n" +"Solución:\n" +" Establecer la opción de configuración del token o establecer la variable de entorno %(env_var)s con un token de aplicación." + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "La opción de configuración de StatusMessage es demasiado larga, se limitará a 128 caracteres." + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "La velocidad de reproducción predeterminada debe estar entre 0.5 y 100.0. El valor de opción de %.3f será limitado en su lugar." + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "Se detectó un archivo TXT con cookies. MusicBot se los pasará a yt-dlp.\n" +"No se recomiendan las cookies, es posible que no sean compatibles y pueden romperse por completo.\n" +"Copiar cookies de su navegador web corre el riesgo de exponer datos personales y, en el mejor de los casos, puede provocar que se bloqueen sus cuentas.\n\n" +"¡Ha sido advertido! ¡Buena suerte! \\U0001F596\n" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "Validando opciones con datos de servicio..." + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "ID del propietario adquirido a través de API" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Error al obtener 'OwnerID' automáticamente.\n\n" +"Problema:\n" +" La información de la aplicación Discord no está disponible.\n" +" Esto podría deberse a una interrupción temporal de la API o a un error.\n\n" +"Solución:\n" +" Establezca manualmente la opción de configuración 'OwnerID' o vuelva a intentarlo más tarde." + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "MusicBot no tiene una instancia de usuario, no puede continuar." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Error al validar las opciones de configuración.\n\n" +"Problema:\n" +" La configuración del Propietario es la misma que tu ID de Bot / App.\n\n" +"Solución:\n" +" No utilice el Bot o el ID de la aplicación en el campo OwnerID." + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "Archivo de opciones de configuración no encontrado. Comprobando alternativas..." + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "Renombrando %(ini_file)s a %(option_file)s, probablemente deberías activar las extensiones de archivos." + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "Copiando archivo de opciones de ejemplo existente: %(example_file)s" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "Generó un nuevo %(example_file)s y lo copió a %(option_file)s" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "Algo salió mal mientras se trataba de encontrar un archivo de opciones de configuración." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Error al localizar la configuración.\n\n" +"Problema:\n" +" No se pudo encontrar ni crear un archivo de configuración debido a un error:\n" +" %(raw_error)s\n\n" +"Solución:\n" +" Verifique que la carpeta y los archivos de configuración existan y que MusicBot pueda leerlos." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Error al cargar la configuración.\n\n" +"Problema:\n" +" MusicBot no pudo leer el archivo de configuración debido a un error:\n" +" %(raw_error)s\n\n" +"Solución:\n" +" Asegúrese de que el archivo sea accesible y no tenga errores.\n" +" Copie el archivo de ejemplo del repositorio si todo lo demás falla." + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "Dev Bug! La opción de configuración tiene getter que no está disponible." + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "Dev Bug! La opción de configuración tiene un tipo inválido, getter y default deben ser del mismo tipo." + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "La opción faltaba anteriormente." + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "¡La sección de configuración no está en la configuración analizada! Falta: %s" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "Opción de configuración guardada: %(config)s = %(value)s" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "Error al guardar la configuración: %s" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "¡Los nombres de opciones no son únicos entre las secciones INI! Resolver está desactivado." + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "Error al guardar el archivo INI por defecto en: %s" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Error cargando valor de configuración.\n\n" +"Problema:\n" +" El ID del propietario en [%(section)s] > %(option)s no es válido. Solución\n\n" +":\n" +" Establece %(option)s a un ID numérico o establézcalo a `auto` o `0` para vincular al propietario automático." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Error cargando valor de configuración.\n\n" +"Problema:\n" +" La opción de configuración [%(section)s] > %(option)s no es una ubicación de archivo válida.\n\n" +"Solución:\n" +" Comprueba la configuración de ruta y asegúrate de que el archivo existe y es accesible a MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Error cargando valor de configuración.\n\n" +"Problema:\n" +" Uno de los IDs en la opción [%(section)s] > %(option)s no es válido.\n\n" +"Solución:\n" +" Asegúrese de que todos los IDs sean numéricos y separados solo por espacios o comas." + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "Opción de depuración no válida \"%(value)s\", volviendo al nivel: %(fallback)s" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "Opción [%(section)s] > %(option)s tiene un valor de configuración no válido '%(value)s' usando por defecto en su lugar." + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "La opción [%(section)s] > %(option)s tiene un valor mayor que 100 %% (%(value)s) y se establecerá en %(fallback)s en su lugar." + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "Renombrando entrada de archivo INI [%(old_s)s] > %(old_o)s a [%(new_s)s] > %(new_o)s" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "Actualizando archivo de configuración con opciones renombradas..." + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "Error al actualizar la configuración. Necesitarás actualizarla manualmente." + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "Archivo de lista de bloques no encontrado: %s" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "No se pudo cargar la lista de bloqueo del archivo: %s" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "No se pudo actualizar el archivo de lista de bloqueos: %s" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr "Lista de bloques de usuarios cargada con entradas %s." + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "Encontramos un archivo antiguo de lista negra, se renombrará a: %s" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr "Se cargó una lista de bloques de canciones con entradas %s." + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "No se pueden cargar datos para el gremio con ID 0. ¡Esto es probablemente un error en el código!" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "Ningún archivo para el gremio %(id)s/%(name)s" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "Cargando datos de guild para guild con ID: %(id)s/%(name)s" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "Se ha producido un error en el sistema operativo al leer el archivo de datos del gremio: %s" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "Guild %(id)s/%(name)s tiene un prefijo de comando personalizado: %(prefix)s" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "No se pueden guardar los datos de la guild con ID 0. ¡Esto es probablemente un error en el código!" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "No se pudo guardar datos específicos del gremio debido al error del sistema operativo." + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "Error al serializar datos específicos del gremio debido a datos no válidos." + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "Obligando a YTDLP a usar el agente de usuario: %s" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "MusicBot utilizará cookies para yt-dlp de: %s" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "Yt-dlp usará su servidor proxy configurado." + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "El complemento OAuth2 original está instalado y se utilizará en su lugar.\n" +"Esto puede provocar que MusicBot no se cierre por completo o que se quede colgado a la espera de la autorización.\n" +"Para cerrar MusicBot, debes eliminar manualmente el proceso de MusicBot.\n" +"Yt-dlp se está configurando para mostrar advertencias y otros mensajes de registro, para mostrar el código de autenticación.\n" +"Desinstala el paquete yt-dlp-youtube-oauth2 para utilizar las funciones integradas de OAuth2 en su lugar." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD parece no tener cabeceras..." + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "La comprobación de las cabeceras de los medios falló debido al tiempo de espera." + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "Error de solicitud HEAD para: %s" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "Excepción de solicitud HEAD: " + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "Sanitized YTDL Extraction Info (no JSON):\n" +"%s" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "Sanitized YTDL Extraction Info (no JSON): %s" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "La extracción de información de canciones no devolvió datos." + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "Se llamó a extract_info con: '%(subject)s', %(args)s, %(kws)s" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "No se puede ejecutar la extracción, el bucle está cerrado. (Esto es normal al apagar)" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "No se puede continuar la extracción, el bucle del evento está cerrado." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "La URL de Spotify no es válida o no es compatible." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Error en yt-dlp al descargar datos: %(raw_error)s" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "Error de descarga con la URL del stream" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "Suponiendo que el contenido es un flujo directo" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "No se puede transmitir una URL no válida." + +#: musicbot/downloader.py:517 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "Atrapó NoSupportingHandlers, intentándolo de nuevo después de reemplazar dos puntos con el espacio." + +#: musicbot/downloader.py:544 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "Extractor youtube:search devolvió el resultado de una sola entrada, reemplazando la información base con la información de entrada." + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "Llamado safe_extract_info con: %(args)s, %(kws)s" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "No se ha podido encontrar el archivo de medios locales." + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "Falta __input_subject de YtdlpResponseDict" + +#: musicbot/downloader.py:623 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "Las entradas no son una lista en YtdlpResponseDict, establezca process=True para evitar esto." + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "Atención, error de duración para: %(url)s" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "módulo 'pymediainfo' no encontrado, volverá a ffprobe." + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "Futuro creado para %r" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "Futuros completados para %(entry)r con %(callback)r" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "Excepción no controlada en _for_each_future callback." + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "Iniciando subproceso asíncio (%(process)s) con el comando: %(run)s" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "La extracción no proporcionó una duración para esta entrada.\n" +"MusicBot no puede estimar los tiempos de cola hasta que se descarga.\n" +"Nombre de la entrada: %s" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "Los datos de entrada no tienen número de versión, no se pueden deserializar." + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "Los datos de entrada tienen un número de versión incorrecto, no se puede deserializar." + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "La URLPlaylistEntry Deserializada no puede encontrar el canal con ID: %s" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "La dirección URL deserializada tiene el tipo de canal incorrecto: %s" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "La URLPlaylistEntry deserializada no puede encontrar el autor con ID: %s" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "¡URLPlaylistEntry Deserializado tiene un ID de autor pero no hay canal para la búsqueda!" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "No se pudo cargar %s" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "No se pueden descargar los enlaces de Spotify, procesando error con el tipo: %(type)s" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "Preparando la entrada: %r" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "Descargar caché con una extensión diferente..." + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "Tamaño local diferente del tamaño remoto. Re-descargando..." + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "Descarga ya almacenada en caché en: %s" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "MusicBot no pudo obtener los datos de duración de esta entrada.\n" +"La estimación de tiempo de cola puede no estar disponible hasta que se borre esta pista.\n" +"Archivo de entrada: %s" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "Duración obtenida de %(time)s segundos para el archivo: %(file)s" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." +msgstr "Hay un problema con la elaboración de EQ, probablemente causado por una extraña instalación de FFmpeg. Esto no ha afectado a la capacidad del bot para funcionar, pero significará que tus pistas no serán igualadas." + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "Excepción al comprobar los datos de entrada." + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "Intentando obtener la duración de pymediainfo para: %s" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "No se pudo obtener la duración a través de pymediainfo." + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "Intentando obtener la duración a través de ffprobe para: %s" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "¡No se pudo localizar ffprobe en tu ruta!" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "ffprobe devolvió algo que no pudo ser usado." + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "ffprobe no se pudo ejecutar por alguna razón." + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "Calculando volumen promedio de: %s" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "¡No se pudo localizar ffmpeg en la ruta!" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr "No se pudo analizar 'I' en la normalización de json." + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr "No se pudo analizar 'LRA' en la normalización de json." + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr "No se pudo analizar 'TP' en la normalización de json." + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr "No se pudo analizar el 'umbral' en la normalización de json." + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr "No se pudo analizar 'offset' en la normalización de json." + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "Descarga iniciada: %r" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "Descargar intento %s de 3..." + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "Descarga incompleta, reintentando en %(time).1f segundos. Razón: %(raw_error)s" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "Descarga fallida, ¡no reintentando! Razón: %(raw_error)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "La descarga no se completó debido a un error: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "La descarga falló debido a un error yt-dlp: %(raw_error)s" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "La extracción encontró una excepción no manejada." + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "La descarga falló debido a una excepción no controlada: %(raw_error)s" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "Descarga fallida: %r" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Error al extraer los datos del medio solicitado." + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "Descarga completada: %r" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "El StreamPlaylistEntry Deserializado no puede encontrar el canal con ID: %s" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "El StreamPlaylistEntry Deserializado tiene el tipo de canal incorrecto: %s" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "El StreamPlaylistEntry Deserializado no puede encontrar el autor con ID: %s" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "¡StreamPlaylistEntry Deserializado tiene un ID de autor pero no hay canal para la búsqueda!" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "Deserializado LocalFilePlaylistEntry no puede encontrar el canal con ID: %s" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "LocalFilePlaylistEntry deserializado tiene el tipo de canal incorrecto: %s" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "Deserializado LocalFilePlaylistEntry no puede encontrar el autor con ID: %s" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "LocalFilePlaylistEntry Deserializado tiene un ID de autor pero no hay ningún canal para la búsqueda!" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "Duración obtenida de %(seconds)s segundos para el archivo: %(file)s" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "Error al eliminar el archivo de caché: %s" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "Directorio de caché de audio ha sido eliminado." + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "No se ha podido eliminar o renombrar el directorio de caché de audio." + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "No se pudo eliminar el directorio de caché de audio." + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "Caché de audio no tiene límites, nada que eliminar." + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "Caché de audio eliminado archivo(s) %(number)s , total de %(size)s eliminados." + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "Almacenamiento de audio almacenado en caché %(number)s archivo(s) de la lista de reproducción automática, total de %(size)s conservado." + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "El caché de audio ahora es %(size)s más de %(number)s archivo(s)." + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "Falta el directorio de caché de audio, nada que eliminar." + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "El archivo de caché de audio es de la lista de reproducción automática pero está marcado como bustado, ignorándolo." + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "El nivel de caché requiere limpieza. %s" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr "La lista de reproducción automática no tiene mapa de caché, activando." + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr "Cargado mapa de caché de listas de reproducción automáticas con entradas %s." + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr "Error al cargar el mapa de caché de la lista de reproducción automática." + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr "Guardado el mapa de caché de listas de reproducción automáticas con entradas %s." + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr "Error al guardar el mapa de caché de la lista de reproducción automática." + +#: musicbot/filecache.py:355 +#, python-format +msgid "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "Conflicto del mapa de la lista de reproducción automática en Key: %(file)s Old: %(old)s New: %(new)s" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "Error de argumento de longitud: %s" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "Error al cargar las traducciones del registro para cualquiera de: [%s] en: %s" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "Error al cargar traducciones de discord para cualquiera de: [%s] en: %s" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "Cargando archivo JSON: %s" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "Error al analizar %s como JSON" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "No se pudo extraer datos de la clave JSON: %s" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "Omitiendo configuración de logger, ya configurado" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "Nivel de registro previamente establecido mediante la anulación a: %s" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "Cambiando nivel de registro a: %s" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr "Los registradores de MusicBot han sido llamados para cerrar." + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "Archivo de permisos no encontrado, copiando de: %s" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "Error al copiar archivo de permisos de ejemplo: %s" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr "La configuración 'OwnerID' está establecida auto, se establecerá correctamente más tarde." + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "Validando permisos..." + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr "Configurando auto'OwnerID' para el grupo de permisos del propietario." + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "Actualizando grupo en archivo de permisos: %s" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "Eliminando grupo del archivo de permisos: %s" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "Añadiendo un nuevo grupo al archivo de permisos: %s" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "Guardando archivo de permisos ahora." + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "¡ConfigUpdater no pudo analizar el archivo de permisos!" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "Tienes una sección duplicada, ¡arregla tu archivo de permisos!" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "Error al guardar el grupo de permisos: %s" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "¡Dev Bug! Permiso tiene getter que no está disponible." + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "¡Dev Bug! El permiso tiene un tipo inválido, getter y predeterminado deben ser del mismo tipo." + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "Máximo de elementos de búsqueda no puede ser mayor de 100. Ajuste a 100." + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "No tienes permiso para reproducir los medios solicitados.\n" +"El extractor yt-dlp `%(extractor)s` no está permitido en tu grupo." + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "La limpieza se llamó a la fuente de audio: %r" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "MusicPlayer.skip() es llamado: %s" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "MusicPlayer.stop() es llamado: %s" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "Gremio o red no disponible, no se puede reanudar la reproducción." + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "MusicPlayer.resume() es llamado: %s" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "MusicPlayer.pause() es llamado: %s" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "MusicPlayer.kill() es llamado: %s" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "La reproducción ha terminado, pero _current_entry no es ninguna." + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "Posible advertencia de kill_current_player()" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "MusicPlayer.play() es llamado: %s" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "MusicPlayer está muerto, no se puede reproducir." + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "Gremio o red no disponible, no se puede iniciar la reproducción." + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "MusicPlayer se pausó previamente, reanudando el reproductor actual." + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "MusicPlayer ya está bloqueado para la reproducción, esta llamada es ignorada." + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "Error al obtener la siguiente entrada." + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "Error al procesar la entrada para la reproducción." + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "Creando jugador con opciones: ffmpeg %(before)s -i %(input)s %(after)s" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "Jugando %(source)r usando %(client)r" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "Omitiendo borrado de '%s', se encontró la canción en cola" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "Eliminando archivo: %s" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "Archivo eliminado: %s" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "No se puede eliminar el archivo, está en uso." + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr "No se puede eliminar el archivo debido a un error de permiso." + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "No se puede eliminar el archivo, no se ha encontrado." + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "Error al intentar eliminar el archivo." + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "No se pudo eliminar el archivo, abandonando y moviéndose" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "Deserializar devolvió un objeto que no es MusicPlayer: %s" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "Error al deserializar al jugador" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "Datos de ffmpeg: %s" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "Error de ffmpeg: %s" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "Advertencia de ffmpeg: %s" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "Mensaje de descodificación de error desconocido de ffmpeg" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "Datos decodificados de ffmpeg: %s" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "Añadiendo entrada de stream para URL: %(url)s" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "No se pudo extraer la información" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "Esta es una lista de reproducción." + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "La información de la entrada parece ser un flujo, añadiendo entrada de la corriente..." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Tipo de contenido inválido `%(type)s` para la URL: %(url)s" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "Obtuvo text/html para el tipo de contenido, esto podría ser un stream." + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "Tipo de contenido cuestionable \"%(type)s\" para la url: %(url)s" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "Añadiendo URLPlaylistEntry para: %(subject)s" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "Añadiendo la lista de reproducción local para: %(subject)s" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "Video ignorado desde el enlace de lista de reproducción compuesto con ID: %s" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "No permitir la entrada que está en la lista de bloques de canciones: %(title)s URL: %(url)s" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "Ignorando la canción en las entradas por '%s', duración más larga que el máximo permitido." + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "No añadiendo vídeo de YouTube porque está marcado como privado o eliminado: %s" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "No se pudo agregar el artículo" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "Artículo: %s" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "Se omitieron %s entradas incorrectas" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "Reordenar bucle sobre entradas." + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "Pre-descargar la siguiente pista: %r" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "sin datos de duración" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "no hay datos de duración en la entrada actual" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Track_data no válido, debe ser de tipo `track` obtenido `%(type)s`" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "Ignoró entrada no-pista en la lista de reproducción con tipo: %s" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "Total del Álbum de Spotify abordajes: %(total)s siguiente URL: %(url)s" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "Obteniendo el Álbum Spotify siguiente URL: %s" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "El objeto de álbum de Spotify puede no estar completo, se esperaba que el %(total)s rendas pero se obtuvo %(number)s" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "El álbum de Spotify tiene más pistas que el total inicial." + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "Lista total de reproducción de Spotify abordajes: %(total)s siguiente URL: %(url)s" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "Obteniendo lista de reproducción de Spotify siguiente URL: %s" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "El objeto de lista de reproducción de Spotify puede no estar completado, se esperaba un rastro %(total)s pero se obtuvo %(number)s" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "La lista de reproducción de Spotify tiene más pistas que el total inicial." + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "La lista de reproducción de Spotify contenía pistas usables %s." + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "El estado de respuesta no está bien: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "¡Respuesta JSON no se decodificó a un dictado!" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "Error al hacer la solicitud GET a la url: %s" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "No se pudo crear la URL: %(url)s Razón: %(raw_error)s" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "No se pudo hacer la solicitud POST a la url: %s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "No se pudo crear POST en la URL: %(url)s Razón: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "No se pudo obtener un token de invitado de Spotify, por favor, intente especificar el ID del cliente y el secreto del cliente" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "Se ha creado un nuevo token de acceso Modo Invitado." + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "La respuesta API no contenía los datos esperados. Falta la clave: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "La respuesta de la API contenía datos inesperados.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Solicitado un token de Spotify, no terminó obteniendo uno" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "Se ha creado un nuevo token de acceso de Modo Cliente." + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "El estado de respuesta de la API no está aceptado: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "Error al obtener el token de invitado de Spotify." + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "No se pudo obtener el token de invitado debido a: %(raw_error)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Sólo el propietario puede usar este comando." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Sólo los usuarios dev pueden usar este comando." + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr "No se puede contar miembros cuando voice_channel no es ninguno." + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "Error al guardar los datos del token ytdlp oauth2 debido a: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr "Cargando datos de token OAuth2 de YouTube TV." + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "Error al cargar los datos del token ytdlp oauth2 debido a: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "Almacenando datos de token OAuth2 de YouTube TV" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr "Datos de token OAuth2 en caché inválidos." + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "Token de acceso expirado, actualizando" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "Se han proporcionado cookies de YouTube, pero se está utilizando OAuth2. Si tienes problemas, deja de proporcionar cookies de YouTube a yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "Actualizando token de YouTube TV oauth2..." + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "Error al actualizar el token de acceso de OAuth2 debido a: %s\n" +"Reiniciando el flujo de autorización..." + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "Iniciando flujo oauth2..." + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "\n" +"AVISO:\n" +"Para dar acceso a yt-dlp a su cuenta, visite:\n" +" %s\n" +"Luego ingrese este código de autorización: %s\n" +"Tiene %s segundos para completar la autorización.\n" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "La aplicación puede colgar hasta que se agote el tiempo de autorización si se cierra en este momento. Esto es normal." + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr "Se ha agotado el tiempo de espera al token OAuth2." + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "El código del dispositivo ha caducado, reiniciando el flujo de autorización para yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "Autorización Yt-dlp OAuth2 exitosa." + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "Añadiendo plugin OAuth2 a Yt-dlp IE: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "Clientes Yt-dlp por defecto: %s" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "No se pudo encontrar el ejecutable de git." + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "Intentando actualizar con `git pull` en la ruta actual." + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "Resultado de git pull: %s" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "La actualización falló, necesita ejecutar `git pull` manualmente." + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "No se puede ejecutar pip." + +#: run.py:180 +msgid "Error using -m method" +msgstr "Error usando el método -m" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "PIP falló al llamar al subproceso." + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr "PIP falló debido al error de permiso." + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "¿Falló el PIP debido a que falta el ejecutable de Python? (%s)" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "PIP falló debido a OSError." + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "No se pudo decodificar el informe de actualización de pip JSON." + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "No se puede localizar o ejecutar python -m pip" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "Intentando actualizar con `%s` en la ruta actual..." + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "Resultado de mejora de pip:\n" +"%s" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "Código de salida resultante de actualización de pip: %s" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "No se pudo ejecutar la actualización o no se pudo entender la salida" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "Puede que necesites ejecutar `%s` manualmente." + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "Presione Enter para continuar . ." + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "Comenzando comprobaciones de cordura" + +#: run.py:361 +msgid "Required checks passed." +msgstr "Pasaron los controles necesarios." + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "Se ha omitido la comprobación de actualizaciones." + +#: run.py:376 +msgid "Optional checks passed." +msgstr "Comprobaciones opcionales pasadas." + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "Comprobando Python 3.8+" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "Python 3.8+ es necesario. Esta versión es %s" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "Intentando localizar Python 3.8..." + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "No se pudo localizar py.exe" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "No se pudo ejecutar `py.exe -3.8` " + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "Python 3 encontrado. Iniciando bot..." + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "Intentando \"python3.8\"" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "No se pudo localizar python3.8 en la ruta." + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "\n" +"Python 3.8 encontrado. Re-iniciando el bot utilizando: %s run.py\n" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "No se pudo encontrar Python 3.8 o superior. Por favor ejecuta el bot usando Python 3.8" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "Asegurándonos de que estamos en el entorno adecuado" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "Comprobación de entorno fallida, %s" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "El directorio de trabajo actual no parece tener permisos de escritura" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "Por favor, mueve el bot a una carpeta con permisos de escritura" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "FFmpeg detectado está instalado en: %s" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "Añadiendo entorno local bins/ carpeta PATH para ffmpeg empaquetado..." + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "MusicBot no pudo encontrar el binario FFmpeg en su entorno.\n" +"Por favor, instale FFmpeg para que esté disponible en la variable PATH de su entorno." + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "En Windows, puede añadir un EXE precompilado a la carpeta `bin` de MusicBot,\n" +"o puede instalar FFmpeg en todo el sistema usando WinGet o ejecutando la instalación. en archivo." + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "En MacOS, es posible que pueda instalar FFmpeg a través de homebrew.\n" +"De lo contrario, revise el sitio oficial de FFmpeg para crear o instalar pasos." + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "En Linux, muchas distribuciones hacen que FFmpeg esté disponible a través de gestores de paquetes del sistema.\n" +"Compruebe por ffmpeg con su gestor de paquetes del sistema o compilarlo desde fuentes." + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "Menos de %sMB de espacio libre en este dispositivo" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "\n" +"Buscando actualizaciones para MusicBot o dependencias..." + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "No hay actualizaciones MusicBot disponibles mediante el comando `git`." + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "No se pudo comprobar si hay actualizaciones usando comandos `git`. Deberías revisar manualmente." + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "Los siguientes paquetes pueden ser actualizados:\n" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr " %s a la versión: %s\n" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "No hay actualizaciones de dependencias disponibles mediante el comando `pip`." + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "No se pudo comprobar si hay actualizaciones usando comandos `pip`. Deberías revisar manualmente." + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "Puedes ejecutar una actualización guiada usando el comando:\n" +" %s ./update.py" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "El valor está por encima del límite máximo." + +#: run.py:638 +msgid "Value must not be negative." +msgstr "El valor no debe ser negativo." + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "El valor máximo de registros guardados debe ser un número de 0 a %s" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "El nivel de registro '%s' no está disponible." + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "El nivel de registro debe ser uno de: %s" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "Lanza un bot de música para reproducir discord construido usando discord.py, youtubeDL y ffmpeg." + +#: run.py:669 +msgid "Available via Github:" +msgstr "Disponible a través de Github:" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "Para más ayuda y apoyo con este bot, únete a nuestra discord:" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "Este software se proporciona bajo la Licencia MIT." + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "Vea el archivo de texto `LICENSE` para detalles completos." + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "Reemplaza el idioma por defecto / sistema detectado para todo el texto en MusicBot." + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "Utilice este idioma para todos los mensajes de registro del lado del servidor de MusicBot." + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "Usa este idioma para todos los mensajes enviados a Discord desde MusicBot.\n" +"Esto no impide la selección de idioma por gremio." + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "Imprime la información de la versión MusicBot y sale." + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "Omitir todas las comprobaciones opcionales de inicio, incluyendo la comprobación de actualización." + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "Omitir sólo la comprobación de espacio en disco al inicio." + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "Omitir sólo la comprobación de actualización al inicio." + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "Desactivar MusicBot para intentar instalar dependencias cuando no pueda importarlas." + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "Especifique cuántos archivos de registro guardar, entre 0 y %s inclusive. (por defecto: %s)" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "Reemplazar la configuración del nivel de registro establecida en la configuración. Debe ser una de: %s" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "Reemplazar el formato de fecha predeterminado usado al rotar archivos de registro. Debe contener valores compatibles con strftime(). (por defecto: '%s')" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "Versión: %s" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "Se ha abierto una nueva instancia de MusicBot. ¡Este terminal puede cerrarse de forma segura!" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "Cargando versión de MusicBot: %s" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "Registro abierto: %s" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "Python version: %s" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "Cambiando directorio de trabajo a: %s" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "¡No puedes iniciar el bot! Has iniciado `run.py` en el directorio equivocado y no pudimos localizar `musicbot` y `. el` carpetas para verificar una nueva ubicación de directorio." + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "Para obtener mejores resultados, inicie `run.py` desde la misma carpeta en la que clonó MusicBot.\n" +"Si no utilizó git para clonar el repositorio, se le recomienda encarecidamente que lo haga." + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "El error de certificado no es un error de verificación, no intenta certificar y salir." + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "Aquí está el error exacto, podría ser un error." + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "Para agregar fácilmente un certificado a la tienda de confianza de Windows, \n" +"puede abrir el sitio fallido en Microsoft Edge o IE...\n" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "No se pudo obtener el certificado del emisor de la tienda de confianza por defecto, en su lugar intentando certificfi." + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "Error de sintaxis (modificación detectada, ¿editaste el código?)" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "Error de sintaxis (esto es un error, no su culpa)" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "¡No se puede iniciar MusicBot debido a un error!\n\n" +"Problema:\n" +" Hubo un error importando MusicBot o un paquete de dependencias.\n\n" +"Solución:\n" +" Necesitas instalar manualmente los paquetes pip para MusicBot\n" +" o ejecutar sin `--no-install-deps` y MusicBot intentará instalarlos para ti." + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "Intentando instalar automáticamente los paquetes de dependencias de MusicBot...\n" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "¡Es posible que las dependencias de MusicBot no estén instaladas!\n\n" +"Problema:\n" +" El proceso de instalación de pip finalizó con un posible error.\n" +" Es posible que falten algunas o todas las dependencias.\n\n" +"Solución:\n" +" Debe instalar manualmente los paquetes de dependencia.\n" +" Abra un símbolo del sistema o una terminal en el directorio de MusicBot.\n" +" Puede intentar usar los paquetes de instalación de scripts de actualización.\n" +" O pruebe este comando manual:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"También puede solicitar ayuda en el discord de soporte de MusicBot:\n" +" https://discord.gg/bots" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "¡Vale, esperemos que la instalación de dependencias funcione!" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "MusicBot obtuvo un ImportError después de intentar instalar paquetes. MusicBot debe salir..." + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "La excepción que causó el error anterior: " + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "MusicBot está reiniciando suavemente..." + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "MusicBot está reiniciando todo el proceso..." + +#: run.py:1169 +msgid "Error starting bot" +msgstr "Error al iniciar el bot" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "Cerrando bucle de evento." + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "Reiniciando en %s segundos..." + +#: run.py:1183 +msgid "All done." +msgstr "Todo listo." + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "¡Vale, estamos cerrando!" + diff --git a/i18n/es_ES/LC_MESSAGES/musicbot_messages.mo b/i18n/es_ES/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..bbff9aa6b8d4afe26641ce4d731d3e1cc930df48 GIT binary patch literal 112609 zcmb@v37j2Ab?@I}NFc*z%x*Al+1S#IH6zJOY-EhBU9z=VGm>M#XztA1nYq%Pd&hT? zG&Tma*k%bN1PB2VgV{H;nI&Nhv3Oxi2wTX)gP4RR0RoTw6SjoB|Mz!JRdwH4WSbX0 zM!)I4)zwv}PMxhzRe$4@`@SOMf0vzgIws1WQ zZUpZD*MmO+_krtpcn$bG@I3JS;5pzwgBOAiAMpBjf_h&U90gwrs@!)#nw*_7NL}EC z;4!cUZUg@j)bE27*8BE=RGqyZTn&B>RR4blo)50%rrP&3Q1@R6{wDb6AVsoYf~SE4 zboNqk8@LC&1zZdM4XFOypNG|+i$J=X9Rk&#-vb{3eijrx?gFm{&*Y&q!5cue?>10$ z`z)yUoJ{4HgL^^s=QW_7{{*P|@59S31J40BgLP2j_g+x#{}y-?_*iZ}6}%065co^* z6z~BMA5vzI2ld|VAf(G)0y31@pMZ}C?*h*N|1T(doB`2ta5t!aHNkg)H-X}>br)pW z6}k`dU-l9H5gmREj)DU;j;3YL1owjP0adP#LcaxG2tE(|U65C1kGLqyHh??8uYfNC zyWrRpv+TFQuY$LL6AYs2`93JRt$-=@-a7cmKKL2@0{D?9c|U&p$yxRr{Qk$F=zAx~ zP-fo+`7e6}gYbB86jcA)p!neTLDl%#R9!IfM;kWQ`!&j-af6%ZE6 zUJHtDUja`C&w)v<0j~h>0N)0x-`8B}^6O~8SAlx}N5GeZ{|f54=j`+T-UaGC{UhG) z?cm>YeGGg&bQys;PvyF`pSFW91|JK)8PxqdL54c}I(Qm*8jXbYvWr2zw+mhXz6Df2 zz7DF~DOWii*Md3MPX}Se>{%eJn0*9%7Wgx83_QkQ41<3M-Ui;2(eoU?%nR zN8m-^8i=TIngQPhz5+Z9ZhpG+*?T}pnEevG1-$a0^Z(z0dj7FvPLEMg{e1x_di^=b zE3==03{5s#fp*|qz+1sR<5~7@@Q2{D!CPT|^*f*Rd2=1e5NCf19t9s-&9eJ}F90=< zUJ7mmzYeND`IL{(82DkXe;@oZc;z&00neJDEcgTPW8i0NS@tII`G;Iy4Abeq;rc1y zKY-`fT^^k>n`O`FLvDbd=l*0f%RT^}HK2Z0+28s_)K9*%vooxkA z1wR7vU-ni05q9e1J52F9qJj>_vXXtIxi_wA!iH)R>DlU;B#a}j(E_!nUJ79W?5&-eM$3iwKJGrxZnd^Fhi0&EiM zITh6SJ@19yj}L)QJrOlc3sn|KD@|-wQsS>oM>Q@K3=3@E^nP4}2NC%Jt*G z$ALqje!m;s)&Gxz8lPW)7lY@&(%Ufys-9cH0mk(>SmXL%|G?XK)vH|I-vX}U z{+qy~;O9Y&!`4^39DM<(c7G7u1>Om60Z)F7>$3ykBe*^WJ`#KhxEg#DcsBSY@Im0u zLG|~3f9UgfGk7Z3RZ#T55rn0(PlE@*(LZu~=N;fzxc&gh5M(dB6Koh+semiF?t7#2 z%>eiluAc_#{>YnL&s`5bjO$l}7l7{q*MZ*x{{ejDo4p-B0soro)8FF#{}1p{`u(lQ za&Q>D92^B#fUgC`SAPcH0)8LVc(&i>_y^#ha{V#zgWwHscRhFhJCJo;zYc7J^>=33 z&EQ?&v%u-wy}#cDhq*rET`pIz1XpqW8ZZYx2|f}0Hu#(1>F;K4f(O7I;G^E-<5mGh zzqf(sg5Lt4qTk=^^QZ;t{ujZs!TY|?=gm3bBe~uV=HNl_!QhSH_fN{Q-vQ4Dum6DC z`S1CV*Yh<{?R@YbJAEz$H69gkEBFHNBJc|!ugreqPh5X|1f1sjejoPwnxOdf)nFI= zRJgw6Bi^4w;APx@6R7d|4p;#n_))hX8sHgR-wEykzYW&G3qI!Udp&pw*PjDLzu)+{ zxBoJ5H`i@&0K6020R8|}`C$fC?W%)0_$p9*`(aSy|Igs7zz2Q8<>p(!3%ULQD0%jT zKXW}c18(N}|8wX2e*#Ci{wb(-T=6NlgPsds#`Srh_I`E(-U_be{-?pWfivS052^}ZXxCxUMVMX$R+ zwf`)Hqv&x3xCwkQcp3ObFb7XT=$sCo2d)7}K-KqLa4q;wP|tlGd^)(|tL|Uj2tJzY zzXQ(${|$UFc=q48{<{EFzqf)zU>8*X-vElfUjX~TpMv)VPx@PzZ}$UF=6WBv0-ONv z17F<)K7{KR{Jr}@uL8Go{ZsHa!OOnp?LG>MFJ1>;2A=xAUG6^>+`{$SzzOh2py)I5 zb#Lc9cn;TZ1up@=0zL^mzbpPb&$0=IE}2Y8Xn zgO`Hmf6K80iqGB;?g4)Uia##>wzp>|GzBzEABu1-(8-33lzQI^dC;g?}9tIzUU|T zdOUX%c=<_;$IraJ>0h`V^=|ND%6$x62mTz~2cGkvKHr}S>i%oNA@GZ!e*eGVJHUPa z<$l?JgW~_E{L=gTN^p$p?}ANm`+vJX@W-H@J0t6}@%udZTU?*o*JplF8yw~O@4<^{ z@0yePj82DfO6Ix$XW&}!;$Q2_9tzgMYr$uN@~8d}ILY;Y|9W5cX>j6xedf=uzJFgf z#_!()FXa9e{e2csc`i7`^@R`UvvIi<)Hr?-RJljtq^<||fR6@W2%ZnV0o3n*3+@6> z=H=VLr-K^Tw}7j_UxL?zXFs^l^yKTo3%LGEQ1radL;B24TL)@BJ_D?P9|gsKk3YH3 z=JAujFL3>Sa0PhNL;FlFz6BKDeje2GzW_fAu0N$OYkx7?*KRI{=?}n z^w)#94`R%zTX1(g4cnPOP>QT1HT7u0MEf_R=u;J=E-|N z)$=c)`2B&8@%~>5N=_UC_1qi5*MZ*wZw7BU)$4umV}0EAfO_A99@l4jbTwGzdK>s~ z@OJPD@J>+U^5D~a{5FB&yBB~D0)Gx}2Jc6(OZsOgcoujg_*(GI;77o%r}vq>J}LKc z-3dz0z8XX%WnTnu1V6l@&(;ktKEwI#HQ>9spPkuf^Y}fW=0pDzoPV}~n#a!p#V4Ny zp9MbbEFa&Ofp>BJfV2BDSTFklhzQGmwzALSHUG4#FMB4}x8i(>zfK$U_qM^8a{ag9 z{lP=$^tn9C2d+*^O)aES~YK zbv|DEU>5PqZ}ZRh`TbAN>&qZj_Kx%WvJZftyTIH1>q8^FhcD>n6I&jBw1p8|dY6n!4M+4;K)uH^a_P<;Gu5Z257 z4SWUH58g_9!8d}3!C%|fXX^{sf-SCp3Z6vyL)%@R%`L=PF^H&=b-+md~4L*9e^UpN6f$R4K{5Md)pTDQi?62p7 z2f6+fD7~_BuhZ?>p!CAWLGj@Ou4Mj$qoDfvMG%(AruVtrdc}y3>qAHTGE`1>+J2u8 z4?W=WZ#yWu-3V$Pz7^Db{daKvN$~eoeP&PWzS`+}E2#1NCU^_@_^0%lo&ILegQlKyx-Hk{2+J<*LCo0@a>@F=@-Fm z;EzDj>%xP57Wcgw)cZ~!^Y%@G6|QdsSAh4a_l~ZQy&k{tzhnRGaX6ZUrB~^}y2h71YfSSjj1P8&>oBsRdpzhCuZw0>sO8?$4*Ju9R z&%xES|326DSsZ$83wm??O;B>?VV%AVQe=C;Ij%p{_5Q3n;{0>~6hFNjya49;C`+ja;(qdOI1+i_Ro7gH-o41o=<{m|F^E|Ge7tt*E@fm4{qZAm7wVV z3h;rH{}QNr{^1#Y7MDHw27ms0py>LDXF45Lftn{*fzrS40Ht@o0p12a`dMzDd>9nn z{|WrE?%&v#{Sf>C_+s#D&+f~9jrZ1`(`V~t&FA)IZ|44ep4Vr7$J;^8`}H?DAKeV< zy?+6o1LimTdv=0*xbA{`!T$x`1wQhYK3k{yDJVN||MR_`cY)_|{qNv4;Hnom-VAD< zehbt*7Dk!=0KJWwJ&%iP8T`%i1f9@eKclsU!rH9@Dz7qUvQ2a6b3V+WVz>Qpg8$2Cc z_4{7Wc5syIw}EGZ{|$ zfTGiPLGktKS37^rfGYQ5Q2qQc_&V_0-~sUF*Z92uI;eTH<`4U9-Q|U#-j$iRqy@Y1%4is9Q`SH8F<#az5Xds z^}i9k0sJhe`Mdo+Za?1uN)O!kz0NngK*{x+K=toSpvLQw?{ogy20oeV7li9igOdCG zcldZd4U}Gc1E}XtdcVv0^FYa!{or}v^Fh_~QBeK(PjD7|@(29+cY@NJ5BQ+VvsK`O zxvqjIgB@@kcoV34KLm;3L7;fa0U~fm#3H;M&2# z;e1o2F;T7S@<6jTQO$Q&I@QL+{QAMceC(`Mlht}Qtp$FPCWN%@)m_Z62xe;+bmRo~usOrfOAhjDDTywpvtMpSQ-> z8q?NHnzm-D)tt45LXp(Fq6Jb7eW8=I-Z)zqjLsbf_J zbiOmgpNp&N&P~D&P`=Jv=c&=P7 zc_r5{F=!CE+pe~TZMZhotCf~DbgtSO;x=ue&e>VLVy;!4svYx!n`>=xQ4isdRO(Q+ zIb}DUBSH_hG%DkDerk!4?9Yj2^Kh-&9_}3Lw~i-{%em1UKQ!H{%*}-NZiNDo0ITzHs;?A78)!LKo6F}a6Ni~Y?MS&e zyw1amYYC60Q7jYR=EF48W~$a|cS1vUYPP8Zl_Ql}Jy4)ARhte>)3&Zqpw`OURqI@w zL3-2~xKWvU!((WV6fk9lEy59XJ)y(yCtDMVL-X&mgMW`9!51xogB< zZ1X@8L`qC=uPlC%D+Cd>?GITCBVDYGcO!>Jyigo8^id?SUTIA;8E^B;Wvr7i+$|4z z>Al5p)n=X}m|TlA(A>TA^FR$Fr(T<_br`Uuh1!tmAXGov znOQZEL!!BE)Cl&#Y!kI0^@{51%+Jvp_y`qzSRJ4iG(qH_Wy-gzbIq3CIX+*!*15r+ zuv!_+0io8e9CmG#i;Vj#fTKk}BQD}*q z(VS@8A9m}Y#Ey|L*o+WyNKOMhAr`>J=+rv(DjtTp6i7PBK(Ph-;jC4%OBz)MVFeTx zH}U)oqS}m>W}{wfxQ4KL^y`?)nO35ttkYHPfs&nrmjcHJ)#p+|EgYudF1W0%C#b-E zjY+d$d_YXJ<}NC{UWBW5D&AjQ zi)nZSvX9PGQL$39B1p3%_8rR+T`eqT*SNur8SdX6i)sQlG%0C7wRLb#E@9h-r@cBi z&M~1FCheI(Uyg%lsMit6ptPcV=kj z;NXV6J5J;nN9TD{y$0DzCF$%DdDZId-PRJydQtOrk7VwNjmNg7E7S0nfCS~_s&euJBgj-iQH$c(tPmtZwmH)k4y|sfK|51JvXX=d_M7L zMYzlSbJ?z+2UkT0%)PvU!TzzaF~}7<5JZ68Of}?t%_H>c!*ejyR&<3~Iwt=rcvr1X zZK7MpvkbLiR(BigX;bxBWp=J!Js9o>kyAg&G=o)W>lV0vK8IZcXYj63i5i3b?cy$s` zC1S_R%#b7AjUl$;?o}rtFw)9gTkI7Kk?LxkwJHuoy-BP^+%hYVz1Em&N-?0!@gKdU-M>~>vO0ZOko~iD5-Rr%6yQ$BI~imXROo9Jh926 zF*#OLm!VMG+*VcFcI@7fZ9~WO#-?HI3GK?gY(P^i*Nw>d9ZdIR|Q! z)g~b~21D%`bO8wK4NCrXnu@IDJ7w0zpKPI!bv=+qc#q3jP(W#h+b>iWIt@xmhh6ou1ric(KGNktg>P-8xqBr3I$Ft7Y4MMk>Y^; z*@on{5XmvCZ$Hx}-?3Ryg(f`OkluB(uzF+&B|RS}FBa)ll~x1pTn|ex_|2XqJSESl zHC{u2Gkv9Q3E-GbR6SOm=t|%Z_wz;~eHEm!W=FeZ03&lMPvyU)!l6t16R-CS)=2g0p*DEq!_EiZqn%s2l zfpb`{S2raeT57ODT{N^i7p(tU1J6RP!h*(lgs6SEHYfj)Muv&&%~DK{SHPLGvzXEl zzdrvz)eaOi3_M3DM+4vJR50?0G-9F<+Z89{eN|+!wJJvsR$HwmGCPx6PftzOCUcov z;b|jb@6&mdl83AF(k9DR<=WG2Q=Ee<*5^+xOr2{aDqGbGG*J^2-zGK+Ir9Dcc1A1H zqs9zmB_HWfcy^djI%W|iW*K|}ER~6l+>f^XD$#9qtY)4auI8g?jft7nipF$^#;le* zRWXL{5IO01A(&jjlHqGXQqNWe~dCn83Ikkl)$)|?+i`WnZ|o*h*?y48i%!F;qS&;CWt3qtTpIV zk~?0?f?R;de*{My<)At=76yo*R_!iwZ0zvwzD(uGFEz%la zhWM|vCKa&s0p<7PX8B5s31YQJf>Fa~9+3v0vK!~uhrduh-Ih5ekZrl*#w$#-V8dUt zDm*mMGo=vPR(ZQ?(GKag@F$8rmb9vt@$<~$)?*c!-g@XLBo7WAwFiUTLw}JXLETCR z7ey4?Hm`EQugqy%5i7I0Y3NEFK`=QV=fDD*nGQ@t2%&nFO)v(D=*t>K1ml^pp2I*^ zrkt}(zYk;DF%F6k*P1XYkyeCht69gYl>N@H)lSvQ5R*e~iK9w4chYoqQ3`qa#&jDt zK~epzB52%si>>*$5?l zPz_6XlFSk~Mmsf8;U$?W&a8wvgOwvO%g~wXk>tqFJ%7!GB`Gqi1ztpMXt_V`luGR) zAS#1uxPK$sBKQ;*M2GRh(p}<&sHn}b#ej+pv2`iTH)#T2$DN2jMgK&$jLU2m9{Uxn zGahsP+lZ?-+6=ZEmA6w&8B=M;X7iTP!-2I$ms#;$%gk4WzUYa%7{`EH5CgC?@y1~JEB6Sc8IxJBe)aUJ25|^ z76kF)j*q(MV-V>|cPkB;L!ma)Z84;vb?y+NW!;(XRAHd-qj4NvHS;md-O#p$^@$=O zWR993%x`{Y(v??91Xv(bj1&r%G6cGFGBFrE2~P_RPsUPO%$0hKwM%qFrdds$(KfMp z6c|sf39Z1~wjx162Z@kYRZ>$}+^nPLXkDy4z0m}EfB#h*_U+!Wd)s;Q<3n6)Q%@Q;f74{s zUeu*FR-E;y)|#Yoh;{iCuxb-Si0I;2D^t$+&=1c1rU|aVA!}m2?otGB2}Ui~;~JNS zW5FpVoYFF^KGawfC8vIbf{@GRO7KXK08x0^1Y5GL_5cfR&E_0*Q#lngg+V;U*CAYe zXf%VmlS+RbeP>Przvy3UnHk@5@^&Rpa_K zYgWp_B*xZicA67S*et}n2t0%m?dEKC%~Z1vcdStiaE;9pjNkrU6-@k&$BIOkf%ckZ z3-|O`H8>^3Wno2A_hc_>Qf*!kR6v9h<7bvpq9LhSBHyx=nJ29p+p_bS6{t=bNU+Y_ zOv~b|J+=04h|Fh!L6wt#VAaTK!UYwj=dBIVYBRqedIV-;nypi6pK*-!GmehTBdbnb zm04%JYc;7enAcl~D7l0TGdMf|v8)(AOJWf9&7=psrrtp)vzg1}@~jn8PCZH>Wyd(J0U?uMv^uM?4*TZ)aG9 zg;~ZP$dR@Vc}T?^vemJA-C`5&jD((JaoFQhiqzM_zePt#xLM*#;kvonYcb5SQG$F7 z+>TwS7brpk={)1WEmWJAfhOkHXgGrIID&eVc8aEKk71o{P|0@J7hlcKZsoQ(kgOFG zfYy^hJ@t|#VF^C&cxA>>I4S}jFp(WV6f zDG6B|d!`PGg$rC`76cA#errfF}TCNsGBXuKxPeu`Jgl95_WE-ggCq6cmyCcJy z9*`%6?R=!x?6xJKgA*?WXluSv9Ku>hd18UdSQt1lBwdO~FDhMX4m=p2z^`KvyM$cF zG7G8}>xL6bRnuJERM8+vH>|L9Jhe*Ha&@CCrs)b5llrNk?>rBJy6q47jPO_V=FH&0 zCM=bYdaiA3s|l>Rlg1)GN!6h}ruPvMwFbI9gc&S(fHhqvr4*RjH&JhzXBA!*9i!yo zTOfj)zf za@NH6)MflL%EuTnbdh9}7#U_Oahi%eTr6DXYt){wU>RE!Voh*st>F_AftOk&t7fj- z!WSYcGS{jdQ3QDNt~dpI%314u5@-h4_$o~@S`Lc~Q)f^6nYbO}AX>9<0dn!v(TqpI zDb^3&;?l0Y(G3ClDYQOH;+1F^`cT2G*6nHzo@%jhjEyymbBL{} zD382DiLp?vN|mZ^)Fuu~h0|7lt$t^k^H$k&`bl(*UP6cfj#5aGRT;0AqT(4H6IO-k zl+IBlX-Pd37bg|8RC}7^_;Ls=lfF0*i_&qOKeSHZ;xB~q-Q^s|?Nx%}+Tjb#xLUV% z?eN-Y_)bk(fYMq<*GEzSHN83st`Gy0UrAdklZS9=R6pL}t ze$&EYY?NtaQ$E4rmv6%KgOnu`C23AyMwoD8fL?lTHZ{xkV~E>bLYr1Q>o!_Nh*rKD zHr2$*ZaGC`XlRq?q*7yaZN!aQtI;G8FGF8TPo_PdcG(tlYa;4BJ*l(3u{|><+g&r5 z@w@8th<+oabwD9V)62sXSRCrIYBi#S;siGbf36f^s5sH~3yl$RybU|ge(QO%T zsu}vLko87+pNLno_(fbALC#j4RWHI+vJzPdhv_w(&3vu?2~`f~`L4>b+H7}LOk>tU zXa|)muZcW~ND6gL4NaZ0Eb$PYv#~Z)W+#iy)Om$kMkO)sAbYGX&()UEWE39t^*t4$ zN~IKQSoDS%6p9wJRUS;U;eK+-S`A;y_KZLioS_|B{v$FS)AcQ#3xZIwmV#_<$z#v+ znNEkqu{CRygfu)yDm;sY&DQjq^VZaB<62N$qwX0i%yee!XQE-IbfqN{96tUSuVUiV znk|jImNe)9ghf{cE;Dn&GteQfM{y%Hc*auG-8{7vr8vkU_rl*6JvJM{Y##6MH#4%m}fC?ec^wn9{6+m=yr z1=ff!(rZN{&-d9v;0bzX&+gqb@+&=zPbM)I32L(HL{#mM45tk#WFxd{2${%^Hh1Dg zY*mK>v&aIlOt2u$${pucvrhCn>@jddz=kMT>th}fI%#0Zh^-XU2J?;83i&zRUOg(MSDQ`(af2+p)MmwPzdY^xVi1IagG+PIq^ zmm_(r#8Z-3o5M~Ye8Xs6E+YK$5CRBWcbfb@s8ifrj! zzU-jP8SzsSI%0G+(e)O1N^L2Ha%J7D`7;~gBjL?d`8 z4U=`uo=-mq_9QqU7s}S1#I=|xW+hszgS4IW;`AV`RPuf_IjlO(vmpvJqu*bFI!Gx17N}md^rP41+5xI1&MVWDAEzfd(v@Tb$^a zhN_f)q;^Lp(f~`uYGS7G>zP@lhL@WuW{G2?3Lq?Ama2BbnR}B)k=tq0qxKH=rv@5N z#?~;al*ndrV!ezdL%h~S+emz=HHkWH97=)_2AN{<#P&oLGsKrc3fFAHghr_yn(~Fe zP9J29c{}(cZp%}?kFhG@lBA+Hhuj^Mdo=Tu7|VPM<^fC-?5^HCr}W^IWtyhqVL|WS zJ*21zei%6-n4ZTb@DrFd3p1-WcV|6|h;`Z;_JOjVJccbQi}NhR&9v}E!r^R-Z~sgK zsh@fRoyO6#wrHJne2+Hpm0?lWm!}XE+M!E|z}?mzB4VUC&@xl|k=vJk)sj`F(43lJ z#+9^}{PdztILX9eiD%m{Dg9|Url(@LS*SM%gA~*t#Y#UpO$z$KeXb!btZ2W(0_t>_ z*0Jk}l)j)QURPv04TRTX4q!!^-qQq-m~`Z*y(6R@mEh5 zqQl-c0s$)9^V&p4wL_sYO+p#wb*um-*SRb0(RDp-JP@X1aIS+bVfG0t^Aeo2A9Hfd z3abX(M6J)T4K*!mjrE7#hgYOw_P6iS+qd%Q=AJdd)LtxDi`gN|oN{^>^MOwGFmOIy zZ;sO&{cH?x%~39){*WC_UiPT=Mw-}1E@}bFWTe+??UKlJ;{p*GcsaD7=j~|dnD8P_ zS>mnZSnU4Rr;hjrt{t1NQHH&C?u42}XB)vHnJO+Ov+NRfU>lE#1S(w=OwAJusZ%WH zsKgF!i?YOq!fqG$c#?(lq$fg{jzG9$WGh-$nas7>Bt{0w19#G^6V8`f z4ci;{Ni&G{l;mOz2pfq*T{8Q%Iaty3ds&6jU{iin9D?XgiLKlk#V(NXvBX9hB%#0w?vQVD;Q!zOs*jTpeLRKa&3cmBK0yBFE9E9+%j9p$6B$;w)G0ssH z1MO?_CqowhVSqv^XMqXo8o`+|g+gUp@WK?2gZ)*RY+LA0WDx=3;kTF%j;pE28q+VB z%8yxhwV&E_sCmsd$XsK~f;ITAbw8YkteIU$q(!Ni^g%+P2 zlZYSFV)fYCF|*SO<>PG`mr{?e_FApGichO`+%;KQCB~DVg`{-e>g`?; z+M0qUqFM5*0xSLsJv^Y;yEiyiVu>9tTAA(GMLOibu9Fmms3q+c$Hv&9-2O11F=)%v zUUO&V9xXuc*t{|h4rCQuTTC7^AbOWrwDK3(A>2DKn?r_D2s0qnMGr3;ji}-s9Q;ye zUDr9tWtcezP@1Gnvfj+$lb4XZqH6%Uds8Pfv zrpBF3(Fj`f@Mzq;t*eD(PTGUZ+$DLkN7C)G4ai6^O(PMlXjZRC;(6_LvmmVdWxX_r zVlL$T^>#zb5-tt94~-E#BN{*H5b7*H8^-XxcJX=L9x%ykc>v1#>}mKuU#74&+cRMbN9RAk#33A<1_QTLjBxGy+K* zv!1_bL@Tur3+j1~Z$}fSTjCN1q^a|3JhE6}4+wiV!vfa?9$7mgy;Dh>?dX&c*f0Wl@Jg0ZurM%pY_ZZzfg;6B z7R9gBolWJ{(R@MYqI4t95Hcbc%!ytdYGw`6JrD(x%>wE8AEK053!Yhsw#3*$ zZi1O>d;>xtxIp!2HS#e2il$SrR=I&|0acJ?zB$H|Z!I>wX9JPVa~JxBYT2yT+w`EQ z8>5tymicEPCFQQFp*-Jgv3nEM7!!AW2_gPc4w*tGs?%0LWoky*GKQt3(h`8O?uF5J zHa0Hj>%uOyilf6+Pqg7>=X$U4C_F?6Eo1VrVv20@v_uW*AgV}-aB@K;ujbu152Qm% zF%9V+E`ewX!z@i|aW0_=Ep<<5rnQDPKr51A5V}m^pTP0@TP>niXcTojY<=TOw_&Y;Ol!6>YVboZVzU!$qudOZ>AzLJ69OIT@t9 z798W$!?VrnNTRFQig1;^S0lDgyymLv_?qpbqkGqEw;r|ElsZ|i=;+a-!;FhI_9}0L zbl6bGdg&sY|=33_!tIge8v$WY?0*jd?vC5o@ky$v*EM9XK#OznHLI@D~k zbH2mIv=9i1{+YHyjKaf6EwaWmV3uyeU}(1joJ0j<{@~D%)jeirUZvL5ig_H$Xe!xi ze7ReRMSM?sPxO||fLdckk6{#*bV&kYcflz%BNfd&nigTiu6m~{F*U(GG1V*{XPGZ#jWnmGY7;f2 z4*G$}5j2qJ>}6z{WPuoTD)6$HLvfTS=*?fi)$U!oUjDgZsN>1|p+Z%rc$y_yV!I;; z+n2K2H|$rjcX?4-4WVoW!H0W6URHnUt-i1=M#bcW5R+A<9?i{jl)|JUPe}x`xM&AC zRF56hs|M`E9WJD`5n^LwJ(VhQfsRu`h74?xzt~J;fxF=)%A4WbvyQziwfy9HGe zCbm4K41utU$l|XrJK!NnpkbYa~p=4OeP^S`wkSg?`!Gv?{t9S>P7EKM|c(D<{o)TtK+o<$-k!3^>* zdJ2*;(X9`5&R3kC;fem;#)0B39n(e}v7saXj$p{y{$fd8rX|EJ5{&FP3KFZ#;AN%7 zU#hU3wq8J@7~%@;X{QKAl%Qyvg}cA#p!PVTvKB81hizao3C*6=jPSkt7Wa+X6kVAJ zu`Mo1(s-gwOmI^i5Q51coL^?M2~K6~S@d1*1MR4wUuC;SqHZ(&XmMO(TqazKaHgjr zh`yzJF%}l`)Od{~$8ffN%ZANVTb;ESx(P8SSu^Ow%^WXxP{Wl{S9`E$c9w4 zP<33=4ntufzhWDlaU+lIM_b;bMeJ0K`flT5xxDl=*c;58;f!3g5xCh7=CEIaxwM+q z3fMm+3uA>XTH#3UfG^M%yPa+2!Ix!EP`&1@c4x4BD`!T@nzk88Mjl~iKQIC|wB)~g zSI=yhJioY(Y_uxXCrVhiLq|=*B{I8`aK!)*YpPmsdUY|lw!A=oT%{rFR?88#+#>O< z*`(r@+Ur%7U$w9jq9gP=a)hRdv2SXO^oJ5{)CyA(H5Lbh5?)gdD~LR4+!7aBLtR$k z`dAV`oaJUDGfgywq823gM2C#5?)MGRM=QuIUaWqZ&8+>VGd zgOM41%bm*DCxGQO$9D$OuGUIt*ieXYV6N)`6!EA`@X2aribs1!Xd&6WOD;)Z*>L`? zZ`tr*lE)@+y@Sq|oH@}z6aqaqwsb;Au@-7WyKq5tdD16M=egRxNy@f=X)xE6mW|eg zWk2oc>>0~oT*ahhU)oZTl;k`!0+>0zO~e=xlJ|Dg$9GmPn*zm_rWcM!U@2UOA56^H z`CJz7M^|XXwRCUWQh3G^k~E>63kk1Sq(ZOJfebQU%)pL`f|fANjFyzqLY4N-vvs4H zE7eiA%p>vhA4sOc>af$HiZeK5drLbOr`eFLKLhL8Yl_2%SLyr(IM_wu3QjqY1m?AB zy=_dU(Xmyya&|^Pv4WmQN#GWkxzbCW5MsvP9t=7pTdWPOd>Xjkt&%1g{_k&xf}2MUZMY(nGLhKn)lj9}@o3f8T;b^41|A}RUY>&vlvivhxF0e%ePzr8 zIo1|g1_=BjCc?W1!M0b2fF=XRto)*bb(#8B;+TD*(#UIUj%GvW_o-z zx&#u5#Q`e8s5)q7m&TzyrS(D?#xBXnc#`zkgR~9)6>*4eX>D4MjoIDu!{T^;@Q0!t z>PC%X3%frJ0`c?7e0mnXti+HNYwvqMLyGQ8%h8Js15 zjgcCr4~*3N78_H!1il2HBAS@Q&O(q25-pf21ni^D$2hR+6FVPLVJda)N;a2=AhZ$5 zrakf%`x@4?nWv-I<9S8yYrz(3GYM5;YnAguVVW<+2;MUdM4Thht+B!8*csa%B1>di z3kU>eI1)n}#Vs|#?ObA>DIh34Z%Qhx+=M5UGZjKy?NDiSsX}XM{xT_sZp##jhAy_2 zN;KT*CxR24!CcZ(1*_MA&!VO=@em@^+0IhJRq_mIhrPI6{wUFM>**`;&T!c{uQ}r^N+pl_2LR^;=6y z-D8_KDoh)!*aTdk_rxV$)*GS;JT%J=Mmp{e;L5$V>Pml?Rg$lyq83)0-FG{*ldqhs z5g)_SUa2W%+ES^ikaSinn3*P#=}Yiz?Ne^*gOpIDm7(!)Wv zITd_oU9pilunIjOtfrLQ&pa{Huy=1 zivi;y$1&28($&;iZ%JWq>IufWi2cA6QRg8d%_X-9=lN!0dtWkGvYjV*feGE-%B{+~ ztHBBZjU9P=(z2QO!M38wvdfxk~^4UYxOZ6g`r0j z^2Gx!mZMEbQb=e7V}M;i)7KCtD{KJ;64-{XQ#i zGW0N4bhXHREpvmH5AXGoRPCEiR#4y3<#`D%_G2+ZKYhguC7`Fm_?7>*4Hkunb0gE^ zbu=k%HPyr|1uMJ_p|%CTnX8bV^ZIagkRO&TqwjU7DQVkj;4Zx^B)Dh0)3>8yq&i47 zJ6X}>8dA^6t-}x9%)-Lp%Ql|b#fEe{mL%D;%-ekemCl9=pC0<3dRuBiv_{zwWBZ|32RkxI z3}h@Oxj08gSkc;LpSN#U%0Nr>3#7VtPdh z=nItOUCK2q9~R%c4rZo8upU&IABipYwWOOOHX;+CNHbj2dS+xukn=RSSuN2>%hC)P zK*ZMkqmtHC_0CKl_#DfGbfpjhK=JS&uZQ>{j%dA#DkbWgcqmRt8V&IQHQ%|5{UJ(c z^KCwRtF3JctEO0Th+JSm=nIS4-iqd2(pFg2B;6x7x^sLt1M7yX@7p zP1Qg^$&}^fM)6+rTg1%jf0V!Sz_`|0qj_71 zS!5ZMEghg!uHtS_&)KV!k6dnNdu83kK{U^+J=2|<(h9lAYavBxBt^pl!-Sv(E#Nb) zZukZ-(`xgzYTvu631bWm;f12)qIBDk&7@r%{65BjNkZ9qZ}BJ>ov-GWrfOMHDj{O| z`Xp?Sp0m4L@l3jH?A=HPp&i*KDh7VCb}lTejDc{%{^DY4kamuGbBt2@23E=oi)6#h zQ>!uG?MQc-fUt3}{RXVn_Aob#=J~2jYJXASD8g6^HsL2b)&p~nuj}gYrk<}ZdIq+y z^7s$F%9FlK6OLt}*LVQ%78a`xdYbIYx!JULKWs-3&jVR#4ozU4ub>k&EM{kBB-~@+ z_n2@J=DU$QJfwwya#H1%YuRF4yUqnuC=cb1;;_>e-wDXPp*LpF8DUa*bHxeF-JmZt ztVtk+6EE2JW?$o4&kN!qD4RV%W$P4jAwtLork1=_EpBX>T}mr(@m(Za*m0#C)Rl@p zhUeD022qylPn|Hco5;Ejw{@rvQ>O8XAAoyZWg z2$F&$Qaz(}HRqJ!jAT)06ojycHq`@@qePaBjy4;EsP|7dx;GM+=Pjshte!TqmLl8w z!9;JUK`{*D~`&AUe zP3e$3U+hy?ZZAjfN8boPFc8KBWa+T+(*e~XBGBy&%CW3j^>og}p? z6T#nV<-&I`Qtp{v9W`N5p=A5K%!%YT#VQv4a)KA4$y1D=Fl)-Lr{2ih*z5ud<9tfgCPksuDqC0Ct*zf%A{F#(ejd!;aN4(ot8PTcf%0K zPaPAqRBCTL+CsdA0ZAsXMYWJ=rANz0lpsvV6Bi%ydD)PoXb}@w#6Az`M~$*!TTkIQ z?{miuUhZW9XH;BUEtp9W({?jFEb&L<#dO7SwFSUY1%M+{o8Umm2Huys$l@Cx@u3NU zs#>TtqTBkjCQ_LRVoi3=B<=GrB3(YRXE)xJAN4WGf1oI*)6>}0~C!|%(=!}Je(DpnU8@~KKVvE;FmZB>| zW7s#qH(yD~LYV6tR(T49aKAl)$)P#QAza-_735=A^Oc!qvp@DvJEx({LVKPOvK>%Gt_YO2N|oFf|DjYKhO-9l5AkT~2{6PCdd%wFA#(@P;nKBdJP=7|h_# z3^{evH2i|KNKs#@=>vJPEeu|zI5o%*jOr(j8(2IUC3>1qm7DQz>IW(Wc`q6g<%v@ zsTO3C6j_*VL&B+4Q69x8Q6OAc(^p0$t5)aRNyg$Sx6HA{IV3sl%b*$vrAz7a-a^vy zwlok5p+L)pv#S%UDJ39KUaVy$oHJ9cl~WBcn$hCA=@j7MYS zwCup%w@v$YjPBU9fm8Oj?Ay0z-|GA-|EdWoVAQiZ-@Jvh>Q?6m_UzcSCH%d0>#n_9 zxVL-Hj*+Wv#c|7lE&Hw>-Ok5QQYV?c+JG1Qvby%wX@Fucd{(U!p>;}g{{i>kQmUjc zMZ@A6K1keMseWm>CHvpp~t zr(-dN!?cYvix%6~e~(4^(!ZobC>GgT%1%}V@;2^I@hZjM3*O}(YigRQMTvhil@(aA z&nsD=j73G;w`cQP=UfK@uC-Ym&ba2Dybpbxue4~t&h@*ULz%Rzy*hrwZ^UN1)R!Hd zl-6*UKM#9xUwQ`ogk8Ft_2n2a*XJ_I9kXs3Ypp#ibn&b(xF!18#tA;c0HuNm2vgoZ z%pjo_#cz+I7>ASu|HHF%!$v2Z!3oJm1 zy>3i=Ba;;WC@xA6ewpgFU@`5Vb+=eY#EA693ZSRwhSI~;1| z=UJH@UHY(Bh-WZV!A+9oy11Gk{X^obXs-r4DbpI9ln`w!?L>jfAzwus%Bh&`Bzj1~ zLp?P8OidQ~ERLvy#Kj7qL@VQnk5*pAjP6Bz!wPGW)w7^g(FNAZ9WB73LXFEPFFl%; zzG>G{&fVb57Cz{LucNPYX!oaRazL9rJP^bHrbo!RQDgk8qvCM?DyZ$zI7(FfX!!j za7I!bID`O#m=l%7|31hvz%iZN6CKWXgtOx9lsIQ_3iO+5#J3SA#y#`iO+QPO#<18@ zh_Lahw1D%ixJN6k(b@G)J~%b*{3hY6d1)WXP~&`N#X|$)(JVSN;QGeFFyn9F0D(*L z-Nh1h$^+Qz5>x>y+`qf`= z-N&W1MZ9DPqI~_(8G?&ag&~!l5h`nmaM(T*E7T=z;3`GcL9U{jCH!bL#5Vbb)K3P~ z2syX*ptGcxpWDRu}*gZ$BR7U-YQu9Ld7Hwu?qImr10ND%N=m?s&G> z6t$EB54gR7Lh802p^;i#&|w_$y9}j+oxJdx0K`(q*UWOV4_}%~?y3%6;GB)gynn$5 zjpuv~f*2pUJV64X^(^o)Mx0C^IbLrQ6n?a$6vKK1qXq@-=$O(1L?nw$u>Re9@SV1- zFT9#r(;-q-(PoBNDYQ|ti5Oz<%?cE=eP#xI9pg@=jPxFh937TE%Dht=tQPmB>3o)Q z0#YK&-91t+*z-jk4GJ&tpujx(v|O^Z=_QJPcP|wQbNhsa#cX8BuPtji(!O^QgPkeB zQVNoDu!GC#WviiSaUmADBGzk5=auT<{l({5Lcm*R(JpZUL;4oFbe%Jab~&q7?E0`! z@5Y>RRq-!%+m~#La~$~6VLBPGl(CcEX;Y^6d0&CI7MX2YZm||)!o~w5QPjE6Sl0uE zj+H7c{n}|Nr>dv-k=9G~eW_MM-5@38$lmidE2Y5Wl1sd)w@F1&=NP@Dlp>Xl9IebT z+u%b9XbrA)SYu*_1;&F(ZZlC+@7>8pmhBJP+sj6`971`bvuTCJPi3Pl_ZIV+;`#=% z3w=-CP+)Q;QcIsO8I|Pr)SP1anr@UlW-TT)5w**{7e4aou96;A>V@~5ku2}%3XUKA z?W}5H%7P6|mv{x9Z41>>CT{ZCjc{HHxfUm~Oo3qEheVEoPz$~!NY}?Lk68p)72L1| zww^RXe?z2h(MUfm!VP)pK4(@BNNROU`fh!{Cs~x9;zSwcT8KCv;lgi+!+| z!99Piv6z@9&Y#%L!aOiDCtW%{{pGzU*x4)1jWk`Ur3Q|zxBY0*eRWB|Co(-}&S-(= z^>e6-4{l1}$46MR>Ds~O#i59(&VGMcY0s24#_&)~#Yg$u3ZnNCi{3I9i-;7ePRD+T z`GS|1EPESZ4^{Zny)K%#Ub>s<9nXVe4y8S>3Y#u`EH2VGTZ=F)lFQRp=F%g{0M=?_ zINV!w6yb(!!Od3sd`?^&i6p)~6XV2FpB3cEJsCWR_7a*f1sU~Ej?kMue1Lee}+h05aU zC-YTecOVH~)q*vM*?-n5dxkxGWi@Q~tOmL)_mqakd~zAjHfgN$3tHxuHKk>m5jIFh zLQHSd0TR%|Wr_a4=)^YA=y~IL)|^E)RAHuj^zO(Fde|8wJZu6h@#z9F6pAh@h%9<1V#RMGS-c`xd%k5pEl)%% zzWmWc>t1PRp&GNakz`|8ux>CDd~js(+15zwxem+IaE4acD-eISjb5V%1#}q(NF}*r z`^QyO-VOgJ@ZgHvnP)|QrKP9b%|?c0pTB4OAd1JGnOryRl25)-Y9)@6xpz@4iUjnb zBvfofgNK%QxtOhCmpfKW(nkxcXcH4df@o<6(d}y@#rlhOR7Uk}y90C*G`o;J{R-OJ zO6+Vr=a;~l@1kXCMO(zf_@-{@Ez&DQ{(5?ntP8Q1l)UYQu6V4>j6QbMF6e!b7uAU_ zvCrb%5dUZ%G}7@0!ANrZhLu{r_Je9v>TIqvM^=&TMCbhr)7pr_YNjNRB^B93V3M_z z?W7~;ytK3k!79rbAt0n`R7vsGMQTyd$hBWsK%hW!d@XdU`W8MGmr;WH#GW@bWGXqv zF!C{9^6}#jP22hsMbwB<>EiD0;!K&^kPf7EYJ_^j>3Oz8^Jq)^iuh9}UrqAyKq&^6 zk2_3`qcx0GGd9pKC}gYwt4q#0;}ff~s7;9}!_U#Sr{={;Ba+oTV(eq9&EZ2#=CJ#5 zE{SEr_YC0qMv@=8&x0M%=;yx^!dH9{(f33 z{*TdKS0QSK6snse&E}=vm}p-x5p9fUix>uKN^=Jvgh92Bn%R`|=a3B(Oid9`HTuy| z43Znr<~ZA8f`o}y6O3CGrEl-^{U|na3JEFd#M{+A1QP42@R9MNCO}G~u`y1&!LJU> zYsT9eKVLEwpRZf6vKHuB$TBl4Ptez*B-KjBc!y0-XjH%1DsdJcb9dqQP5J)M8E51C9LF?;Q(x>eO$8w|{yOi2#grOpHoiT{ z#@``<>+>xxTiGLpNK+QK zR>YTm)?&Ui+@329c1i%ZL^aO^Pplc%9W)H|J~{{VJtSX=E4647R*(H_iM8uAx4ikT zv-JS1qB*KmDTygsP@10;3Yug7Qvku~+ul@K71@AdyxN+Q*1TW_3;QZwZj0;CN8j<& z5|^BJ6Z!tJ(jp>YUYeGGW)x3>i~u zWw9*aZ(DH6YVod6!`@PeY+>TnqGt~iVr$S#^AD<%{6%1dv9UmF82`}o$gdVvtWO^F zU->rXsv_}Y0Lw={20^y;drBvf8ZL`56M-q|WXV^T-x=SBnVGWl-2{ldwa)BkWw2!X z?f5UVA<;9@3}zTZ{-(Jv;cuy+@Bo6`Q(vrYN;l<88v~OhoARiAFQ|G{m)ZUWf`VQb z?p_E~!?-6b7G$57vIa3-lxr*+26u-EsyY__DoI_GI6%OO6gfl%r`h1@YlOH`(Dy2> z8z&*V$?d`7z#)l`aI-ibNUi}bk%7x}!XOG6!om7Z#x1fn94MqGY&AlrBryg%w6hdM zOQ+<76O4inSM1pB_lAa31ewQ7ldvm02n-gKl|`03)5@%!ny$4dWx&zQhUJ!pY_fZi zMK-k{i)`Hmd}X15R&U$c>%5e)FMp&v<*=EaWUM&ZXgIq{$1eF?bu}XUCX8of(4Jr& zd3>@8+z~@+70XS*6;9SqyQd(k%@-WiF00X_n+lCevMvZIuCRxLnHbV$L`B=-V}?u& z33wJ_xj5~Ivf@T}S@~Ez;tyS(4nqibjrcJY4t#=8XH4`F3>aUUZ4mZ2(mc&CY5kxk)Vi95K%xz*_t-PBL`CsxJ>utBP={O0OBD2| zAVq^kBPCMEpTOik&I?{)Ph!=ZH|+sBS5yq49DpRmPE<)Eh8n1MFZrq%@v_EAn&0cj zh8mV?ZfYl@T&@n$4s_ZQq_Qzi5iYZH?N*OgRELmHOIKivu1=n%3fMvA48;OESWJxk z5L|6L=|lub32>S)cDrct!tzG7G_UN%_7RdGCSyoJ+9)QRLK6!r`3?hUkxn};%~ey8 z_jGy1>abZTdLw4c43>z|ZUYQ!Of-_{r{xFiCfCU95IYuOpp9XYPD#)yL871%%S>n| zap?}NvE7NQA4OvHWYnd=uUst}Aj|Gp=U{gZ)56+qGmu?+j5JkyfbppuYL{>9PG6JD zw?J&iBYl1RAF~5e16H|$^N3{#wen>GZJP6Hv`KL$f70HAA1Tzk^5!qwpa#H3_zQEY~e-4 zL>nH-)U|AhJc?yLkQF~2TbQb9OJS>KaAV5FQR3L58&bH@p)@t2eU_s0(2mKW1D;w>FFO(=ou|B_u)0X@9*4a^1AKFR=KQ=Sp3f5)&l5;P{^3tD| ztZL*dF3HyoT-^U#(4l#hXNR^Tj@RdFrYhAnwRIOY)d!S@g5jc;R{HuU&T`&&H1;Fn06n^SODmM9kJ2+_Pb#UxiMb|qS(gt5j!AED_U$-7{0;`$BJ}|tN{W465RouZC(6@7R?*_X` zBWH&Pa4gsZ!(^VW9lyg)PSBtFBIsDwzXkKcB5f7A$gCh6YTV=_q;`9q1X((qL zxVC@k$EI6dKJ5srD>aMx&@2~37-1%HDvJ7K4O6FxYiZ*=r~{7L(4~*>avdrr8I~0o%8`JsblQg;Y*5&6*TBtXpYx*{EpJ&G>x>? zREJ))D=gLw=llGXqJ_%!)M9P&&a#i6plRr1afDPQCuqz1{P8;`YtzcBH{xNG!VlJ; z*aeLk!dQor#CL40H?e7{7AsI^0l_&OAO!i12WX0Mz(zhu6iHB>svWX6Q4@xO^8q3n zx2MS`JYchY7iX@8@(6QY>djYU7?(h~ICA>#0ClU%Hs$Ps-e_N64HgYw|I%stHX!5H zlzM2`78!&*O|?^9+N=>#W_4ob$;u=w-EML~t7s%WnfkuZ$5!ufny@g=(eQ|UiAC&o zV?`r+ol52^P)aoA7$J15i+7 zI|793gM%)_r?+`4lbg`78E}BvOWnsMF|7q6M>J zvdR}T5{E2qfH7g1Q#NrUGr3johpBp(=!gl(-dEx&Gt3qMkLr`*R-Q9Cn=yQ6n%_$!~&5bbL;Wc&V?eI)g1wAbd)6qrG(!9NJX2g1A zkJ(^W=DX;6Gj|G|BF2f_x1a&Wos6_pyHvuw_gnLnaZ`UEkt{y@thOB%HF%>q&#-Z)vMzhv~I$}5V zW_~XUL+?9p+uJ&R2RWIADZU~*^Gv>Dfu7>kgom=H^fUG9~>NM))_^P_b~g;lZCvP|4kHyCuW<6YQz|V0cLDQAA`+q z{l!Js;Q&jQg`GT>D@V?)wcf&R7FJrvZ!24dydoOjBB>($lKL{?BxR%N?LYNa=w8CY z3e8dY)gE1BrLw?*QEggjxf*M2w!YMK;xSa8Y)<$ecI%)tgV9#*m^q{za&qTwqqfD_ z2LrFR*dj?5tx`!fNg+}+R@}!!hn9{CT)`kHYRGua$gwrSNRj&S+Z)v&)~#wkKY+p( z4x)H)QS=-KrQmY}Cs;DQ*W(Kk%hWwVMB5N&y*WW$eAvSrIkCJ6lcXG%txe`@A`a4q z{?DP`Wi8Yvx}0sHY1ygitM{~-X5@#uc$Z?so<~CwXu%|;TcxtLY{`~?1q6619IrOe z-pjA5rB5Q4!X+mW5}*LIKJ?&Bd#1j`0zfdP^8QUndCv)VeSWM&A=smG+5 zHm*y)o#d?I3$o(RG(xuEihkIIw@n;|VQ5q&Z$HyDD1qznNh~HITJ-p)K6jZS2k+*w zl8@`p;CiKJc&pYdY4W7RW421sJZ~npJ(I9GfrKB(wBD@E@5dD99rnYIJY}3X%`@_1 zt0^T@B!|<8+Sfhe{-C!*YaZK1H0-C&V-iICt|tHWXQh^-h{ z)D+@cIn&v&id4RN;VP{+%9=9Xjk7Nhq$Hb7zH0J$Be(Db?6xGkH-j`z!{pIee=v#e z;3ZZK7=XP@xJU0f^_l`AC?dvKK^F2MvI7z`UJ=%9KSgpu7G9Nepu z3w!KjRiL@SeFmDZF)I+}Mxx{~21lTjta-?X*QCk0Xfs22ory!%k`EHzRZ8~Y;1-`; zngW5Fc;)Ev+dJL5XK_b4*zaLB*SV#PgMJOrep!b|$V12jo?|T78X~IN%K?@IE-WRcqvs3m-bjJNfAoGsoX% zbAPVYt&Y2;qc|icDALdv&P<-Lch;ICedan`!oiFZnVhsiGly0Yn-Jf6ztj>$52W2| z28x9agT8PdD90aT6vKv3p5*Jx#S0cy>z(r|jV!iL)F>n7q)m$+!KmcjuHJ2I>h@J2 zHPV0542-5JXHQuflsE-w$X*W#gj(Ig(W575Nbe)=TqwR@yzy6U%mEgX`R;@ki`Ae( z7s4>>prq9C+x4v#@!E#^ET`Hr`6Tzna#oZz=S3x51%(nWTL&f3?Hwpu>33hXV-X9v z%S=kH9NYJZ=pz~62uuWmlx*hb|IK6`E^<$hU&n7V#${omFGoQWEUNM*r zEfT>Yl0Kax>&iB0E{vkvxTP>U**|4ZS$2|{z=bsdoi>LfO2x*e!4(gc|3T>>JLq!w z3~-zhOvMVv=@LA^=vKsh!z5uZUk)I)a4#N>?=%+a)GPpmn3y0)uF0jG1rLKqT^du? z>AdX=#BGzt4Rh5uWplEJn}0ht^G$nVK$ZDs3vFrQo}$T`(s}}G1$YtID~NlIL^-g? zk2aw)`6~#?IhjJ7yinM)*GM0EE+=|rgEN$ZCCY!Hhu${1A$ACapE2dF(HfMo zn~KX*Zxb8RT(+60=iN_G@{O4%>g9r(U`F3#tBf?7Q8x|U%tzV(HNk0nF$QW8l@y3< zw_^%iffD0?tXBq{4$|Wk{#H98_gVvDn`?Rw z@#M=Fnz9P`E1sIP2|~?T*@UNmwqYL1?a&*-X%Zp)Cu`1#OS=%sm_TL|#Wz!4@fM9pZkkHy{A7gt!tzFFs<*R(16-W6NDCuWIwg4Wve zd<|)RR^NcvXHGw7sD+rw@jFDwO55VAygH`8k~#W)nR}g7VSyo4 zK#Vhb4_e&v0%27_1Vsoy+-OPjC#+jCDB=^ou%`!3yrNeal*PEfL5zkik|C*rHR(5( znF&2ZWR|%Mtx931B!8$>(hU@;9{y@q4l&&{1*(lBsHD~E=v?>s+l+Y3T9VybwoHWL zLB}1xUF-gIKisF8qJ%cpz|-acZ)Q7Cr^>&TdBim*aLp6VO}BPhvhGrCMIAI)1EKv3 zjVUYy1=)+KnCv8LWt?d)vHYVQ3+O-!-7HBhRIWAT)Nh;4e0^P?#x(7{Rs)yN77}lU@tH4L8qatyd@Wv&!RuZBEq9~0?F)EXl3VY9^w&XuxC&Bu$ z2)Rt|5tm+28g*wvv$*4uYvQui%pXE%YL4u-bYJqz3fpqbk=hZ-E&L&~Q9|4oiLy+G zOhoE{Jftg?a@3m+TQiHuU2Wx*OlXHpP?ph);()La%Au14_C*LLflioJst_DyDpoed z@ed=1r9U+u5_~qtLV#M8!y=}T=o6D~VNwppHf!|~cO(Ge?^2>1&>NrB3<9BFajo;+|@jjNU zI(#C81VL8yXc;M{Jsjq|mt49TECX41QDX%nyMthJpJZjT1t3Mi*QVl*RIe)$bV0>( zLlB!X^=N`(XfPRXk*lw!+T1J)`@D3} zo{+bB^u2m|fF@C>fc=iZ9P)kynj?QCPOqH1P;I5LmvF=Qx5s{nU`lZ^yNIzRoF*7c zrJOIAfOIh}$AX4E%2LP`*<>Lw&3j|t(;2fR5g4%@ajoO4_sg=+ogZF(F( z*}8x0?oBl*yT#K#&}E(@Sqb?>fE);^B#QL1(=%4Fe2Cjd$T`gdTvEIJ=gL0YIl0Dk z#KX;uQiby*91aBhcK=xh^WZv1&nzHwpl}JgOosKG!&vuIwuWc`4FmKeYf$zj&lQV> zfizHeY!4Wy)qUQTZ5(k9cGK=X7GRf}Mi+YiGd=-Rl>}199hhPz#D(r9H)$nWnoLYw z$pV15l*pDM9f%Gtke_AWUvUIYfY)qUAwe zlfY@0qf~k0xSY$}6m*P;BJ~3E5YBqA^JDT?KAO`?zQCA!|B9U1I0iA+l7;v1dG#*{ zi@YXxW*oM#b$-c&=D$?7+_QLPRwqI-33qLU!4P6 zZXA{&FTXNZP9u84r)l*XS2EP7sii6Jy@WqPW0~y|o7Fk^IMjTU9q_CIv}gj0xML9Y z+qF8U$)y%`9MGgI0%(JdjhT3hC~FNftI3_hC`D4u`ZzuRNr}PSLL6~|hPnW_p%$E6 zL#73E&8h3bY!GQkcLoLd(6;cQu^VI!Hz`u+K8NPXNTF=M1)J7I$lEUE&(=zKU1uMV z;PQI!1HFckT)V9J&|U_a$R^DG*`Qt0I)yVQa7C2xE*&tfaBG4!AsZELHrCGeo3bQ> zp6Uf_!uG(H6GXx?xxbkIAs`ikpooe}_EIraNjsYnyta1! z4wagT5emyJI*+?f=?x84q=Sh41|uZrpFy3kr$peO2%rmWFDp)rlTMBW%O!@;&{0%= z`s2p>ukW_H83W{F`GT{Xc952-u#~-X)--*3r=*E-uk^PITlUE+5dTIdrtDyC@M3Z_ z_stFWQ)s)nWzHA6{f4}(Is_+(tMrZtb$UPjQvI-^P3Sg+Wp{`++PMZ!qV~Vu59gn9 zT5aKqz~?MN&Rl>EkPiP=KS951FU!iuDW5rALBIxgHYn z3MY(2Mj^{O)k+Q*p}X81*7i2WaR@*ArQzgYZ`1!ZK!s=KM!QGXYKFzcnaONsWfX4P zKnuqq8RY2oSRUN6Gz25NJ2Vx>Vrd8(lZggLus2rjMzFa1=v+}@YsOs}%o$ild2hNf z^+v((J_4yJO?(zml8H=`+}!eP)hWX}y1b>&x&YLZJ>0#}eAVD&uCxsR@5SsK7tH?Y znQd+6f^OsyCDb|F)D|=QX0k~bnB4s`lQe_G8&@A31_3pmr`V!U{MDI^0Z5Ru1qt5% z9Fj;4axzNZd%rgo>MYKBsybotiCA-Mw6BA;jK`z_jisRWxio`j)l{&%E%XM2F2}^4&DW1%F@iB#l0OrQW!=|WP}EZJ=YE_D7aM>QJ~sNaJ*K! zokgs?C4F5Wq6Sq;M=}zX8c=N9S8qK4+L-<^{T!@sY zWTTSYnq71MF)lArX{u3Nyafg=qzl34wL&N|T)mj3z^d9>OjDIVj-I2^5tzTwN@Oa2 z+nl5PEmi9cC%9yePk2Wh#SH(q-3|X>ZkoD>u4sBMtR9x5nb1F|=3BWox6v?m|{EhPY92ycbQfjziBDr0h@ z$o=^6{M`$cy)Z`CSB~L~A1IcKqBl7G#RG$yY?x~d(2LJCNw7RM7!J}zyCP(YffZ~< zkCG1`Pp7WX19PIkF`1CF)sVfMo&WS^{}g$9D~B1uu-j5+9rSzcq?v{MyON-!@-;P5 zMyz^)2A;~nnzY?U3gTQN5D<1MPaDHWstklX@4N&@(x+ITix;+qWt(cEj1M#GF&*S& zK3iD0rn0As*byx4CF7kp0#OFv50#;=VFcc>ZxXwl`dx~od@7KxyG#h{@)8Bphz!_c zL;eEjc6#jadiA*^N*Vc`xwW^Z#NmTC+Eb*x2J~( z{{tTUjefe$Kj?PBKeB7#v4G!v^(Y@ouB4Tv^w4{(U#_|y|7zeA0gsnw1eAw+$hrzyG>)2m6loa)X5?P4a-{IO))Xyfquk}LZGbJ{yt1j#qBwff z;Q|YM8>vzGhEtWBOwd9IRz8ZaaEB%8XIR^y0}pffid_~xnV}9Py{5yvNm2Lagx+l)ujXQl}->rFQt1|q1&vEwJmS=EpLAZkZYf?s{Rjo0o! zgU6&*zDv)?(j7G`SzHR%8zg2MwsnNrsJWBF^FA}5u{;WFZ`U!KJ=*yZgTTKTb8Uu2 zV&uaIkDusne#;EUlq;fJ#Wokwi0!7Lv+4@yTM&3g7aV|8Mdbq@6#j~VIC95P!&l2M z*)qJO=ZIB2Zvq@_fTIJ2Blxtdl^oS2w-E@L`%5}w2xY*ezS((wMC=6XMWyg!)|{kI z)Mh~y&cI4}C~6xbX|!GGdp(5Nku*+WOkcPvwWFAQc(`-?y?O(G7-Xz_Km&5M$GGU(kSG3Xl-S*m}Nq2$x$SO3M7#`st5TclJ z)r7#4yf1}&d;MV;f6DkK4WpZao6QjXnv~@yL$+6Ka_t`Abdi#L4ZSi|K#|@lrV0r{ zxzZb=oW9@y5pWImjwtQDD}qPQz(Fe7@g;HvAY$H@I46pi`C>`F)ZR0)49=8g%BtNU zSLJN}6qh1prI?^h?As+i@PU~J&nv;^lPxmQfGlEj9^C6pmVi>4o?2gpMKma5Uav2& z)j1jx(F$nf?pS2Y7ncSL-Z(OeDUFPpe=bQ~8=B&dqvk)`G}5CXyJ;Z@l>f3^Hh-FZ z#ap3Y_k}e=I#0VJL=!bN^fyE%hqFDSxkmRi36j8^OOK~)EpSnV8gPRC_-4IPiP_QKLcV#z;Ioa%U1q7Fk!M^Vtt=bGq+CtqZ)c}Y8aOv zvEsvN=JUeXkO0=#Xt-VrX_dFM7nSRp^2W27cO*aOefl@Z1M=)(AJq{JOO3p9w~V^7 zR+Y5$y$No>ZowfXi7KMhe<^n?UXgC7S>X<};r57cWq%4G&S2>V%?w3E!xUlbl}666 zmap7qlNiX-b9RPcaI&Z1(svS`9p1Q5kPT8tcN!&oCI~ZAg|nQiU=23Bj4)&y&N_Mi z1|Qb>FR{O7^S7hmmT*ja^fHw=VQ0Y`DQry-pO^?%nSiBf4P*IAW?!oJhG zO4B{k?$wJ$MFBWky9#zs_!1e$l2Ghfutf@<|I8m2l)`B`_&AvI_=9C*G8be%ll<|@G`S(Uml8I;*ArvMo! zRH784X^^9#@l;M1s{rv;i}ZBDvfBCBbQ)&G>mBl>5GKplZ~pm()hE;nh}ur^RrutW z+EcCDxvI&xP{QU)*WB$=lr9dM*D1_X6`}@pY7YVS`Wluw=!u-V$CU!(b}Z7+XD+p6 z5L{nEDorh_WM1h+x^RQH0DC7=7~vI6j~_e)$pBBGNuTTQy-jeaEaBzHk2YhOP*|R+ z@yG=yyG<=Kq$Sp5%B$hT0|a4t$`_6>RYsvN1-T8pzfR{2SkwwlX-QhZkJxiP6on8% zDfY@fU_hl5KPrVE4Qt|z>k1}eW>{K+2c{fJAaYlt@yiWci5*JW*gQRoe2&?h)9rPm zVeL@V7v4un*@IAI z1%bcdsmYxKn}o_niL%_t9u?Q(_9Xn5t<9WWB$fg!8Nayoj-Cq}u7RS-%WT*?#UY(L z{pvB+5ysNp+h4nvFwU0ZMBr3Q^BT{;EWaJUq7oRW6iVK1Sv#glEO8StU=4)pW)&qT$gGcY>S z2Y5?;M4~(Zp#;(eAIO%cVYAt!8pX0tXrJ!9=#CLcZwK$w*~|)naR_seSc#hep?0_< zckma83?U;Jq-sgl1E!^etJDl@)&;>|`>pG$Do&S3`h1x4F&+*xK23VlT0g3;?O^%Z zJ7H>-6H+H&2?CP!j$Id*6gZcG`u{}@ozfdy?&epSh$w%!UIbB;Y%(9 zks0bD)44l;^jp%TqeNYDbA-I$Y$l6(9RR{C)Gq~~0YxH-0-zu!dUnfBW2L_l5YVNy zZ;@xut>MBieao|U$?NO7X7qLEp-i6Dw4;!P+V!GeNJn{gaQ+i+M0{%GJV;yE<`3I9 zwnHy`O?b}jNI>&(dtI%-GLHM_3*)%;k12%baJ#9V;P|UESlq#0I7I6X7ZGAnMdzFo z4f(yOKHMaDKHQ*Fe-U6xq7ZSbAUo2UC)dxWGB^uvD5z&HG45y?t` zPdCU|eq%AeA2|0jwMR-w^SP72Tb_}I=>H8s`qBYip}GDCgW&>SVSVmyN`GEXw5 z1(=1O2x=5y%?Gi^buxZ9J^?liI350?+Wt8-fkRBu$Z&^AwgfZ?kxeVwyW! z^>_0X4@pfqAkei_BPsy&nRUG|f0--v)zB0nLGBsH1-U8@^j0P1@cl+*KH4p^OOKqtS4oio8F}Nk3dLxfTI2af5L4b6YLv0|YfM#)Zo;1SstY4GlRjpP{Si zZ9*swin7`?K`ZFNM_NK&GVulUEmOukG?URN3UTPi_`+ahWJ#(;B<-grwdri{;59&3 zI78{Bss%RG_~$Mu%qW(?|8sXk=xY2{XXkeAU zzB+%hM-eIqP2NKY959wa8lL}5`ij2a_3Q0DqDzGA+p}jIpv>lqzT=zytY(IP7oh~p za7(P#FPY#7Rbq1SjsDQkBQByr(F36sTy*mw$;-|zqpL4i%rVw9GKM5F-%|y#eiU}) zBJglZBA@aX662tDp<3JUK#T(}Bz)$0!*Yy}nvf{fTH0!L?cV;gMf~g?JViP8Z186@ zT=N(>JHaQ^p_dZ1O%WrpZ;sVGlIk=sK~^tpnWHEcmP({fe$7sC@00P5v4?=P2Bs5H zXBBoxUGb5!+#-QL6vbePk@emtZm~g63&Am`+@kLAYDfha(10&c5$AERq#tMuH=(Zw zm4YJmKzu4uh4>S}INaKAk^qA&Y?8p3v>N+vs&4z1+S@$D))oXKv8`BGT-p$Sp1ZX! z65TaD7+OiksoE$lLSVD*2qF!Y0;z<;ZJMI^UxmekWYLQlJ9lKu0MSw3&patF+5z07 zkD-&oNE)=Ig+wui{~QM{En#z9A{iLl>n=^FUfGZK2D6t86{SpsVwp)p$EK+?r4)@6 zK%=NjbXpbnlMvv8n`fur{$Z6f#>Lf;O(u&ui+0lKJi2*U)!dSQhE(5vyc(~Jx;u4^ktp^rkmP%@>}O8)iq`tHFip8@fo$KVv)K;(#qj=Vz@ zL&^&Nzqx5K_2n*+Hz!$A_<^Gkw$z*`YJ|fn|MQwKS}h?$p6l`}vAlVGPsAGPrI1|` z)em_0>UiVu=tr?RXJYNWy#B@GP3328{$=mk=A9=`9&X;*W2eU_n{dqI>o>L6VVWO) z_+bOA*82@SOuRuQ*ZS@ApT1*iK_pVu;sRQzjl4V#?h`GXe43)hM->#6SC98GNO;C1 zHqROo@S5Kfef7=TS?rpvKZa80$E+XEvjYmPg%h&P*c zt}UoZk($)HZGSwwe%&i?iyca>RThNct-~Z}Fvxhh@PEz1$qqrWG}8#Mna4k_TWNB_6mg)R-lhDOq-+%&DT? z_P2sHrw1a0G2Xi9sxl+hh1I2h8my8;uNn5j@O<|DVgYU+-H3-FVa+F2oTtSxM6oQLW&< zvcq4!eX2LB(e}1lp0P>s+u}D>obr#RYHGQ-q7uFH^r#J z)kK8&d-grA9WG$*r$;#4ks{s4A)%D%L>A#XJS?7IZ1Bk>qK&mr?W~^;rD~1vlDa$1 zjVcR13fJ#}sfGQrT8Uzq;RuWA#z&J4dF90aseG)TaM-g0M2q;289CQJB$sf5=yKtn zvK>aiJ&)(m0~E)7l$U+^{%cy?`Dk)u_Y12L*m4StAc3OgjdQ)o(9S&dA&sA{h0`Tw z0vE%6(Gd!o8*86A>Z z6K`%&9C;9|nUclm3p zPC45{It)}#o?-t^_`!3yXamKy+a@bC79h}Z9i)i5l}vy!C#2OUHkvx}m!!2f!w?4( z8qBqmCJmc*Dn0&y$A(^K1&85^Ob`O2l0J0tAz~-aJFe9%>rAgh)@1Xr0>50WGBH6Q z_9h@pqZ_+Vg52{{4mHb7+F7s_?PC-N;;Y$3k8I?5DKpxiJ*HmyOSM2n0d%~pv|g1u zzRYAY9s&yMmyz910FPO51>G5Lg_RE@$x3Ouk&uIyj%&?q6{w5(SJKt{ca?lAQ+;!s z6eHOVFkj6!cxo#vlm=dhuq3>&%Z^Q)-SvUj48Sb=fXo)B&nptPl);nfWyTcKU9@hK z++wYHxWc6J_8F&sH3@ohQcR?d`!`5m>zGLG1CP?deb3)XYnh@w+p)c)8nh>7IbRaG}_;8fQ_E{Au z8zTi#Cxu0gOZjq&!w8H&0ZdxClCceXt|N9@g}FGdav_C~v6?vOpL0f*;}nLL`F+Te3o2hF8l(+a^=ep3aGwY7^cx0YejfN?bmOCHwDZSD~G za03nTe43xQ`$$u2h`i)5sdaE1)~R+B%*BjZBa14{+mM@IrP5R<{(3WChSbAk9cB6w z0#6g3%&02`_0szf&I;Np9o2`K`^en^E0@AA1&%&Vq!Q1MYDJ#K0DFWV#jM93iwJRH zJjj)s(F(0kf^`5DKE&XSwYwk?vH8>UUm`c4ib~|93?$(MoJ7s*P*TL|OEI0qHR5Q% zG&352=OMZ8IE_o($gVWf6QXv+t+z84Rl*0`8*U%{`VPuK6((P!#LSheMqL?diBCd- z+Ab!ifGy+(?ijqe29GBmoc{t-&*upGnie>$tJj%1)GM;s&{0n~B+3zQCh-5B4Q$LB zOqLrA3KXy>)T|p1El6cVqu)eN32S36WzS$N@Nh{@)u;~1uF$aZSw)pOdSmv5*m4BA zhUJa;zJnfKlqxBcwqpZJ>BH^{Y7=Lfg(xh}G^cTwpR$etm9a5O4RSZ)+Qdg7Zg|o) zO`POK6%qZ-}llXebn768?qJ-c2Yu5&Zp7dSz-zum*xB@ID&U}9%=nULk^z5?ej zF%fA-Jf1;oft=+x&LE%EWo8(Gvjm;ua0q5zgE)sW*&>1cYhfvrWGu&kh8Aa?%q?BO*J$ig)&~^rEDKo=uH2Icj^SCkx0T7t z^{(-}7=x9xDRY9c^sl_Q8uk;@R;46`!#J_bN<}UL8~4REtQG%aU&Sg{*Y1@_mJ!2oN;2!;WyPW@gWlR8dr?{?32oBmx-rGJ%w%od z&-utL2he`}TqUCHS#{9J2uihU z<1B0>Y+cUcEOFctU4wp#p3Tjs_sdR+K33;*BxjqkB%M8_w<�WR}OxXeetH6WjLR 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 Jz>G=P{vQ%0yjB1J literal 0 HcmV?d00001 diff --git a/i18n/es_ES/LC_MESSAGES/musicbot_messages.po b/i18n/es_ES/LC_MESSAGES/musicbot_messages.po new file mode 100644 index 000000000..0fcf53b65 --- /dev/null +++ b/i18n/es_ES/LC_MESSAGES/musicbot_messages.po @@ -0,0 +1,3216 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: 2024-11-08 18:12\n" +"Last-Translator: \n" +"Language-Team: Spanish\n" +"Language: es_ES\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: es-ES\n" +"X-Crowdin-File: /fae/i18n/musicbot_messages.pot\n" +"X-Crowdin-File-ID: 28\n" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "Error al cargar los alias.\n\n" +"Problema:\n" +" Faltan sus archivos de alias (aliases.json y example_aliases.json).\n\n" +"Solución:\n" +" Reemplace los archivos de configuración de alias o cópialos de:\n" +" https://github.com/Just-Some-Bots/MusicBot/" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "El miembro no está habilitado por voz y no puede usar este comando." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "No puedes usar este comando cuando no estás en el canal de voz." + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBot no tiene permiso para conectarse en el canal: `%(name)s`" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBot no tiene permiso para hablar en el canal: `%(name)s`" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot no pudo conectarse al canal.\n" +"Inténtalo de nuevo más tarde, o reinicia el bot si esto continúa." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "Se ha cancelado la conexión MusicBot a voz. Esto es extraño. ¿Quizás reiniciar?" + +#: musicbot/bot.py:840 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot no tiene permiso para hablar." + +#: musicbot/bot.py:844 +msgid "MusicBot could not request to speak." +msgstr "MusicBot no pudo pedir la palabra." + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "El bot no está en un canal de voz.\n" +"Usa el comando invocar para llevar el bot a tu canal de voz." + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Algo está mal, no conseguimos el Cliente de Voice." + +#: musicbot/bot.py:1084 +#, python-format +msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" +msgstr "Omitiendo la siguiente canción `%(title)s` como solicitante `%(user)s` no está en voz!" + +#: musicbot/bot.py:1102 +#, python-format +msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" +msgstr "%(mention)s - ¡Tu canción `%(title)s` ahora se está reproduciendo en %(channel)s!" + +#: musicbot/bot.py:1111 +#, python-format +msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" +msgstr "Ahora reproduciendo en %(channel)s: `%(title)s` añadido por %(author)s!" + +#: musicbot/bot.py:1122 +#, python-format +msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" +msgstr "Reproduciendo automáticamente la entrada añadida `%(title)s` en %(channel)s!" + +#: musicbot/bot.py:1333 +#, python-format +msgid "Skipping songs added by %(user)s as they are not in voice!" +msgstr "¡Omitiendo canciones añadidas por %(user)s ya que no están en voz!" + +#: musicbot/bot.py:1555 +#, python-format +msgid "Playback failed for song `%(song)s` due to an error:\n" +"```\n" +"%(error)s```" +msgstr "La reproducción falló para la canción `%(song)s` debido a un error:\n" +"```\n" +"%(error)s```" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Intentó enviar un objeto de respuesta no válido." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Error al iniciar sesión en la API de Discord.\n\n" +"Problema:\n" +" MusicBot no pudo iniciar sesión en la API de Discord.\n" +" Es posible que tu token sea incorrecto o que haya una interrupción en la API.\n\n" +"Solución:\n" +" Asegúrate de tener el token correcto configurado en tu configuración.\n" +" Comprueba el estado de la API en el sitio oficial: discordstatus.com" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "La canción solicitada `%(subject)s` está bloqueada por la lista de bloques de canciones." + +#: musicbot/bot.py:2831 +msgid "Reset the auto playlist queue by copying it back into player memory.\n" +"This command will be removed in a future version, replaced by the autoplaylist command(s)." +msgstr "Restablezca la cola de reproducción automática copiándola nuevamente en la memoria del reproductor.\n" +"Este comando se eliminará en una versión futura y se reemplazará por el comando o los comandos de lista de reproducción automática." + +#: musicbot/bot.py:2846 +msgid "\\N{OK HAND SIGN}" +msgstr "\\N{OK HAND SIGN}" + +#: musicbot/bot.py:2853 +msgid "Show usage and description of a command, or list all available commands.\n" +msgstr "Mostrar uso y descripción de un comando, o listar todos los comandos disponibles.\n" + +#: musicbot/bot.py:2888 +msgid "**Aliases for this command:**\n" +msgstr "**Alias para este comando:**\n" + +#: musicbot/bot.py:2891 +#, python-format +msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" +msgstr "`%(alias)s` alias de `%(command)s %(args)s`\n" + +#: musicbot/bot.py:2924 +#, python-format +msgid "**Alias of command:**\n" +" `%(command)s`\n" +msgstr "**Alias del comando:**\n" +" `%(command)s`\n" + +#. TRANSLATORS: template string for command-specific help output. +#: musicbot/bot.py:2931 +#, python-format +msgid "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" +msgstr "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "No existe tal comando" + +#: musicbot/bot.py:2959 +#, python-format +msgid "The list above shows only commands permitted for your use.\n" +"For a list of all commands, run: %(example_all)s\n" +msgstr "La lista anterior muestra solo comandos permitidos para tu uso.\n" +"Para una lista de todos los comandos, ejecuta: %(example_all)s\n" + +#: musicbot/bot.py:2965 +#, python-format +msgid "**Commands by name:** *(without prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Command Prefix:** %(prefix)s\n\n" +"For help with a particular command, run: %(example_command)s\n" +"%(all_note)s" +msgstr "**Comandos por nombre:** *(sin prefijo)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Prefijo de comando:** %(prefix)s\n\n" +"Para ayuda con un comando en particular, run: %(example_command)s\n" +"%(all_note)s" + +#: musicbot/bot.py:2984 +msgid " Block a mentioned user." +msgstr " Bloquear a un usuario mencionado." + +#: musicbot/bot.py:2987 +msgid " Unblock a mentioned user." +msgstr " Desbloquear a un usuario mencionado." + +#: musicbot/bot.py:2990 +msgid " Show the block status of a mentioned user." +msgstr " Mostrar el estado del bloque de un usuario mencionado." + +#: musicbot/bot.py:2994 +msgid "Manage the users in the user block list.\n" +"Blocked users are forbidden from using all bot commands.\n" +msgstr "Administra los usuarios en la lista de bloques de usuarios.\n" +"Se prohíbe a los usuarios bloqueados utilizar todos los comandos del bot.\n" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "Debe mencionar a un usuario o proporcionar su número de identidad." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Sub-comando inválido. Usa `help blockuser` para ejemplos de uso." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot no pudo encontrar el usuario(s) especificado." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "El propietario no puede ser añadido a la lista de bloques." + +#: musicbot/bot.py:3059 +msgid "User block list is currently enabled." +msgstr "La lista de bloques de usuarios está habilitada actualmente." + +#: musicbot/bot.py:3061 +msgid "User block list is currently disabled." +msgstr "La lista de bloques de usuarios está actualmente deshabilitada." + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "No se pueden agregar los usuarios que has listado, que ya han sido añadidos." + +#: musicbot/bot.py:3078 +#, python-format +msgid "%(number)s user(s) have been added to the block list.\n" +"%(status)s" +msgstr "%(number)s usuarios han sido añadidos a la lista de bloqueados.\n" +"%(status)s" + +#: musicbot/bot.py:3089 +msgid "None of those users are in the blacklist." +msgstr "Ninguno de esos usuarios está en la lista negra." + +#: musicbot/bot.py:3094 +#, python-format +msgid "User: `%(user)s` is not blocked.\n" +msgstr "Usuario: `%(user)s` no está bloqueado.\n" + +#: musicbot/bot.py:3096 +#, python-format +msgid "User: `%(user)s` is blocked.\n" +msgstr "Usuario: `%(user)s` está bloqueado.\n" + +#: musicbot/bot.py:3099 +#, python-format +msgid "**Block list status:**\n" +"%(status)s\n" +"%(users)s" +msgstr "**Estado de la lista de bloqueos:**\n" +"%(status)s\n" +"%(users)s" + +#: musicbot/bot.py:3109 +#, python-format +msgid "%(number)s user(s) have been removed from the block list.\n" +"%(status)s" +msgstr "%(number)s usuarios han sido eliminados de la lista de bloqueados.\n" +"%(status)s" + +#: musicbot/bot.py:3118 +msgid "Manage a block list applied to song requests and extracted song data.\n" +"A subject may be a song URL or a word or phrase found in the track title.\n" +"If subject is omitted, any currently playing track URL will be added instead.\n\n" +"The song block list matches loosely, but is case-sensitive.\n" +"This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" +msgstr "Administrar una lista de bloqueos aplicada a las solicitudes de canciones y a los datos extraídos de las mismas.\n" +"Un asunto puede ser la URL de una canción o una palabra o frase que se encuentre en el título de la pista.\n" +"Si se omite el asunto, se agregará en su lugar la URL de cualquier pista que se esté reproduciendo en ese momento.\n\n" +"La lista de bloqueos de canciones coincide de forma aproximada, pero distingue entre mayúsculas y minúsculas.\n" +"Esto significa que si se agrega \"Pie\", se coincidirá con \"cherry Pie\" pero no con \"piecrust\" en las comprobaciones.\n" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Debes proporcionar un tema de canción si ninguna canción se está reproduciendo actualmente." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Sub-comando inválido. Usa `help blocksong` para ejemplos de uso." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "El asunto `%(subject)s` ya está en la lista de bloques de canciones." + +#: musicbot/bot.py:3187 +#, python-format +msgid "Added subject `%(subject)s` to the song block list.\n" +"%(status)s" +msgstr "Se añadió el asunto `%(subject)s` a la lista de bloques de canciones.\n" +"%(status)s" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "El asunto no está en la lista de bloques de canciones y no puede ser eliminado." + +#: musicbot/bot.py:3204 +#, python-format +msgid "Subject `%(subject)s` has been removed from the block list.\n" +"%(status)s" +msgstr "El asunto `%(subject)s` ha sido eliminado de la lista de bloques.\n" +"%(status)s" + +#: musicbot/bot.py:3214 +msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" +msgstr " Añade o quita la canción especificada o reproduciendo la canción actualmente en la lista de reproducción actual.\n" + +#: musicbot/bot.py:3217 +msgid " Adds the entire queue to the guilds playlist.\n" +msgstr " Añade toda la cola a la lista de reproducción de gremios.\n" + +#: musicbot/bot.py:3220 +msgid " Show a list of existing playlist files.\n" +msgstr " Mostrar una lista de archivos de lista de reproducción existente.\n" + +#: musicbot/bot.py:3223 +msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" +msgstr " Restablecer la cola de lista de reproducción automática, reiniciando en la primera pista a menos que sea aleatorizada.\n" + +#: musicbot/bot.py:3226 +msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" +msgstr " Establece una lista de reproducción por defecto para este gremio y recarga la lista de reproducción automática.\n" + +#: musicbot/bot.py:3229 +msgid "Manage auto playlist files and per-guild settings." +msgstr "Administrar archivos de lista de reproducción automática y ajustes por guild." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Sub-comando inválido. Usa `help autoplaylist` para los ejemplos de uso." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "El enlace a la canción suministrada no es válido" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "La cola está vacía. ¡Añade algunas canciones con un comando de reproducción!" + +#: musicbot/bot.py:3273 +msgid "All songs in the queue are already in the autoplaylist." +msgstr "Todas las canciones en la cola ya están en la lista de reproducción automática." + +#: musicbot/bot.py:3277 +#, python-format +msgid "Added %(number)d songs to the autoplaylist." +msgstr "Añadidas canciones %(number)d a la lista de reproducción automática." + +#: musicbot/bot.py:3287 +#, python-format +msgid "Added `%(url)s` to the autoplaylist." +msgstr "Añadido `%(url)s` a la lista de reproducción automática." + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Esta canción ya está en la lista de reproducción automática." + +#: musicbot/bot.py:3304 +#, python-format +msgid "Removed `%(url)s` from the autoplaylist." +msgstr "Eliminado `%(url)s` de la lista de reproducción automática." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Esta canción aún no está en la lista de reproducción automática." + +#: musicbot/bot.py:3316 +#, python-format +msgid "Loaded a fresh copy of the playlist: `%(file)s`" +msgstr "Se ha cargado una copia fresca de la lista: `%(file)s`" + +#: musicbot/bot.py:3327 +#, python-format +msgid "**Available Playlists:**\n" +"%(names)s" +msgstr "**Listas de reproducción disponibles:**\n" +"%(names)s" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "Debe proporcionar un nombre de archivo de lista de reproducción." + +#: musicbot/bot.py:3357 +msgid "\n" +"This playlist is new, you must add songs to save it to disk!" +msgstr "\n" +"Esta lista es nueva, ¡debes añadir canciones para guardarla en disco!" + +#: musicbot/bot.py:3362 +#, python-format +msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" +msgstr "La lista de reproducción para este servidor ha sido actualizada a: `%(name)s`%(note)s" + +#: musicbot/bot.py:3373 +msgid "Generate an invite link that can be used to add this bot to another server." +msgstr "Genera un enlace de invitación que puede ser usado para añadir este bot a otro servidor." + +#: musicbot/bot.py:3385 +#, python-format +msgid "Click here to add me to a discord server:\n" +"%(url)s" +msgstr "Haz clic aquí para añadirme a un servidor de discord:\n" +"%(url)s" + +#: musicbot/bot.py:3391 +msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" +"Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" +msgstr "Activar o desactivar el modo karaoke. Si está activado, sólo los miembros karaoke pueden hacer cola de canciones.\n" +"Grupos con control de permisos BypassKaraokeMode cuyos miembros son miembros de Karaoke.\n" + +#: musicbot/bot.py:3403 +msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." +msgstr "\\Nmodo{OK HAND SIGN} Karaoke ahora está activado." + +#: musicbot/bot.py:3405 +msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." +msgstr "\\Nmodo{OK HAND SIGN} Karaoke está deshabilitado." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "No tienes permisos para solicitar listas de reproducción" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "La lista de reproducción tiene demasiadas entradas (%(songs)s pero el máximo es %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "Las entradas de la lista de reproducción excederán tu límite de cola.\n" +"Hay %(songs)s en la lista y %(queued)s ya en cola.\n" +"El límite es %(max)s para tu grupo." + +#: musicbot/bot.py:3580 +msgid "Bot was previously paused, resuming playback now." +msgstr "El bot estaba pausado previamente, reanudando la reproducción ahora." + +#: musicbot/bot.py:3589 +msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" +"You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" +"Playlist links will be extracted into multiple links and added to the queue.\n" +"If you enter a non-URL, the input will be used as search criteria on YouTube and the first result played.\n" +"MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" +msgstr "Añade una canción para que se reproduzca en la cola. Si no se reproduce ninguna canción o está en pausa, se iniciará la reproducción.\n\n" +"Puedes proporcionar una URL a un archivo de video o audio o la URL de un servicio compatible con yt-dlp.\n" +"Los enlaces de la lista de reproducción se extraerán en varios enlaces y se agregarán a la cola.\n" +"Si ingresas una URL que no sea la URL, la entrada se utilizará como criterio de búsqueda en YouTube y se reproducirá el primer resultado.\n" +"MusicBot también admite URL y URI de Spotify, pero el audio se obtiene de YouTube de todos modos.\n" + +#: musicbot/bot.py:3628 +msgid "Play command that shuffles playlist entries before adding them to the queue.\n" +msgstr "Reproducir el comando que ajusta las entradas de la lista de reproducción antes de añadirlas a la cola.\n" + +#: musicbot/bot.py:3665 +#, python-format +msgid "Shuffled playlist items into the queue from `%(request)s`" +msgstr "Elementos de la lista de reproducción mezclados en la cola desde `%(request)s`" + +#: musicbot/bot.py:3672 +msgid "A play command that adds the song as the next to play rather than last.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "Un comando de reproducción que agrega la canción como la siguiente en reproducirse en lugar de la última.\n" +"Lea la ayuda del comando de reproducción para obtener información sobre las entradas admitidas.\n" + +#: musicbot/bot.py:3707 +msgid "A play command which skips any current song and plays immediately.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "Un comando de reproducción que omite cualquier canción actual y reproduce inmediatamente.\n" +"Lee ayuda para el comando de reproducción para obtener información sobre las entradas soportadas.\n" + +#: musicbot/bot.py:3744 +msgid "Restarts the current song at the given time.\n" +"If time starts with + or - seek will be relative to current playback time.\n" +"Time should be given in seconds, fractional seconds are accepted.\n" +"Due to codec specifics in ffmpeg, this may not be accurate.\n" +msgstr "Reinicia la canción actual en el momento dado.\n" +"Si el tiempo comienza con + o - la búsqueda será relativa a la hora de reproducción actual.\n" +"El tiempo se debe dar en segundos, se aceptan segundos fraccionales.\n" +"Debido a especificaciones de código en ffmpeg, esto puede no ser preciso.\n" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "No se puede usar seek si no hay nada jugando." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "No se puede usar seek en la pista actual, tiene una duración desconocida." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "La búsqueda no es compatible con los streams." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "No se puede usar seek sin tiempo para colocar la reproducción." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "No se pudo convertir `%(input)s` a una hora válida en segundos." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "No se puede buscar a `%(input)s` (`%(seconds)s` segundos) en la pista actual con una longitud de `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3840 +#, python-format +msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." +msgstr "Buscando en el tiempo `%(input)s` (`%(seconds).2f` segundos) en la canción actual." + +#: musicbot/bot.py:3852 +msgid "Toggles playlist or song looping.\n" +"If no option is provided the current song will be repeated.\n" +"If no option is provided and the song is already repeating, repeating will be turned off.\n" +msgstr "Activa o desactiva la repetición de la lista de reproducción o de la canción.\n" +"Si no se proporciona ninguna opción, se repetirá la canción actual.\n" +"Si no se proporciona ninguna opción y la canción ya se está repitiendo, la repetición se desactivará.\n" + +#: musicbot/bot.py:3870 +msgid "No songs are currently playing. Play something with a play command." +msgstr "No hay canciones en reproducción actualmente. Reproduce algo con un comando de reproducción." + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Sub-comando no válido. Utilice el comando `help repeat` para ejemplos de uso." + +#: musicbot/bot.py:3883 musicbot/bot.py:3920 +msgid "Playlist is now repeating." +msgstr "La lista de reproducción se está repitiendo." + +#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +msgid "Playlist is no longer repeating." +msgstr "La lista de reproducción ya no se repite." + +#: musicbot/bot.py:3892 musicbot/bot.py:3901 +msgid "Player will now loop the current song." +msgstr "El reproductor ahora bucle la canción actual." + +#: musicbot/bot.py:3894 musicbot/bot.py:3908 +msgid "Player will no longer loop the current song." +msgstr "El jugador ya no hará el bucle de la canción actual." + +#: musicbot/bot.py:3898 +msgid "Player is already looping a song!" +msgstr "¡El jugador ya está haciendo un bucle de canción!" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "El reproductor no está bucle actualmente." + +#: musicbot/bot.py:3926 +msgid "Song is no longer repeating." +msgstr "La canción ya no se repite." + +#: musicbot/bot.py:3930 +msgid "Song is now repeating." +msgstr "La canción se está repitiendo." + +#: musicbot/bot.py:3938 +msgid " Move song at position FROM to position TO.\n" +msgstr " Mover canción en la posición FROM a la posición de la OS.\n" + +#: musicbot/bot.py:3942 +msgid "Swap existing songs in the queue using their position numbers.\n" +"Use the queue command to find track position numbers.\n" +msgstr "Intercambia canciones existentes en la cola usando sus números de posición.\n" +"Usa el comando de cola para encontrar números de posición de la pista.\n" + +#: musicbot/bot.py:3961 +msgid "There are no songs queued. Play something with a play command." +msgstr "No hay canciones en la cola. Reproduce algo con un comando de juego." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Las posiciones de la canción deben ser enteras!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "¡Has dado una posición fuera del tamaño de la lista de reproducción!" + +#: musicbot/bot.py:3984 +#, python-format +msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" +msgstr "¡Se ha movido con éxito la canción de la posición %(from)s en la cola a la posición %(to)s!" + +#: musicbot/bot.py:4072 +#, python-format +msgid "This link contains a Playlist ID:\n" +"`%(url)s`\n\n" +"Do you want to queue the playlist too?" +msgstr "Este enlace contiene un ID de lista de reproducción:\n" +"`%(url)s`\n\n" +"¿Quieres poner en cola la lista de reproducción también?" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "La reproducción de medios locales no está habilitada." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "La URL de Spotify no es válida o no está soportada actualmente." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Se ha detectado una URL de Spotify, pero Spotify no está habilitado." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Has alcanzado el límite de canciones en cola (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "El modo Karaoke está activado, ¡por favor inténtalo de nuevo cuando esté desactivado!" + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Error al extraer información debido a error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Ese video no se puede reproducir. Intenta usar el comando Stream." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "La búsqueda en YouTube no devolvió resultados para: %(url)s" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "No se añadieron canciones, todas las canciones sobrepasaron la duración máxima (%(max)s segundos)" + +#: musicbot/bot.py:4254 +#, python-format +msgid "Enqueued **%(number)s** songs to be played.\n" +"Position in queue: %(position)s" +msgstr "En cola **%(number)s** canciones a reproducir.\n" +"Posición en cola: %(position)s" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "La duración de la canción excede el límite (%(length)s > %(max)s)" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "En cola `%(track)s` para ser reproducido.\n" +"Posición en cola: %(position)s" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "¡Reproduciendo a continuación!" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "%(position)s - tiempo estimado hasta jugar: `%(eta)s`" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "%(position)s - no se puede calcular el tiempo hasta jugar." + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "Agrega una URL de contenido multimedia a la cola como una transmisión.\n" +"La URL puede ser un contenido multimedia en streaming real, como Twitch, YouTube o un servicio similar a Shoutcast.\n" +"También puedes usar contenido multimedia que no haya sido transmitido en streaming para reproducirlo sin descargarlo.\n" +"Nota: FFmpeg puede interrumpir la transmisión aleatoriamente o si ocurren problemas de conexión.\n" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Las listas de reproducción de streaming aún no están soportadas." + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "Ahora la pista de streaming `%(track)s`" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr " Buscar con servicio varios resultados con la consulta de búsqueda.\n" + +#: musicbot/bot.py:4432 +msgid " Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr " Buscar consulta en YouTube pero obtener un número personalizado de resultados.\n" +" Nota: las comillas dobles son requeridas en este caso.\n" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "Busca un servicio soportado y selecciona de los resultados para añadir a la cola.\n" +"Se pueden omitir argumentos de servicio y número, el número predeterminado es de 3 resultados.\n" +"Seleccione de estos servicios:\n" +"- yt, youtube (por defecto)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Has alcanzado el límite de elementos de tu lista de reproducción (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Por favor especifique una consulta de búsqueda. Use `help search` para más información." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "No puedes buscar más de %(max)s vídeos" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "Buscando videos..." + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "La búsqueda falló debido a un error: %(error)s" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "No se encontraron vídeos." + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "Para seleccionar una canción, escriba el número correspondiente." + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "Resultados de la búsqueda de %(service)s:" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "**%(index)s**. **%(track)s** | %(length)s" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "\n" +"**0**. Cancela" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "Elige una canción" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "Canción añadida [%(track)s](%(url)s) a la cola." + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "Resultado %(number)s de %(total)s: %(url)s" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "Muy bien, ¡vaya!" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "Mostrar información sobre lo que se está reproduciendo actualmente." + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "[autoplaylist]" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "Reproduciendo" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "Transmisión actual:" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "Reproduciendo actualmente:" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "Añadido por:" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "`%(user)s`" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "Progreso:" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "No hay canciones en cola! Coloca algo con un comando de reproducción." + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "Dile a MusicBot que se una al canal en el que estás." + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "No estás conectado a la voz. ¡Prueba a unirte a un canal de voz!" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "Conectado a `%(channel)s`" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "Hace que MusicBot siga a un usuario cuando cambia de canal en un servidor.\n" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "Ya no sigue al usuario `%(user)s`" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "Ahora siguiendo al usuario `%(user)s` entre los canales de voz." + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot no puede seguir a un usuario que no es miembro del servidor." + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "Siguirá al usuario `%(user)s` entre los canales de voz." + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "Pausar la reproducción si una pista se está reproduciendo." + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "Música en pausa en `%(channel)s`" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "El jugador no está reproduciendo." + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "Reinicia la reproducción si el jugador estaba pausado previamente." + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "Reanudó la música en `%(channel)s`" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "Cola de música restablecida" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "Jugador no está pausado." + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "Mezclar todos los rastros actuales en cola." + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "Mezclado todas las canciones en la cola." + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "Elimina todas las canciones actualmente en cola." + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "Se borraron todas las canciones de la cola." + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "Quitar una canción de la cola, opcionalmente en la posición de cola indicada.\n" +"Si se omite la posición, se elimina la canción que se encuentra al final de la cola.\n" +"Utilice el comando queue para encontrar el número de posición de su pista.\n" +"Sin embargo, las posiciones de todas las canciones se modifican cuando comienza a reproducirse una nueva canción.\n" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "¡Nada en la cola para eliminar!" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "Eliminado `%(track)s` añadido por `%(user)s`" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "No se ha encontrado nada en la cola del usuario `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "No tienes permiso para eliminar esa entrada de la cola. Debes ser tú quien la puso en cola o tener permisos de omisión instantánea." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Número de entrada no válido. Utilice el comando de cola para encontrar las posiciones de la cola." + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "Entrada eliminada `%(track)s` añadida por `%(user)s`" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "Se ha eliminado la entrada `%(track)s`" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "Saltar o votar para omitir la canción actual.\n" +"Los miembros con permiso InstaSkip pueden usar el parámetro de fuerza para omitir el voto.\n" +"Si la opción LegacySkip está activada, el parámetro de fuerza puede ser ignorado.\n" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "¡No se puede saltar! ¡El jugador no está jugando!" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "La siguiente canción `%(track)s` está descargando, por favor espere." + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "La siguiente canción se reproducirá en breve. Por favor espere." + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Algo extraño está sucediendo.\n" +"Puede que quieras reiniciar el bot si no empieza a funcionar." + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Algo extraño está sucediendo.\n" +"Puede que quieras reiniciar el bot si no empieza a funcionar." + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "No tienes permiso para forzar a saltar una canción en bucle." + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "Forzar omitido `%(track)s`." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "No tienes permiso para forzar saltar." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "No tienes permiso para saltar una canción en bucle." + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "Tu salto para `%(track)s` ha sido reconocido.\n" +"El voto para saltar ha sido aprobado.%(next_up)s" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr " ¡Próxima canción!" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "Tu salto para `%(track)s` ha sido reconocido.\n" +"Necesitas **%(votes)s** más votos para saltarte esta canción." + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "Establezca el nivel de volumen de salida de MusicBot de 1 a 100.\n" +"El parámetro de volumen permite introducir un signo + o - inicial para realizar ajustes relativos.\n" +"La configuración de volumen se conserva hasta que se reinicia MusicBot.\n" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "Volumen actual: `%(volume)s%%`" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` no es un número válido" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "Volumen actualizado de **%(old)d** a **%(new)d**" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Se proporcionó un cambio de volumen poco razonable: %(old_volume)s%(adjustment)s es %(new_volume)s.\n" +"El volumen solo puede establecerse de 1 a 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Volumen no razonable proporcionado: %(volume)s. Proporciona un valor entre 1 y 100." + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "Cambiar la velocidad de reproducción de la pista de reproducción actualmente.\n" +"La tasa debe estar entre 0.5 y 100. debido a límites de ffmpeg.\n" +"La reproducción de streaming no soporta ajustes de velocidad.\n" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "No se está reproduciendo ninguna pista, no se puede establecer la velocidad.\n" +"Utilice el comando de configuración para establecer una velocidad de reproducción predeterminada." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "La velocidad no se puede aplicar a los medios streamed." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Debe proporcionar una velocidad para establecer." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "La velocidad que proporcionaste no es válida. Usa un número entre 0.5 y 100." + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "Ajustando velocidad de reproducción a `%(speed).3f` para el rastro actual." + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr " Añadir un nuevo alias con argumentos opcionales.\n" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr " Elimina un alias con el nombre dado." + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr " Recargar o guardar alias de/al archivo de configuración." + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "Permite la gestión de alias de discord. Para ver alias utilice el comando de ayuda." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Opción no válida para el comando: `%(option)s`" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "Alias recargados desde archivo de configuración." + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "Alias guardados al archivo de configuración." + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "No se pudo guardar el alias debido al error:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Debe proporcionar un alias y un comando para alias" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "Nuevo alias añadido. `%(alias)s` ahora es un alias de `%(command)s`" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Debe proporcionar un nombre de alias para eliminar." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "El alias `%(alias)s` no existe." + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "Alias `%(alias)s` fue eliminado." + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr " Muestra texto de ayuda sobre cualquier opción de configuración faltante.\n" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr " Lista los nombres de las opciones que se han cambiado desde la carga del archivo de configuración.\n" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr " Lista de las opciones de configuración disponibles y sus secciones.\n" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr " Recargar el archivo options.ini desde el disco.\n" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr " Muestra texto de ayuda para una opción específica.\n" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr " Mostrar el valor actual de la opción.\n" + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr " Guarda el valor actual en el archivo de opciones.\n" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr " Validar la opción y establecer la configuración de la sesión, pero no el archivo.\n" + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr " Restablecer la opción a su valor predeterminado.\n" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "Administrar la configuración options.ini desde dentro de Discord." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "La configuración no puede usar las menciones de canal y usuario al mismo tiempo." + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "**Opción que falta:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Por defecto se establece a: %(default)s```\n" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "*¡Todas las opciones de configuración están presentes y contabilizadas!*" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "Ninguna opción de configuración parece ser cambiada." + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "**Opciones cambiadas:**\n" +"%(changed)s" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "## Opciones disponibles:\n" +"**Opciones editables:**\n" +"%(editable)s\n" +"**Solo edición manual:**\n" +"%(manual)s" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "Opciones de configuración recargadas desde el archivo con éxito!" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "No se puede recargar la configuración debido al siguiente error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "No se pudo resolver el nombre de la sección del nombre de la opción. Por favor, introduzca un nombre de sección y opción válidos." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "La opción dada es ambigua, por favor ingrese un nombre de sección." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Debe proporcionar un nombre de sección y un nombre de opción para este comando." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "La sección `%(section)s` no está disponible.\n" +"Las secciones disponibles son: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "La opción `%(option)s` no está disponible." + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "Esta opción sólo se puede establecer editando el archivo de configuración." + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "Por defecto esta opción se establece como: %(default)s" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Opción:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "La opción `%(option)s` no es editable. No se puede guardar en el disco." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Error al guardar la opción: `%(option)s`" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "Opción guardada con éxito: `%(config)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "La opción `%(option)s` no es editable, el valor no se puede mostrar." + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Opción:** `%(config)s`\n" +"Valor actual: `%(loaded)s`\n" +"Valor del archivo INI: `%(ini)s`" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "La opción `%(option)s` no es editable. No se puede actualizar la configuración." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Debe proporcionar una sección, opción y valor para este sub-comando." + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "¡La opción `%(option)s` no fue actualizada!" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "La opción `%(config)s` fue actualizada para esta sesión.\n" +"Para guardar el cambio use `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "La opción `%(option)s` no es editable. No se puede restablecer por defecto." + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "¡La opción `%(option)s` no se ha restablecido por defecto!" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "La opción `%(config)s` fue restablecida a su valor predeterminado `%(default)s`.\n" +"Para guardar el cambio use `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "Comando obsoleto, use el comando config en su lugar." + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "El comando de opción está obsoleto, utilice el comando de configuración en su lugar." + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "Muestra información sobre el almacenamiento en caché o borra la caché según los límites configurados.\n" +"Al utilizar la opción de actualización, se escaneará la caché en busca de cambios externos antes de mostrar los detalles." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Opción especificada no válida, use: info, actualización o borrado" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "Deshabilitado" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "Activado" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "%(time)s días" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "Ilimitado" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "**Video Cache:** *%(state)s*\n" +"**Límite de Almacenamiento:** *%(size)s*\n" +"**Límite de tiempo:** *%(time)s*\n\n" +"**Cacheo ahora: %(used)s en archivos %(files)s." + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "Se ha borrado la caché." + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Fallo** al eliminar caché, comprueba los registros para más información..." + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "Caché no encontrado para borrar." + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "Mostrar información sobre la cola del jugador actual.\n" +"Número de página opcional muestra las entradas posteriores en la cola.\n" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "El argumento de página de cola debe ser un número entero." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "El número de página solicitado está fuera de límites.\n" +"Hay **%(total)s** páginas." + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "(duración desconocida)" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "Actualmente reproduciendo: `%(title)s`\n" +"Añadido por: `%(user)s`\n" +"Progreso: `[%(progress)s/%(total)s]`\n" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "**Entrada #%(index)s:**Título: `%(title)s`\n" +"Añadido por: `%(user)s\n\n" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "%(progress)sHay `%(total)s` entradas en cola.\n" +"Aquí están las siguientes canciones %(per_page)s , comenzando por la canción #%(start)s\n\n" +"%(tracks)s" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "Canciones en cola" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Inténtelo de nuevo. MusicBot no pudo hacer ni obtener una referencia al mensaje de la cola.\n" +"Si el problema persiste, envíe un informe de error." + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "Busca y elimina mensajes y comandos del bot del canal de texto llamado.\n" +"Opcionalmente suministra un número de mensajes para buscar, 50 por defecto 500 max.\n" +"Este comando puede ser lento si se dan rangos más grandes.\n" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "Parámetro no válido. Por favor, proporcione un número de mensajes a buscar." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "No se puede utilizar la purga en el canal DM privado." + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "Se han limpiado %(number)s mensaje(s)." + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "El bot no tiene permiso para administrar mensajes." + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr "Volcar las URLs individuales de una lista de reproducción a un archivo." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "La URL dada no era una URL válida." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "No se pudo extraer información de la url\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "Esto no parece ser una lista de reproducción." + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "Aquí está el volcado de la lista de reproducción para: %(url)s" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "Muestra tu ID de usuario de Discord o la ID de un usuario mencionado.\n" +"Este comando está en desuso y se ha sustituido por el modo de desarrollador en los clientes de Discord.\n" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "Tu ID de usuario es `%(id)s`" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "El ID de usuario para `%(username)s` es `%(id)s`" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "Lista los ID de Discord para la categoría seleccionada.\n" +"Devuelve todos los datos ID por defecto, pero se pueden seleccionar una o más categorías.\n" +"Este comando está obsoleto a favor de usar el modo desarrollador en los clientes de Discord.\n" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "Categorías válidas: %(cats)s" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "Aquí están los IDs que ha solicitado:" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permissions of the mentioned user." +msgstr "Obtenga una lista de sus permisos, o los permisos del usuario mencionado." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "ID de usuario o nombre de servidor no válido, por favor compruebe el ID e inténtelo de nuevo." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "No se pudo determinar el usuario de discord. Inténtalo de nuevo." + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Tus permisos de comando en %(server)s son:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Los permisos de comando para %(username)s en %(server)s son:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr " Mostrar grupos cargados y listar las opciones de permisos.\n" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr " Recarga los permisos del archivo permissions.ini.\n" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr " Añadir un nuevo grupo por defecto.\n" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr " Eliminar grupo existente.\n" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr " Mostrar texto de ayuda para la opción de permisos.\n" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr " Mostrar el valor del permiso para un grupo y permiso dado.\n" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr " Guardar grupo de permisos en el archivo.\n" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr " Establecer el valor del permiso para el grupo.\n" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "Administrar la configuración permissions.ini desde discord." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Los permisos no pueden usar menciones de canal y usuario al mismo tiempo." + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "¡Permisos recargados desde el archivo con éxito!" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "No se pueden recargar los permisos debido a un error:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "## Grupos disponibles:\n" +"%(groups)s\n" +"## Opciones disponibles:\n" +"%(options)s\n" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Debe proporcionar un nombre de grupo o opción para este comando." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Debe proporcionar un grupo, opción y valor para este comando." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "El subcomando %(option)s requiere un grupo y un nombre de permiso." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "El grupo `%(group)s` no está disponible.\n" +"Los grupos disponibles son: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "El permiso `%(option)s` no está disponible." + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "Este permiso sólo se puede establecer editando el archivo de permisos." + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "Por defecto este permiso está establecido en: `%(value)s`" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Permiso:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "No se puede agregar el grupo `%(group)s` que ya existe." + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "Nuevo grupo añadido con éxito: `%(group)s`\n" +"Ahora puedes personalizar los permisos con: `setperms set %(group)s`\n" +"Asegúrate de guardar el nuevo grupo con: `setperms save %(group)s`" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "No se puede eliminar el grupo integrado." + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "Grupo eliminado con éxito: `%(group)s`\n" +"Asegúrese de guardar este cambio con: `setperms save %(group)s`" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "El grupo propietario no es editable." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Error al guardar el grupo: `%(group)s`" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "Se ha guardado correctamente el grupo: `%(group)s`" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Permiso:** `%(permission)s`\n" +"Valor actual: `%(loaded)s`\n" +"Valor del archivo INI: `%(ini)s`" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "¡El permiso `%(option)s` no fue actualizado!" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "El permiso `%(permission)s` fue actualizado para esta sesión.\n" +"Para guardar el cambio use `setperms save %(section)s %(option)s`" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "Cambiar el nombre de usuario del bot en discord.\n" +"Nota: La API puede limitar los cambios de nombre a dos veces por hora." + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Error al cambiar el nombre de usuario. ¿Has cambiado nombres demasiadas veces?\n" +"Recuerda que los cambios de nombre están limitados a dos veces por hora.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Error al cambiar el nombre de usuario debido al error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "Establezca el nombre de usuario del bot a `%(name)s`" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "Cambiar el apodo de MusicBot." + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "No se puede cambiar el apodo: no hay permiso." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "No se pudo establecer el nick debido a un error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "Establecer el apodo del bot a `%(nick)s`" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr " Establecer un prefijo de comando por servidor." + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr " Borrar el prefijo de comando por servidor." + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "Reemplaza el prefijo de comandos predeterminado en el servidor.\n" +"La opción EnablePrefixPerGuild debe estar habilitada primero." + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Los emoji personalizados deben ser de este servidor para usar como prefijo." + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "Se ha borrado el prefijo del comando del servidor." + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "El prefijo del comando del servidor es ahora: %(prefix)s" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "¡El prefijo por servidor no está habilitado!\n" +"Utilice el comando de configuración para actualizar el prefijo en su lugar." + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "Cambiar el avatar de MusicBot.\n" +"Adjuntar un archivo y omitir el parámetro url también funciona.\n" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "Debe proporcionar una URL o adjuntar un archivo." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "No se puede cambiar el avatar debido a un error: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "Se ha cambiado el avatar del bot." + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "Forzar a MusicBot a desconectarse del servidor de discord." + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "Desconectado del servidor `%(guild)s`" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "¿Desconectado un cliente de voz sin jugador? [BUG]" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Actualmente no conectado al servidor `%(guild)s`" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr " Intento de recargar sin reiniciar el proceso. La opción predeterminada.\n" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr " Intentó reiniciar todo el proceso de MusicBot. Recargando todo.\n" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr " Reinicio completo, pero intente actualizar los paquetes pip antes de reiniciar.\n" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr " Reinicio completo, pero actualiza el código fuente de MusicBot con git primero.\n" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr " Intento de actualizar toda la dependencia y el código fuente antes de reiniciar por completo.\n" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "Intenta reiniciar MusicBot de distintas maneras.\n" +"Si no se proporciona ninguna opción, se da por sentado un reinicio \"suave\".\n" +"Se puede utilizar para actualizar de forma remota una instalación de MusicBot, pero debe utilizarse con cuidado.\n" +"Si tiene un administrador de servicios, le recomendamos que lo utilice en lugar de este comando para reiniciar.\n" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Opción inválida dada, utilice una de: suave, completa, actualizada, actualizada o actualizada" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "%(emoji)s Reiniciando la instancia actual..." + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "%(emoji)s Reiniciando el proceso del bot..." + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "%(emoji)s Intentará actualizar los paquetes pip necesarios y reiniciar el bot..." + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "%(emoji)s intentará actualizar el código del bot con git y reiniciar el bot..." + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "%(emoji)s Intentará actualizar todo y reiniciar el bot..." + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "Desconecte de todos los canales de voz y cierre el proceso MusicBot." + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr " Deja el servidor de discord dado por nombre o ID del servidor." + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "Fuerza a MusicBot a abandonar el servidor de Discord dado.\n" +"Los nombres son sensibles a mayúsculas y minúsculas, por lo que usar un número de ID es más fiable.\n" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Debe proporcionar un ID o nombre." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "No se ha encontrado ningún gremio con el ID o nombre `%(input)s`" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "Desconocido" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "Abandonó el gremio: `%(name)s` (Propietario: `%(owner)s`, ID: `%(id)s`)" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "Comando usado para pruebas. Imprime una lista de comandos que pueden ser verificados por una suite de pruebas." + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "Este comando ejecuta un registro a nivel CRITICAL, pero no hace nada más.\n" +"Puede utilizarse para identificar manualmente los eventos en el archivo de registro de MusicBot.\n" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "Breakpoint registrado con ID: %(uuid)s" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr " Ver los tipos más comunes reportados por el objeto.\n" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr " Ver salida objgraph.show_growth() limitada.\n" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr " Visualiza los tipos más comunes de objetos de fuego.\n" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr " Ver tipografías de objetos que filtran.\n" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr " Evaluar la función y argumentos dados sobre el objeto.\n" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "Interactúe con objgraph, si está instalado, para obtener información sobre el uso de la memoria.\n" +"Puede pasar un método arbitrario con argumentos (¡pero sin espacios!) que sea miembro de objgraph.\n" +"Dado que este método evalúa código arbitrario, se considera peligroso, al igual que el comando de depuración.\n" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "No se pudo importar `objgraph`, ¿está instalado?" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "Este comando ejecutará código Python arbitrario en el ámbito del comando.\n" +"Primero se intenta ejecutar eval(), si se lanzan excepciones, luego se intenta ejecutar exec().\n" +"Si eval tiene éxito, se muestra su valor de retorno.\n" +"Si exec tiene éxito, se puede establecer un valor en la variable local `result` y se devolverá ese valor.\n\n" +"Se puede ejecutar código de varias líneas si se envuelve en un bloque de código.\n" +"De lo contrario, solo se puede ejecutar una sola línea.\n\n" +"Este comando puede eliminarse en una versión futura y los desarrolladores lo usan para depurar el comportamiento de MusicBot.\n" +"El peligro de este comando no se puede subestimar. ¡No lo use ni le dé acceso si no comprende los riesgos!\n" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Error al ejecutar el código de depuración:\n" +"%(py_code)s\n" +"Excepción: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "Crea 'markdown' para opciones, permisos o comandos desde el código.\n" +"La salida se utiliza para actualizar las páginas de GitHub y por lo tanto no es adecuada para uso de referencia normal." + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "El subcomando debe ser uno de: %(options)s" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "Crea archivos INI por defecto." + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "Guardado el archivo INI solicitado en el disco. Compruébalo" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "Mostrar la versión actual del bot y comprobar si hay actualizaciones para MusicBot o dependencias.\n" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "No se pudo encontrar el ejecutable de git." + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "No hay actualizaciones en la rama `%(branch)s` remoto." + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "Nuevos commits están disponibles en `%(branch)srama remota." + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "Error al comprobar, vea los registros para más detalles." + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "Actualizar para `%(name)s` a la versión: `%(version)s`\n" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "No se encontraron actualizaciones para dependencias." + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "Hay actualizaciones para MusicBot disponibles para su descarga." + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "MusicBot es totalmente fecha!" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "%(status)s\n\n" +"**Actualizaciones de código fuente:**\n" +"%(git_status)s\n\n" +"**Actualizaciones de dependencia:**\n" +"%(pip_status)s" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "Muestra el tiempo de actividad de MusicBot, o la hora desde el último inicio / reinicio." + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "%(name)s ha estado en línea para `%(time)s`" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "Mostrar información de latencia para la API de Discord y todos los clientes de voz conectados." + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "- `%(delay).0f ms` (`%(avg).0f ms` medio.) en la región: `%(region)s`\n" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "No hay clientes de voz conectados.\n" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "**Latencia API:** `%(delay).0f ms`\n" +"**Latencia de cliente de voz:**\n" +"%(voices)s" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "Mostrar latencia de la API y latencia de voz si MusicBot está conectado." + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "auto" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "\n" +"**Latencia de voz:** `%(delay).0f ms` (`%(average).0f} ms` Prom.) en la región `%(region)s`" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "**Latencia API:** `%(delay).0f ms`%(voice)s" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "Mostrar el número de versión de MusicBot en el chat." + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "https://github.com/Just-Some-Bots/MusicBot\n" +"Versión actual: `%(version)s`" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr " Actualice el archivo cookies.txt usando un archivo adjunto cookies.txt." + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr " Activar o desactivar el archivo cookies.txt sin borrarlo." + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "Permite la gestión de la función de cookies en yt-dlp.\n" +"Al actualizar las cookies, debes cargar un archivo llamado cookies.txt\n" +"Si las cookies están deshabilitadas, la carga habilitará la función.\n" +"Las cargas eliminarán las cookies existentes, incluido el archivo de cookies deshabilitado.\n\n" +"ADVERTENCIA:\n" +" Copiar cookies puede poner en riesgo tu información personal o tus cuentas,\n" +" y puede resultar en la prohibición o robo de cuentas si no tienes cuidado.\n" +" No se recomienda debido a estos riesgos, y no debes usar esta\n" +" función si no entiendes cómo evitarlos." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Las cookies ya están habilitadas." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Las cookies deben ser subidas para estar habilitadas. (Falta archivo de cookies)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "No se pudo habilitar las cookies debido a un error: %(raw_error)s" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "Las cookies han sido habilitadas." + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "No se pudo renombrar el archivo de cookies debido a un error: %(raw_error)s\n" +"Cookies temporalmente deshabilitadas y serán reactivadas en el siguiente reinicio." + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "Las cookies han sido desactivadas." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "No se encontraron subidas adjuntas, inténtelo de nuevo mientras se subía un archivo de cookies." + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Error al descargar el archivo de cookies desde discord: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "No se han podido guardar las cookies en el disco: %(raw_error)s" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "Cookies subidas y habilitadas." + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "No puedes usar este bot en mensajes privados." + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Este comando no está permitido para el grupo de permisos: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Este comando requiere que estés en un canal de Voice." + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "**Comando:** %(name)s" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "Error de excepción" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "**Ejemplo con prefijo:**\n" +"%(prefix)s`%(command)s ...`\n" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "No se ha dado descripción.\n" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "No se ha dado el uso." + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "**Uso de ejemplo:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Descripción:**\n" +"%(desc)s" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "Dejando el canal de voz %(channel)s debido a la inactividad." + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "Abandonó `%(guild)s` debido a que el dueño del bot no se encuentra en él." + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "Establezca la verbosidad del registro de MusicBot. Normalmente esto debe establecerse en INFO.\n" +"Se puede ajustar a uno de los siguientes:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFFMPEG, NOISY, o CADA" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "Token de autenticación de bot de Discord para tu Bot.\n" +"Visita el Portal de Desarrolladores de Discord para crear una aplicación bot y generar tu Token.\n" +"¡Nunca publiques tu token de bot!" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "Proporciona tu propia ID de cliente de Spotify para permitir que MusicBot interactúe con la API de Spotify.\n" +"MusicBot intentará usar la API del reproductor web (modo invitado) si no se configura nada aquí.\n" +"El uso de tus propias credenciales de API otorga límites de uso más altos que el modo invitado." + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "Proporcione su secreto de cliente de Spotify para permitir a MusicBot interactuar con la API de Spotify.\n" +"Esto es necesario si establece la opción de Spotify_ClientID anterior." + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "Proporciona un número de ID de usuario de Discord para establecer el propietario de este bot.\n" +"La palabra \"auto\" o el número 0 establecerán el propietario según la información de la aplicación.\n" +"Solo se puede establecer un ID de propietario aquí. Por lo general, se recomienda establecer \"auto\"." + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "Una lista de los ID de usuarios de Discord que pueden usar los comandos exclusivos para desarrolladores.\n" +"Advertencia: los comandos exclusivos para desarrolladores pueden permitir la ejecución remota de código arbitrario.\n" +"Use espacios para separar varios ID.\n" +"La mayoría de los usuarios deben dejar esta configuración en blanco." + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "ID de miembros de Discord para otros bots que MusicBot no debe ignorar.\n" +"Use espacios para separar varios ID.\n" +"Todos los bots se ignoran de forma predeterminada." + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "El prefijo de comando es la forma en que deben iniciarse todos los comandos de MusicBot en los mensajes de Discord.\n" +"Por ejemplo, si lo configuras en *, el comando de reproducción se activa con *play..." + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "Habilitar el uso de comandos con @[YourBotNameHere]\n" +"El prefijo de comandos todavía está disponible, pero puede reemplazarse con la mención @ ." + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "Números de identificación de los canales de texto que MusicBot debe usar exclusivamente para comandos.\n" +"Puede contener identificaciones de canales en varios servidores.\n" +"Use espacios para separar varias identificaciones.\n" +"Si no se configura esta opción, se usarán todos los canales." + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "Permitir respuestas en todos los canales mientras no hay canal específico establecido para un servidor.\n" +"solo se usa cuando BindToChannels no tiene un ID para un servidor." + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "Una lista de IDs de canal de voz a los que MusicBot debería unirse automáticamente al inicio.\n" +"Use espacios para separar múltiples IDs." + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "MusicBot intentará enviar mensajes ahora reproduciendo directamente al miembro que solicitó la canción en lugar de publicar en un canal del servidor." + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "Desactivar ahora los mensajes de las canciones reproducidas a través de la lista de reproducción automática." + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "Fuerza a MusicBot a usar un canal específico para enviar mensajes ahora.\n" +"Solo se puede usar un ID de canal de texto por servidor." + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "MusicBot eliminará automáticamente los mensajes que se están reproduciendo." + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "Establece el nivel de volumen predeterminado MusicBot reproducirá canciones en.\n" +"Puede utilizar cualquier valor de 0 a 1, o de 0 a 100% de volumen." + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "Establece la velocidad predeterminada a la que MusicBot reproducirá las canciones.\n" +"Debe ser un valor entre 0,5 y 100,0 para que ffmpeg lo use.\n" +"Un valor de 1 es la velocidad de reproducción normal.\n" +"Nota: Los medios transmitidos no admiten ajustes de velocidad." + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "Número de votos de miembro del canal requeridos para saltar una canción.\n" +"actúa como mínimo cuando SkipRatio requeriría más votos." + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "Este porcentaje de oyentes en voz debe votar por omitir.\n" +"Si SkipsRequired es menor que el valor calculado, se utilizará en su lugar.\n" +"Puede configurarlo de 0 a 1, o de 0 % a 100 %." + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "Permitir a MusicBot mantener los medios descargados o eliminarlos de inmediato." + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "Si SaveVideos está activado, establezca un límite en cuanto espacio de almacenamiento debe ser utilizado." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "Si SaveVideos está habilitado, establezca un límite en cuanto los archivos deben ser asumidos." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "Si SaveVideos está habilitado, nunca purgue las canciones de la lista de reproducción automática de la caché, independientemente de los límites." + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "Mencionar al usuario que agregó la canción cuando se reproduce." + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "Unirse automáticamente al propietario si están en un canal de voz accesible cuando el bot se inicia." + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "Activar MusicBot para reproducir automáticamente música de la lista de reproducción automática cuando la cola está vacía." + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "Mezclar las pistas de lista de reproducción automática antes de reproducirlas." + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "Habilitar la omisión automática de canciones de la lista de reproducción automática cuando un usuario reproduce una canción nueva.\n" +"Esto solo se aplica a la canción que se está reproduciendo actualmente si fue agregada por la lista de reproducción automática." + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song block list." +msgstr "Elimina canciones de la lista de reproducción automática si se encuentran en la lista de bloques de canciones." + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "Permitir a MusicBot eliminar automáticamente los mensajes que envía, después de un retraso.\n" +"El período de retraso es controlado por DeleteDelayShort y DeleteDelayLong." + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "Auto eliminar comandos válidos después de un retraso." + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "Establece el corto período de segundos antes de eliminar mensajes.\n" +"Este período es utilizado por mensajes que no requieren más interacción." + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "Establece el período de retraso largo antes de eliminar los mensajes.\n" +"Este período es utilizado por mensajes interactivos o de largo viento, como búsqueda y ayuda." + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "Permitir a MusicBot guardar la cola de canciones, así que las canciones en cola sobrevivirán a los reinicios." + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "Activa MusicBot para descargar la siguiente canción en la cola mientras se reproduce una canción.\n" +"Actualmente esta opción no se aplica a la lista de reproducción automática o a las canciones añadidas a una cola vacía." + +#: musicbot/config.py:550 +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "Especifique un mensaje personalizado para usar como estado del bot. Si se deja vacío, el bot\n" +"mostrará información dinámica sobre la música que se está reproduciendo actualmente en su estado.\n" +"Los mensajes de estado también pueden usar las siguientes variables:\n" +" {n_playing} = Número de reproductores de música que se están reproduciendo actualmente.\n" +" {n_paused} = Número de reproductores de música que se encuentran en pausa actualmente.\n" +" {n_connected} = Número de reproductores de música conectados, en cualquier estado del reproductor.\n\n" +"Las siguientes variables brindan acceso a información sobre el reproductor y la pista.\n" +"Estas variables pueden no ser precisas en bots de varios gremios:\n" +" {p0_length} = La duración total de la pista, si está disponible. Ejemplo: [2:34]\n" +" {p0_title} = El título de la pista que se está reproduciendo actualmente.\n" +" {p0_url} = La URL de la pista que se está reproduciendo actualmente." + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "Si está activado, los mensajes de estado informarán sobre los jugadores en pausa." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "Si está activado, MusicBot guardará el título de la pista a: data/[ID del servidor]/current.txt" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "Permitir que el miembro que solicitó la canción se salte, evitando votos." + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "Intenta usar ffmpeg para obtener opciones de normalización de volumen para usar en la reproducción.\n" +"Esta opción puede causar demoras entre la reproducción de canciones, ya que se debe procesar toda la pista." + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr "Permitir a MusicBot formatear sus mensajes como incrustados." + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "El número de entradas para mostrar por página cuando se usa el comando q para listar la cola." + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." +msgstr "Activar MusicBot para eliminar automáticamente las entradas no reproducibles de la lista de reproducción automática." + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "Mostrar los ajustes de configuración de MusicBot en los registros al inicio." + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "Habilitar a los usuarios con el permiso de InstaSkip para omitir el voto saltado y saltar la fuerza." + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "Si está activado, MusicBot dejará los servidores si el propietario no está en su lista de miembros." + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "Si está activado, MusicBot permitirá que los comandos tengan varios nombres usando datos en: config/aliases.json" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "Reemplazar el nombre/versión de MusicBot en el pie de página incrustado con texto personalizado.\n" +"Sólo se aplica cuando el uso de Embeds está habilitado y no está en blanco." + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "Elimina completamente el pie de página de las incrustaciones." + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "MusicBot automáticamente se ensordece cuando entra en un canal de voz." + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "Si está habilitado, MusicBot abandonará un canal de voz cuando ningún usuario esté escuchando,\n" +"después de esperar un período establecido en la opción LeaveInactiveVCTimeOut.\n" +"Los oyentes son miembros del canal, excluidos los bots, que no están sordos." + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "Establezca un período de tiempo de espera antes de abandonar un canal de voz inactivo. \n" +"Puede configurarlo en una cantidad de segundos o una frase como: 4 horas" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "Si está activado, MusicBot dejará el canal inmediatamente cuando la cola de canciones esté vacía." + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "Cuando esté en pausa o ya no se reproduzca, espere este tiempo y luego salga de la voz.\n" +"Puede configurar esto en una cantidad de segundos de frase como: 15 minutos\n" +"Configúrelo en 0 para desactivar la salida de esta manera." + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "Si está activado, los usuarios deben indicar opciones de búsqueda enviando un mensaje en lugar de usar reacciones." + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "Establece el número predeterminado de resultados de búsqueda a buscar cuando se utiliza el comando de búsqueda sin un número específico." + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "Permitir que MusicBot guarde un prefijo de comando por servidor y habilite el comando setprefix." + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "Si está habilitado y varios miembros están añadiendo canciones, MusicBot organizará la reproducción de una canción por miembro." + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "Permitir que MusicBot utilice pings cronometrados para detectar interrupciones y disponibilidad de la red.\n" +"Esto puede ser útil si mantienes al bot conectado a un canal o reproduciendo música las 24 horas del día, los 7 días de la semana.\n" +"MusicBot debe reiniciarse para habilitar las pruebas de red.\n" +"De forma predeterminada, esta opción está deshabilitada." + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "Habilitar guardar todas las canciones reproducidas por MusicBot en un archivo de lista de reproducción global: %(filename)s\n" +"Esto contendrá todas las canciones de todos los servidores." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "Habilitar guardar canciones reproducidas por servidor en un archivo de lista de reproducción: %(basename)s[Server ID]%(ext)s" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "Habilitar la reproducción de archivos multimedia locales usando el comando Reproducir.\n" +"Cuando está habilitado, los usuarios pueden usar: `play file://path/to/file. xt`\n" +"para reproducir archivos desde la ruta local MediaFileDirectory." + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "Permitir a MusicBot reanudar automáticamente cuando se utilizan comandos de reproducción." + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "Configuración de proxy HTTP/HTTPS experimental para usar con el descargador de medios ytdlp.\n" +"El valor establecido aquí se pasa a `ytdlp --proxy` y a la verificación del encabezado aiohttp.\n" +"Deje en blanco para deshabilitarlo." + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "Opción experimental para configurar un encabezado de agente de usuario estático en yt-dlp.\n" +"Yt-dlp no suele recomendar cambiar la cadena de agente de usuario.\n" +"Para ver ejemplos de lo que podría incluir aquí, consulte los dos enlaces siguientes:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent\n" +" https://www.useragents.me/\n" +"Déjelo en blanco para utilizar cadenas de agente de usuario predeterminadas y generadas dinámicamente." + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "Opción experimental para permitir que yt-dlp use una cuenta de YouTube a través de OAuth2.\n" +"Cuando está habilitada, debe usar la URL y el código generados para autorizar una cuenta.\n" +"Luego, el token de autorización se almacena en el archivo `%(oauthfile)s`.\n" +"Esta opción no debe usarse cuando las cookies están habilitadas.\n" +"Es posible que no se recomiende usar una cuenta personal.\n" +"Configure sí para habilitar o no para deshabilitar." + +#: musicbot/config.py:920 +msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "URL de video de YouTube opcional que se utiliza al inicio para activar la autorización de OAuth2.\n" +"Esto inicia el mensaje de OAuth2 antes, en lugar de esperar una solicitud de canción.\n" +"La URL que se establece aquí debe ser una URL de video de YouTube accesible.\n" +"La autorización debe completarse antes del inicio; si se establece esta opción, continuará." + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "Cambiar la función de lista de bloques de usuario, sin vaciar la lista de bloques." + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "Una ruta opcional de archivo a un archivo de texto con los ID de usuario de Discord, uno por línea." + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "Activar la función de lista de bloques de canciones, sin vaciar la lista de bloques." + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "Una ruta opcional de archivo a un archivo de texto que muestra URLs, palabras o frases una por línea.\n" +"Cualquier título o URL de la canción que contenga cualquier línea de la lista será bloqueada." + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "Una ruta opcional a un directorio que contiene archivos de listas de reproducción automáticas.\n" +"Cada archivo debe contener una lista de términos o URL reproducibles, una pista por línea." + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "Una ruta opcional de directorio donde se pueden almacenar archivos multimedia reproducibles.\n" +"Todos los archivos y subdirectorios pueden ser accedidos usando 'file://' como protocolo.\n" +"Ejemplo: file://some/folder/name/file.ext\n" +"Mapas a: %(path)s/some/folder/name/file.ext" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "Una ruta opcional de directorio donde MusicBot almacenará la caché a corto y largo plazo para la reproducción." + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "Configure la rotación automática de archivos de registro al reiniciar y limite la cantidad de archivos que se conservan.\n" +"Cuando está deshabilitada, solo se conserva un registro y su contenido se reemplaza en cada ejecución.\n" +"Establezca en 0 para deshabilitarla. La cantidad máxima permitida es %(max)s." + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "Configura el formato de fecha del archivo de registro que se utiliza cuando LogsMaxKept está habilitado.\n" +"Si se deja en blanco, se registra una advertencia y se utiliza el valor predeterminado en su lugar.\n" +"Obtén más información sobre los códigos de formato de hora de las tablas y los datos aquí:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "Potentially reduce el uso de la CPU, pero desactiva los controles de volumen y velocidad.\n" +"Esta opción también deshabilitará la opción de UseExperimentalEqualization" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Error al leer la configuración.\n\n" +"Problema:\n" +" Faltan una o más secciones de opciones de configuración requeridas.\n" +" Las secciones que faltan son:\n" +" %(sections)s\n\n" +"Solución:\n" +" Repare el archivo de opciones de configuración.\n" +" Cada [Sección] debe aparecer solo una vez, sin ningún otro texto en la misma línea.\n" +" Cada sección debe tener al menos una opción.\n" +" Use las opciones de ejemplo como plantilla o cópielas del repositorio." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Error al validar las opciones de configuración.\n\n" +"Problema:\n" +" Opción de configuración AudioCachePath no es un directorio.\n\n" +"Solución:\n" +" Asegúrese de que la ruta que ha configurado es una ruta a una carpeta / directorio." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Error al validar las opciones de configuración.\n\n" +"Problema:\n" +" No se pudo configurar la opción de configuración AudioCachePath debido a un error:\n" +" %(raw_error)s\n\n" +"Solución:\n" +" Verifique nuevamente que la configuración sea una ruta de directorio válida y accesible." + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Error al leer las opciones de configuración.\n\n" +"Problema:\n" +" No se ha especificado ningún token de bot en las opciones de configuración o entorno.\n\n" +"Solución:\n" +" Establecer la opción de configuración del token o establecer la variable de entorno %(env_var)s con un token de aplicación." + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Error al obtener 'OwnerID' automáticamente.\n\n" +"Problema:\n" +" La información de la aplicación Discord no está disponible.\n" +" Esto podría deberse a una interrupción temporal de la API o a un error.\n\n" +"Solución:\n" +" Establezca manualmente la opción de configuración 'OwnerID' o vuelva a intentarlo más tarde." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Error al validar las opciones de configuración.\n\n" +"Problema:\n" +" La configuración del Propietario es la misma que tu ID de Bot / App.\n\n" +"Solución:\n" +" No utilice el Bot o el ID de la aplicación en el campo OwnerID." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Error al localizar la configuración.\n\n" +"Problema:\n" +" No se pudo encontrar ni crear un archivo de configuración debido a un error:\n" +" %(raw_error)s\n\n" +"Solución:\n" +" Verifique que la carpeta y los archivos de configuración existan y que MusicBot pueda leerlos." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Error al cargar la configuración.\n\n" +"Problema:\n" +" MusicBot no pudo leer el archivo de configuración debido a un error:\n" +" %(raw_error)s\n\n" +"Solución:\n" +" Asegúrese de que el archivo sea accesible y no tenga errores.\n" +" Copie el archivo de ejemplo del repositorio si todo lo demás falla." + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Error cargando valor de configuración.\n\n" +"Problema:\n" +" El ID del propietario en [%(section)s] > %(option)s no es válido. Solución\n\n" +":\n" +" Establece %(option)s a un ID numérico o establézcalo a `auto` o `0` para vincular al propietario automático." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Error cargando valor de configuración.\n\n" +"Problema:\n" +" La opción de configuración [%(section)s] > %(option)s no es una ubicación de archivo válida.\n\n" +"Solución:\n" +" Comprueba la configuración de ruta y asegúrate de que el archivo existe y es accesible a MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Error cargando valor de configuración.\n\n" +"Problema:\n" +" Uno de los IDs en la opción [%(section)s] > %(option)s no es válido.\n\n" +"Solución:\n" +" Asegúrese de que todos los IDs sean numéricos y separados solo por espacios o comas." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD parece no tener cabeceras..." + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "La extracción de información de canciones no devolvió datos." + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "No se puede continuar la extracción, el bucle del evento está cerrado." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "La URL de Spotify no es válida o no es compatible." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Error en yt-dlp al descargar datos: %(raw_error)s" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "No se puede transmitir una URL no válida." + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "No se ha podido encontrar el archivo de medios locales." + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "No se pueden descargar los enlaces de Spotify, procesando error con el tipo: %(type)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "La descarga no se completó debido a un error: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "La descarga falló debido a un error yt-dlp: %(raw_error)s" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "La descarga falló debido a una excepción no controlada: %(raw_error)s" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Error al extraer los datos del medio solicitado." + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "Lista de nombres de comandos permitidos para su uso, separados por espacios.\n" +"El acceso de sub-comando se puede controlar añadiendo _ y el nombre del sub-comando.\n" +"Eso es `config_set` solo otorga el subcomando `set` del comando de configuración.\n" +"Esta opción anula a CommandBlacklist si se establece.\n" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "Lista de nombres de comandos denegados del uso, separados por espacios.\n" +"¡No funcionará si la lista blanca está activada!" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "Cuando está activado, CommandBlacklist y CommandWhitelist se utilizan juntos.\n" +"Solo se permiten comandos en la lista blanca, sin embargo los subcomandos pueden ser denegados por la lista negra.\n" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "Lista de nombres de comandos que solo se pueden usar en el mismo canal de voz que MusicBot.\n" +"Algunos comandos siempre requerirán que el usuario esté en el canal de voz, independientemente de esta lista.\n" +"Los nombres de los comandos deben estar separados por espacios." + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "Lista de IDs de rol del servidor de Discord a los que se concede este grupo de permisos.\n" +"Esta opción se ignora si se establece la Lista de Usuarios." + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "Lista de IDs de miembros de Discord a los que se les otorgan permisos en este grupo.\n" +"Esta opción sobreescribe GrantToRoles." + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "Número máximo de canciones que un usuario puede poner en cola.\n" +"Un valor de 0 significa ilimitado." + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "Duración máxima de una canción en segundos. Un valor de 0 significa que no hay límite.\n" +"Es posible que este permiso no se aplique si la duración de la canción no está disponible." + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "Número máximo de canciones que una lista de reproducción puede tener cuando está en cola.\n" +"Un valor de 0 significa ilimitado." + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "El número máximo de elementos que pueden ser devueltos en una búsqueda." + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "Permitir a los usuarios hacer cola listas de reproducción, o varias canciones a la vez." + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "Permitir a los usuarios omitir sin votar, si la opción de configuración LegacySkip está habilitada." + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "Permite al usuario omitir una canción en bucle." + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "Permite al usuario eliminar cualquier canción de la cola.\n" +"No elimina ni omite las canciones que se están reproduciendo." + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "Omitir canciones añadidas por usuarios que no están en voz cuando se reproduce su canción." + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "Permite al usuario añadir canciones a la cola cuando el modo Karaoke está activado." + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "Auto-invocar al canal de voz del usuario cuando se usan comandos de reproducción, si el bot ya no está en la voz.\n" +"¡El comando de invocación debe ser permitido para este grupo!" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "Especifica los nombres del extractor yt-dlp, separados por espacios, que se permiten usar.\n" +"Cuando se usan valores predeterminados vacíos, de código duro. Los valores por defecto se muestran arriba, pero pueden cambiar entre las versiones.\n" +"Para permitir todos los extractores, agregue `%(allow_all)s` sin comillas a la lista.\n\n" +"Los servicios/extractores soportados por yt-dlp están listados aquí:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites. d \n\n" +"MusicBot también proporciona un servicio personalizado `spotify:musicbot` para activar o desactivar la extracción de la API de Spotify.\n" +"AVISO: MusicBot podría no soportar todos los servicios disponibles para yt-dlp!\n" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "No tienes permiso para reproducir los medios solicitados.\n" +"El extractor yt-dlp `%(extractor)s` no está permitido en tu grupo." + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "No se pudo extraer la información" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "Esta es una lista de reproducción." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Tipo de contenido inválido `%(type)s` para la URL: %(url)s" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "sin datos de duración" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "no hay datos de duración en la entrada actual" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Track_data no válido, debe ser de tipo `track` obtenido `%(type)s`" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "El estado de respuesta no está bien: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "¡Respuesta JSON no se decodificó a un dictado!" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "No se pudo crear la URL: %(url)s Razón: %(raw_error)s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "No se pudo crear POST en la URL: %(url)s Razón: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "No se pudo obtener un token de invitado de Spotify, por favor, intente especificar el ID del cliente y el secreto del cliente" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "La respuesta API no contenía los datos esperados. Falta la clave: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "La respuesta de la API contenía datos inesperados.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Solicitado un token de Spotify, no terminó obteniendo uno" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "El estado de respuesta de la API no está aceptado: [%(status)s] %(reason)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Sólo el propietario puede usar este comando." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Sólo los usuarios dev pueden usar este comando." + diff --git a/i18n/fr_FR/LC_MESSAGES/musicbot_logs.mo b/i18n/fr_FR/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..9a45df58582dd199e3fc258d0aba8c82f386d301 GIT binary patch literal 119663 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 Vs!5UV8P2}~`!H*j6#`vt{a=B%qJ{tf literal 0 HcmV?d00001 diff --git a/i18n/fr_FR/LC_MESSAGES/musicbot_logs.po b/i18n/fr_FR/LC_MESSAGES/musicbot_logs.po new file mode 100644 index 000000000..635ecd71d --- /dev/null +++ b/i18n/fr_FR/LC_MESSAGES/musicbot_logs.po @@ -0,0 +1,4077 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: 2024-11-08 18:12\n" +"Last-Translator: \n" +"Language-Team: French\n" +"Language: fr_FR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: fr\n" +"X-Crowdin-File: /fae/i18n/musicbot_logs.pot\n" +"X-Crowdin-File-ID: 26\n" + +#: musicbot/aliases.py:52 +msgid "Aliases file not found, copying example_aliases.json" +msgstr "Fichier d'alias introuvable, copiant exemple_aliases.json" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "Erreur lors du chargement.\n\n" +"Problème :\n" +" Vos fichiers d'alias (aliases.json & example_aliases.json) sont manquants.\n\n" +"Solution :\n" +" Remplacez le(s) fichier(s) de configuration d'alias ou copiez-les:\n" +" https://github.com/Just-Some-Bots/MusicBot/" + +#: musicbot/aliases.py:80 +#, python-format +msgid "Failed to load aliases file: %s" +msgstr "Impossible de charger le fichier d'alias : %s" + +#: musicbot/aliases.py:88 +#, python-format +msgid "Failed to parse aliases file: %s\n" +"Ensure the file contains valid JSON and restart the bot." +msgstr "Échec de l'analyse du fichier d'alias : %s\n" +"Assurez-vous que le fichier contient du JSON valide et redémarrez le bot." + +#: musicbot/aliases.py:114 +#, python-format +msgid "Aliases skipped for non-existent command: %(command)s -> %(aliases)s" +msgstr "Alias ignorés pour une commande inexistante : %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "Alias(s) ignoré(s) pour les données d'alias invalides : %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "Alias `%(alias)s` ignoré comme il existe déjà sur commande : %(command)s" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "Erreur lors du chargement du fichier de la liste de lecture automatique : %s" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "Suppression de la chanson injouable de la playlist, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "Suppression de la chanson de la playlist, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "Impossible d'enregistrer les informations à propos de la suppression de l'URL de la playlist." + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "Mise à jour du fichier de liste de lecture..." + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "Impossible d'enregistrer le fichier de la playlist : %s" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "URL déjà dans la playlist %s, ignorée" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "Ajout d'une nouvelle URL à la playlist, %(playlist)s: %(track)s" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "Initialisation de MusicBot %s" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "La boucle est fermée, impossible de créer une tâche pour : %r" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "Exception non gérée pour la tâche : %r" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "Exception non gérée pour la tâche : %(task)r -- %(raw_error)s" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "Spotify ne nous a pas fourni de jeton. Désactivation." + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "Authentifié avec Spotify avec succès en utilisant l'ID du client et le secret." + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "Impossible de démarrer le client Spotify. Votre identifiant client et votre secret sont-ils corrects ? Détails: %s. Continuer quand même dans 5 secondes..." + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "La configuration n'a pas les identifiants de l'application Spotify, en essayant d'utiliser le mode invité." + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "Authentifié avec Spotify avec succès en mode invité." + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "Impossible de démarrer le client Spotify en utilisant le mode invité. Détails : %s." + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "Le plugin OAuth2 Yt-dlp expérimental est activé. Cela pourrait se briser à n'importe quel point !" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "Initialisé, se connecte maintenant à discord." + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "Le test de ping réseau est désactivé via la configuration." + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "Le test de ping réseau est en train de se fermer." + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "Impossible de résoudre la cible du ping" + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "Test de ping réseau annulé." + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "Le test de réseau via HTTP n'a pas de session à emprunter." + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "Impossible de localiser l'exécutable `ping` dans votre environnement." + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot n'a pas pu localiser un chemin de commande `ping`. Il tentera d'utiliser le ping HTTP à la place.\n" +"MusicBot a essayé la commande suivante : %s\n" +"Vous devriez activer le ping dans votre environnement système ou conteneur pour de meilleurs résultats.\n" +"Sinon, désactiver la vérification du réseau par le biais de la configuration." + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot s'est vu refuser la permission d'exécuter la commande `ping`. Il tentera d'utiliser le ping HTTP à la place.\n" +"MusicBot a essayé la commande suivante : %s\n" +"Vous devriez activer le ping dans votre environnement système ou conteneur pour de meilleurs résultats.\n" +"Sinon, désactiver la vérification du réseau par le biais de la configuration." + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "Votre environnement peut ne pas autoriser la commande `ping` du système. Il va essayer d'utiliser le ping HTTP à la place.\n" +"MusicBot a essayé la commande suivante : %s\n" +"Vous devriez activer le ping dans votre environnement système ou conteneur pour de meilleurs résultats.\n" +"Sinon, désactiver la vérification du réseau par le biais de la configuration." + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "Le réseau détecté par MusicBot est à nouveau disponible." + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "VoiceClient n'est pas connecté, en attente de reprise de MusicPlayer..." + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "Reprise de la lecture du joueur : (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "MusicBot a détecté une panne de réseau." + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "Suspendre MusicPlayer en raison de la disponibilité du réseau : (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "Recherche du propriétaire dans la guilde : %(guild)s (voix requise : %(required)s) et obtenu : %(owner)s" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "Vérification des salons à rejoindre ou à reprendre automatiquement..." + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "Guilde non disponible, impossible de rejoindre automatiquement : %(id)s/%(name)s" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "Canal vocal disponible : %(channel)s dans la guilde : %(guild)s" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "Essaiera de reprendre la session vocale au lieu de rejoindre automatiquement le canal : %s" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "Propriétaire trouvé dans le salon vocal : %s" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "Ignorant le canal de révocation, Invocation automatique au propriétaire dans le canal : %s" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "Ignorer le canal de connexion automatique, Invoquer automatiquement au propriétaire du canal : %s" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "Déjà connecté au salon : %(channel)s dans la guilde : %(guild)s" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "Tentative de rejoindre le salon : %(channel)s dans la guilde : %(guild)s" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "Discarding MusicPlayer and making a new on..." + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "MusicBot va créer un nouveau MusicPlayer..." + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "Ne pas rejoindre %(guild)s/%(channel)s, ce n'est pas un salon vocal pris en charge." + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "Terminé de rejoindre les canaux configurés." + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "Le membre n'est pas activé par la voix et ne peut pas utiliser cette commande." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "Vous ne pouvez pas utiliser cette commande quand vous n'êtes pas dans le salon vocal." + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "Récupération des infos d'application du bot." + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "MusicBot n'a pas la permission de se connecter au salon : %s" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBot n'a pas la permission de se connecter dans le salon : `%(name)s`" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "MusicBot n'a pas la permission de parler dans le canal : %s" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBot n'a pas la permission de parler dans le salon : `%(name)s`" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "Réutilisation des bots VoiceClient de la guilde : %s" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "Forcer la déconnexion sur un VoiceClient obsolète dans la guilde : %s" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "La déconnexion a échoué ou a été annulée ?" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "MusicBot ne peut pas se connecter au salon pour le moment : %(channel)s" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot n'a pas pu se connecter au canal.\n" +"Réessayez plus tard ou redémarrez le bot si cela continue." + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "MusicBot a maintenant un client vocal..." + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "Retentative de connexion après une erreur de délai (%(attempt)s) lors de la tentative de connexion à : %(channel)s" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "La tentative de connexion de MusicBot VoiceClient a été annulée. Aucune nouvelle tentative." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "La connexion MusicBot à la voix a été annulée. C'est bizarre. Peut-être redémarrez-vous?" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot n'a pas la permission de parler." + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "MusicBot n'a pas pu demander à parler." + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "Déconnexion d'un MusicPlayer dans la guilde : %s" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "Déconnexion de VoiceClient avant de tuer le MusicPlayer." + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "La déconnexion a échoué ou a été annulée." + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "MusicBot a un protocole vocal qui n'est pas un client vocal. Déconnexion quand même..." + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "Déconnexion d'un client vocal immature dans la guilde : %s" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "Déconnexion d'un client vocal non-guilde..." + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "La liste MusicBot.voice_clients contient un objet non-VoiceClient ?\n" +"L'objet est en fait de type : %s" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "Nous avons encore un ref MusicPlayer dans la guilde (%(guild_id)s) : %(player)r" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "Guilde (%(guild)s) veut un joueur, optionnel: %(player)r" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." +msgstr "[BUG] MusicPlayer ne dispose pas d'un VoiceClient. Vous devriez probablement redémarrer le bot." + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "MusicPlayer a un Client Voix qui n'est pas connecté." + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "Lecteur musical obj: %r" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "VoiceClient obj: %r" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "Obtenir un MusicPlayer pour la guilde : %(guild)s Dans la chaîne : %(channel)s Création : %(create)s Désérialisation : %(serial)s" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "Joueur créé par désérialisation pour la guilde %(guild_id)s avec des entrées %(number)s" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "Le bot n'est pas dans un salon vocal.\n" +"Utilisez la commande d'invocation pour amener le bot dans votre canal vocal." + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Quelque chose ne va pas, nous n'avons pas obtenu le VoiceClient." + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "En cours d'exécution sur_player_play" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "Définition de l'historique des URL %(guild_id)s == %(url)s" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "Aucune vignette définie pour l'entrée avec l'URL : %s" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "aucun canal dans lequel mettre le message en cours de lecture" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "a ignoré le message qui était déjà publié." + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "En cours d'exécution sur_player_resume" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "En cours de mise en pause" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "Exécution sur_player_stop" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "Lancement sur_player_finished_playing" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "La boucle événement est fermée, rien d'autre à faire ici." + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "Déconnexion en cours, ignorant cet événement." + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "VoiceClient dit qu'il n'est pas connecté, rien d'autre que nous pouvons faire ici." + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "Lecteur terminé et la file d'attente est vide, laissant le canal vocal..." + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "Bouclage de la file d'attente pour éliminer les chansons avec l'auteur manquant..." + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "Auteur `%(user)s` absent, entrée ignorée (supprimée) de la file d'attente : %(song)s" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "Aucune chanson jouable dans la liste de lecture automatique de la Guilde, désactivée." + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "Aucun contenu dans la liste de lecture automatique actuelle. Remplissage avec une nouvelle musique..." + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "Bouclage de la liste de lecture automatique du joueur..." + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "Erreur lors du traitement de la chanson \"%(url)s\" : %(raw_error)s" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "Erreur lors de l'extraction de la chanson \"%(url)s\" : %(raw_error)s" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr "MusicBot a besoin de mettre fin à l'extraction et au sauvetage de la liste de lecture automatique." + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "MusicBot a obtenu une exception non gérée dans l'événement fini du lecteur." + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "Étendre la liste de lecture automatique avec les entrées extraites de: %s" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "Erreur lors de l'ajout de la chanson de la liste de lecture automatique : %s" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "Données d'exception pour l'erreur ci-dessus :" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "Aucune musique jouable dans la liste de lecture automatique, désactivation." + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "En cours d'exécution sur_player_entry_added" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "Ignorer automatiquement l'entrée de la liste de lecture automatique pour l'entrée en file d'attente." + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "Exception MusicPlayer pour l'entrée : %r" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "Exception MusicPlayer." + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "Impossible de lire la piste de la liste de lecture automatique : %r" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "Déconnexion en cours, ignorant la mise à jour de l'événement." + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "Mettre à jour le statut du bot : %(status)s -- %(activity)r" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "Sérialisation de la file d'attente pour %s" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "Désérialisation de la file d'attente pour %s" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "Écriture de la chanson actuelle pour %s" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "Impossible d'envoyer l'objet sans réponse : %r" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Tentative d'envoi d'un objet de réponse invalide." + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "envoi d'intégrations à: %s" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "envoi de texte à: %s" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "Impossible d'envoyer le message à \"%s\", aucune permission" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "Impossible d'envoyer le message à \"%s\", canal invalide ou supprimé" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "Le message dépasse la limite de taille du message (%s)" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "Impossible d'envoyer un message privé, en envoyant un canal de secours à la place." + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "Noter un message d'envoi limité, nouvel essai dans %s secondes." + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "Message annulé à nouveau pour : %s" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "Noter un message d'envoi limité, mais ne peut pas recommencer!" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "Impossible d'envoyer le message dans le canal de repli." + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "Échec de l'envoi en raison d'une erreur HTTP." + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "Impossible de supprimer le message \"%s\", aucune permission" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "Impossible de supprimer le message \"%s\", message introuvable" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "Noter la suppression de messages limités, nouvel essai dans %s secondes." + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "Noter la suppression de messages limités, mais ne peut pas recommencer !" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "Échec de la suppression du message" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "Erreur HTTPException lors de la suppression du message : %s" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "Impossible de modifier le message \"%s\", message introuvable" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "Envoi du message à la place" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "Noter le message d'édition limité, nouvel essai dans %s secondes." + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "Modification du message annulée pour : %s" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "Impossible de modifier le message" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "Exception HTTPException essayant d'éditer le message %s à: %s" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "Suppression du message annulée (ID: %(id)s): %(content)s" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "Signal du système d'exploitation attrapé : %s" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "Déconnexion et fermeture de MusicBot..." + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "Exception lancée lors de la gestion du signal d'interruption !" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "MusicBot fait maintenant des étapes d'arrêt..." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Échec de la connexion à l'API Discord !\n\n" +"Problème :\n" +" MusicBot n'a pas pu se connecter à l'API Discord.\n" +" Votre jeton est peut-être incorrect ou il peut y avoir une panne d'API.\n\n" +"Solution :\n" +" Assurez-vous que le bon jeton est défini dans votre configuration.\n" +" Vérifiez l'état de l'API sur le site officiel : discordstatus.com" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "En attente de la fin du téléchargement..." + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "Va attendre la tâche : %(name)s (%(func)s)" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "Essaiera d'annuler la tâche : %(name)s (%(func)s)" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "En attente de tâches..." + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "Fermeture du connecteur HTTP." + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "Fermeture de la session aiohttp." + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "La déconnexion a été appelée." + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "Exception dans %(event)s:\n" +"%(error)s" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "Exception dans %s" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "MusicBot a repris une session avec discord." + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "Terminer le _prêt" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "Connecté, maintenant que MusicBot est prêt..." + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "ClientUser est en quelque sorte aucun, nous devons sauvegarder..." + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "Propriétaire : %(id)s/%(name)s#%(desc)s\n" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "Liste de guilde:" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr " - %s" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "A quitté %s en raison du propriétaire du bot introuvable" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "Ne pas procéder aux vérifications sur les serveurs %s en raison d'une indisponibilité" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "Le propriétaire n'a pas pu être trouvé sur une guilde (id : %s)\n" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "Propriétaire inconnu, le bot n'est sur aucune guilde." + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "Pour que le bot rejoigne une guilde, collez ce lien dans votre navigateur. \n" +"Note : Vous devez être connecté à votre compte principal et avoir \n" +"gérer les permissions du serveur sur la guilde que vous voulez que le bot rejoigne.\n" +" %s" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "Aucun n'a été pour le canal lié avec l'ID : %d" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "Impossible de se lier à un canal non Messageable avec l'ID : %d" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "Lié aux salons textuels :" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr " - %(guild)s/%(channel)s" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "Non lié à aucun salon textuel" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "Aucun n'a été trouvé pour le canal d'accès automatique avec l'ID : %d" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "Impossible de rejoindre automatiquement un canal Privé/Non-Guilde avec l'ID : %d" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "Impossible de joindre automatiquement au canal non connectable avec l'ID : %d" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr "Rejoindre automatiquement les salons vocaux:" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "Ne pas rejoindre automatiquement les salons vocaux" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "Options de configuration manquantes détectées !\n\n" +"Problème :\n" +" Il manque certaines options à votre fichier d'options de configuration.\n" +" Les paramètres par défaut seront utilisés pour ces options.\n" +" Voici une liste d'options que nous n'avons pas trouvées :\n" +" %(missing)s\n\n" +"Solution :\n" +" Copiez les nouvelles options à partir du fichier d'options d'exemple.\n" +" Ou utilisez la commande config pour les définir et les enregistrer.\n\n" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "L'événement on_ready a été déclenché %s fois" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "Récupération des informations de l'application." + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "S'assurer que les dossiers de données existent" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "Validation de la configuration" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "Validation de la configuration des permissions" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "Désactivé" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "Activé" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "Options :" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr " Préfixe de commande : %s" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr " Volume par défaut : %d%%" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr " Seuil de passage : %(num)d votes ou %(percent).0f%%" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr " Lecture en cours de @mentions: %s" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr " Invocation automatique : %s" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr " Liste de lecture automatique : %(status)s (ordre : %(order)s)" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "Aléatoire" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "séquentielle" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr " Pause automatique : %s" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr " Supprimer les messages : %s" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr " Suppression de l'appel: %s" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr " Supprimer la lecture en cours : %s" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr " Mode de débogage : %s" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr " Les chansons téléchargées seront %s" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr " Supprimer si inutilisé pour %d jours" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr " Supprimer si la taille dépasse %s" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr " Message de statut : %s" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr " Écrire les chansons actuelles dans le fichier : %s" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr " Auteur saut instantané : %s" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr " Embeds: %s" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr " Intégration Spotify : %s" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr " Passage hérité : %s" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr " Laisser les non-propriétaires: %s" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr " Laisser le VC inactif : %s" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr " Délai d'expiration : %s secondes" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr " Laisser à la fin de la chanson / file d'attente vide : %s" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr " Quitter quand le joueur est inactif : %s" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr " Délai d'attente : %d secondes" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr " Soi-même sourd : %s" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr " Préfixe de commande par serveur : %s" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr " Liste de recherche : %s" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr " Queue de Round Robin: %s" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "La chanson demandée `%(subject)s` est bloquée par la liste de blocage de chansons." + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "Tentative de gestion de l'inactivité du canal vocal, mais le bot n'est pas dans la voix..." + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "L'activité du canal est déjà en attente dans la guilde : %s" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Activité du canal en attente %(time)d secondes pour quitter le canal : %(channel)s" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "La minuterie d'activité du canal %s a expiré. Déconnexion." + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "La minuterie d'activité du canal a été annulée pour: %(channel)s dans %(guild)s" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "Inactivité du joueur ignorée dans le canal auto-rejoint : %s" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "La minuterie d'activité du joueur est déjà en attente dans la guilde : %s" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Délai d'activité du joueur en attente %(time)d secondes pour quitter le canal : %(channel)s" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "La minuterie d'activité du joueur pour %s a expiré. Déconnexion." + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "La minuterie d'activité du joueur a été annulée pour: %(channel)s dans %(guild)s" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "Le minuteur d'activité du joueur est en cours de réinitialisation." + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "Aucune commande de ce type" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "Vous devez mentionner un utilisateur ou fournir son numéro d'identité." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Sous-commande invalide. Utilisez `help blockuser` pour des exemples d'utilisation." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot n'a pas pu trouver les utilisateurs que vous avez spécifiés." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "Le propriétaire ne peut pas être ajouté à la liste de blocs." + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "Impossible d'ajouter un utilisateur à la liste de blocage, déjà bloqué : %(id)s/%(name)s" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "Ne pas supprimer l'utilisateur de la liste bloquée, non listé : %(id)s/%(name)s" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "Impossible d'ajouter les utilisateurs que vous avez listés, ils sont déjà ajoutés." + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Vous devez indiquer un sujet si aucune chanson n'est en cours de lecture." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Sous-commande invalide. Utilisez `help blocksong` pour des exemples d'utilisation." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "Sujet `%(subject)s` est déjà dans la liste de blocage de chansons." + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "Le sujet n'est pas dans la liste des chansons bloquées et ne peut pas être supprimé." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Sous-commande invalide. Utilisez `help autoplaylist` pour des exemples d'utilisation." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "Le lien de la chanson fournie n'est pas valide" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "La file d'attente est vide. Ajoutez des morceaux avec une commande de lecture!" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Cette chanson est déjà dans la liste de lecture automatique." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Cette chanson n'est pas encore dans la liste de lecture automatique." + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "Vous devez fournir un nom de fichier de playlist." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "Vous n'êtes pas autorisé à demander des playlists" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "La playlist a trop d'entrées (%(songs)s mais max est %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "Les entrées de la liste de lecture dépasseront votre limite de file d'attente.\n" +"Il y a %(songs)s dans la liste, et %(queued)s déjà dans la file d'attente.\n" +"La limite est %(max)s pour votre groupe." + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "Ignorer la pause automatique en raison d'une panne de réseau." + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "MusicPlayer n'a pas de client vocal ou n'a pas de données de canal, ne peut pas traiter la pause automatique." + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "Traitement de la pause automatique, ignorant cet événement." + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "%sClient vocal non connecté, en attente de %s secondes pour gérer la pause automatique dans la guilde : %s" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "L'attente de pause automatique a été annulée." + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "Un nouveau MusicPlayer est en cours de connexion, ignorant l'ancien événement de pause automatique." + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "Lecture dans un salon vocal vide, pause automatique pour la guilde : %s" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "Le joueur en pause automatique est en pause pour la guilde : %s" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "Impossible d'utiliser seek s'il n'y a rien à jouer." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "Impossible d'utiliser la recherche sur la piste en cours, elle a une durée inconnue." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "La recherche n'est pas prise en charge pour les flux." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "Impossible d'utiliser la recherche sans un temps pour positionner la lecture." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "Impossible de convertir `%(input)s` en une heure valide en secondes." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "Impossible de chercher à `%(input)s` (`%(seconds)s` secondes) dans la piste actuelle avec une longueur de `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Sous-commande invalide. Utilisez la commande `help repeat` pour des exemples d'utilisation." + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "Le joueur n'est pas en boucle." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Les positions de la chanson doivent être des entiers !" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "Vous avez donné une position en dehors de la taille de la playlist !" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "N'a pas pu demander la lecture de la playlist, aucun message à ajouter des réactions." + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "La lecture des médias locaux n'est pas activée." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "L'URL Spotify n'est pas valide ou n'est pas prise en charge actuellement." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Une URL Spotify a été détectée, mais Spotify n'est pas activé." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Vous avez atteint votre limite de chansons en attente (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "Le mode Karaoké est activé, veuillez réessayer quand il est désactivé!" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "Problème avec extract_info() : " + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Échec de l'extraction des informations en raison d'une erreur :\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Cette vidéo ne peut pas être lue. Essayez d'utiliser la commande stream." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "La recherche YouTube n'a retourné aucun résultat pour : %(url)s" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "Traité %(number)d de %(total)d chansons en %(time).3f secondes à %(time_per).2f s/chanson" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "Aucune chanson n'a été ajoutée, toutes les chansons ont été supérieures à la durée maximale (%(max)s secondes)" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "Extrait une entrée avec 'youtube:playlist' comme clé d'extracteur" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "La durée de la musique dépasse la limite (%(length)s > %(max)s)" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "Chanson(s) ajoutée à la position %s" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "Impossible d'estimer le temps avant de jouer pour la position : %d" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "Impossible d'obtenir les informations de la demande de flux: %s" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "La diffusion de listes de lecture n'est pas encore prise en charge." + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Vous avez atteint la limite d'élément de votre playlist (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Veuillez spécifier une requête de recherche. Utilisez `help search` pour plus d'informations." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "Vous ne pouvez pas rechercher plus de vidéos %(max)s" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "En attente d'un verrou d'invocation : %s" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "Verrouillage de convocation acquis pour: %s" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "Vous n'êtes pas connecté à la voix. Essayez de rejoindre un salon vocal !" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "Rejoindre %(guild)s/%(channel)s" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot ne peut pas suivre un utilisateur qui n'est pas membre du serveur." + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Le joueur ne joue pas." + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Rien dans la file d'attente à supprimer !" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "Rien n'a été trouvé dans la file d'attente de l'utilisateur `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "Vous n'avez pas le droit de supprimer cette entrée de la file d'attente.\n" +"Vous devez être celui qui l'a mis en file d'attente ou qui a des permissions de sauter instantanément." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Numéro d'entrée invalide. Utilisez la commande file d'attente pour trouver les positions de la file d'attente." + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Impossible de sauter ! Le joueur ne joue pas !" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "Vous n'avez pas la permission de forcer le saut d'une chanson en boucle." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "Vous n'avez pas la permission de forcer le saut." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "Vous n'avez pas la permission de sauter une chanson en boucle." + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` n'est pas un nombre valide" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Changement de volume déraisonnable fourni: %(old_volume)s%(adjustment)s est %(new_volume)s.\n" +"Le volume ne peut être défini que de 1 à 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Volume déraisonnable fourni: %(volume)s. Fournissez une valeur comprise entre 1 et 100." + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "Aucune piste n'est lue, impossible de définir la vitesse.\n" +"Utilisez la commande de configuration pour définir une vitesse de lecture par défaut." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "La vitesse ne peut pas être appliquée aux médias streamés." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Vous devez fournir une vitesse à définir." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "La vitesse que vous avez fournie n'est pas valide. Utilisez un nombre entre 0,5 et 100." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Option invalide pour la commande : `%(option)s`" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Échec de la sauvegarde des alias en raison d'une erreur :\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Vous devez fournir un alias et une commande à alias" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Vous devez fournir un nom d'alias à supprimer." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "L'alias `%(alias)s` n'existe pas." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "La configuration ne peut pas utiliser les mentions du canal et de l'utilisateur en même temps." + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Impossible de recharger la configuration en raison de l'erreur suivante :\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Impossible de résoudre le nom de la section à partir du nom de l'option. Veuillez fournir un nom de section et d'option valide." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "L'option donnée est ambiguë, veuillez fournir un nom de section." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Vous devez fournir un nom de section et un nom d'option pour cette commande." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "La section `%(section)s` n'est pas disponible.\n" +"Les sections disponibles sont : %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "L'option `%(option)s` n'est pas disponible." + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "L'option `%(option)s` n'est pas modifiable. Impossible d'enregistrer sur le disque." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Impossible d'enregistrer l'option : `%(option)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "L'option `%(option)s` n'est pas modifiable, la valeur ne peut pas être affichée." + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "L'option `%(option)s` n'est pas modifiable. Impossible de mettre à jour le paramètre." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Vous devez fournir une section, une option et une valeur pour cette sous-commande." + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "Faire avec %(config)s == %(value)s" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "L'option `%(option)s` n'a pas été mise à jour !" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "L'option `%(option)s` n'est pas modifiable. Impossible de réinitialiser à la valeur par défaut." + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "Réinitialisation de %(config)s à %(value)s par défaut" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "L'option `%(option)s` n'a pas été réinitialisée par défaut!" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "La commande d'option est obsolète, utilisez la commande config à la place." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Option non valide spécifiée, utilisez: info, mise à jour ou effacement" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Échec** pour supprimer la cache, vérifiez les logs pour plus d'infos..." + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "L'argument de la page de file d'attente doit être un nombre entier." + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "Il n'y a pas de chansons en attente ! Mettre en file d'attente quelque chose avec une commande de lecture." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "Le numéro de page demandé est hors limites.\n" +"Il y a **%(total)s** pages." + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "L'entrée de la playlist actuelle a été ignorée." + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "Pas assez d'entrées pour paginer la file d'attente." + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "Impossible de poster le message de file d'attente, aucun message à ajouter des réactions." + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Essayez à nouveau. MusicBot n'a pas pu faire ou obtenir une référence au message de file d'attente.\n" +"Si le problème persiste, remplissez un rapport de bogue." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Impossible d'utiliser la purge sur un canal DM privé." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "L'URL donnée n'est pas une URL valide." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Impossible d'extraire les infos de l'url d'entrée\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "Cela ne semble pas être une playlist." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "Identifiant d'utilisateur ou surnom de serveur invalide, veuillez vérifier l'ID et réessayer." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Impossible de déterminer l'utilisateur de la discord. Réessayez." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Les permissions ne peuvent pas utiliser les mentions de salon et d'utilisateurs en même temps." + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Impossible de recharger les autorisations en raison d'une erreur :\n" +"%(raw_error)s" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Vous devez fournir un nom de groupe ou d'option pour cette commande." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Vous devez fournir un groupe, une option et une valeur à définir pour cette commande." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "La sous-commande %(option)s nécessite un nom de groupe et de permission." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "Le groupe `%(group)s` n'est pas disponible.\n" +"Les groupes disponibles sont: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "La permission `%(option)s` n'est pas disponible." + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Impossible d'ajouter le groupe `%(group)s` il existe déjà." + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Impossible de supprimer le groupe intégré." + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "Le groupe propriétaire n'est pas modifiable." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Impossible d'enregistrer le groupe: `%(group)s`" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "Faire sur %(option)s avec la valeur : %(value)s" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Permission `%(option)s` n'a pas été mise à jour !" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Impossible de changer le nom d'utilisateur. Avez-vous changé de nom trop de fois ?\n" +"Rappelez-vous que les changements de nom sont limités à deux fois par heure.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Impossible de modifier le nom d'utilisateur en raison d'une erreur : \n" +"%(raw_error)s" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Impossible de changer le pseudo : pas de permission." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Impossible de définir le pseudo en raison d'une erreur : \n" +"%(raw_error)s" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Les émojis personnalisés doivent provenir de ce serveur pour être utilisés comme préfixes." + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Le préfixe par serveur n'est pas activé !\n" +"Utilisez la commande de configuration pour mettre à jour le préfixe à la place." + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "Vous devez fournir une URL ou joindre un fichier." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Impossible de changer d'avatar en raison d'une erreur : \n" +"%(raw_error)s" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "MusicBot a trouvé une %s sans guilde! Cela pourrait être un problème." + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Pas actuellement connecté au serveur `%(guild)s`" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Option non valide, utilisez une de : soft, full, upgrade, uppip ou upgit" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Vous devez fournir un ID ou un nom." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "Aucune guilde n'a été trouvée avec l'ID ou le nom `%(input)s`" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "Activation de l'ID du point d'arrêt de débogage : %(uuid)s" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Impossible d'importer `objgraph`, est-il installé ?" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "Le code de débogage a été exécuté avec eval()." + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "Le code de débogage a été exécuté avec exec()." + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "L'exécution du code de débogage a échoué." + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Impossible d'exécuter le code de débogage :\n" +"%(py_code)s\n" +"Exception : ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "La sous-commande doit être une des : %(options)s" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Impossible de localiser l'exécutable git." + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "Échec de la vérification des mises à jour via la commande git." + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "Méta manquante dans le rapport pip." + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "Impossible d'obtenir le statut de mise à jour de pip en raison d'une erreur." + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "Vous avez reçu une étrange entrée du client vocal." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookies déjà activés." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Les cookies doivent être téléchargés pour être activés. (Fichier de cookies)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Impossible d'activer les cookies en raison d'une erreur : %(raw_error)s" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Impossible de renommer le fichier des cookies en raison d'une erreur : %(raw_error)s\n" +"Cookies temporairement désactivés et seront réactivés au prochain redémarrage." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "Aucun téléchargement en pièce jointe n'a été trouvé, essayez à nouveau en téléchargeant un fichier de cookies." + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "Impossible de supprimer le fichier ancien, les cookies désactivés : %(raw_error)s" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Erreur lors du téléchargement du fichier des cookies depuis le discord: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Impossible d'enregistrer les cookies sur le disque : %(raw_error)s" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "A reçu un message sans canal, d'une manière ou d'une autre : %s" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "Commande ignorée de moi-même (%s)" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "Commande ignorée par un autre bot (%s)" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "Commande ignorée du canal de type : %s" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "Utilisateur dans la liste de blocage : %(id)s/%(name)s a essayé la commande : %(command)s" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "Message de %(id)s/%(name)s: %(message)s" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Cette commande n'est pas autorisée pour votre groupe de permissions : %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Cette commande nécessite d'être dans un canal vocal." + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "Utilisation de la commande invalide, valeurs manquantes pour les paramètres : %(params)r" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "Erreur dans %(command)s: %(err_name)s: %(err_text)s" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "Exception lors de la gestion de la commande : %(command)s" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "Impossible de générer de l'aide pour la commande manquante : %s" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "Il manque des données d'aide pour la commande : %s" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "Quitter le canal vocal %s en %s en raison de l'inactivité." + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "MusicBot est devenu connecté." + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "MusicBot est déconnecté." + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "A eu un événement de socket: %s" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "VoiceState mis à jour avant que le_ready ne soit terminé" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "%s ignoré dans %s car il s'agit d'un salon vocal lié." + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "%s a été détecté comme vide. Délai de manutention expiré." + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "Un utilisateur a rejoint %s, annulation du délai." + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "Le bot a été déplacé et le canal vocal %s est vide. Délai de manutention." + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "Le bot a été déplacé et le canal vocal %s n'est pas vide." + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "Plus utilisateur suivant %s" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "Utilisateur suivant `%(user)s` pour le salon : %(channel)s" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "VoiceState déconnexion before.channel est Aucune." + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "Déconnecté de la voix par l'API Discord dans: %(guild)s/%(channel)s (Code : %(code)s) [S:%(state)s]" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "Impossible d'utiliser le canal de connexion automatique avec le type : %(type)s dans la guilde : %(guild)s" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "Impossible de trouver le canal auto-joint, a-t-il été supprimé? Guilde: %s" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "Reconnexion à la guilde automatiquement rejoint sur le canal : %s" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "Impossible de rejoindre automatiquement le canal : %s" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "Le bot a été ajouté à la guilde : %s" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "A quitté la guilde '%s' en raison du propriétaire du bot introuvable." + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "Création du dossier de données pour la guilde %s" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "Le bot a été retiré de la guilde : %s" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "Liste de guilde mise à jour :" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "La guilde «%s» est devenue disponible." + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "Reprise du joueur dans «%s» en raison de la disponibilité." + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "La guilde «%s» est devenue indisponible." + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "Pauser le joueur dans «%s» en raison de l'indisponibilité." + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "Mise à jour de guilde pour : %s" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "L'attribut de guilde %(attr)s est maintenant : %(new)s -- Était: %(old)s" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "Mise à jour du canal pour: %(channel)s -- %(changes)s" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "Création de %s" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "Chargement de la configuration depuis : %s" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Erreur lors de la lecture de la configuration.\n\n" +"Problème :\n" +" Une ou plusieurs sections d'options de configuration requises sont manquantes.\n" +" Les sections manquantes sont :\n" +" %(sections)s\n\n" +"Solution :\n" +" Réparez votre fichier d'options de configuration.\n" +" Chaque [Section] ne doit apparaître qu'une seule fois, sans autre texte sur la même ligne.\n" +" Chaque section doit avoir au moins une option.\n" +" Utilisez les options d'exemple comme modèle ou copiez-les à partir du référentiel." + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "Impossible de stocker plus de fichiers journaux %s . L'option LogsMaxKept sera limitée à la place." + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "L'option de configuration LogsDateFormat est vide et cela cassera la rotation des fichiers journaux. Utiliser par défaut à la place." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Erreur lors de la validation des options de configuration.\n\n" +"Problème :\n" +" option de configuration AudioCachePath n'est pas un répertoire.\n\n" +"Solution :\n" +" Assurez-vous que le chemin que vous avez configuré est un chemin vers un dossier / répertoire." + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "Une exception a été levée lors de la validation de AudioCachePath." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Erreur lors de la validation des options de configuration.\n\n" +"Problčme :\n" +" L'option de configuration AudioCachePath n'a pas pu ętre définie ŕ cause d'une erreur :\n" +" %(raw_error)s\n\n" +"Solution :\n" +" Double vérifier que la configuration est valide, chemin d'accès au répertoire." + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "Le cache audio sera stocké dans : %s" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Erreur lors de la lecture des options de configuration.\n\n" +"Problème :\n" +" Aucun jeton de bot n'a été spécifié dans les options ou l'environnement de configuration.\n\n" +"Solution :\n" +" Définissez l'option de configuration du jeton ou définissez la variable d'environnement %(env_var)s avec un jeton d'application." + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "L'option de configuration StatusMessage est trop longue, elle sera limitée à 128 caractères." + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "La vitesse de lecture par défaut doit être comprise entre 0.5 et 100.0. La valeur d'option %.3f sera limitée à la place." + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "Fichier TXT de cookies détecté. MusicBot les transmettra à yt-dlp.\n" +"Les cookies ne sont pas recommandés, peuvent ne pas être pris en charge et peuvent complètement échouer.\n" +"La copie de cookies à partir de votre navigateur Web risque d'exposer des données personnelles et\n" +"dans le meilleur des cas, cela peut entraîner le bannissement de vos comptes !\n\n" +"Vous êtes prévenu ! Bonne chance ! \\U0001F596\n" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "Validation des options avec les données du service..." + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "ID de propriétaire acquis via l'API" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Erreur lors de la récupération automatique de « OwnerID ».\n\n" +"Problème :\n" +" Les informations de l'application Discord ne sont pas disponibles.\n" +" Il peut s'agir d'une panne temporaire de l'API ou d'un bug.\n\n" +"Solution :\n" +" Définissez manuellement l'option de configuration « OwnerID » ou réessayez plus tard." + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "MusicBot n'a pas d'instance d'utilisateur, impossible de continuer." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Erreur lors de la validation des options de configuration.\n\n" +"Problème:\n" +" La configuration 'OwnerID' est la même que votre Bot / App ID.\n\n" +"Solution :\n" +" N'utilisez pas le Bot ou l'ID de l'application dans le champ 'OwnerID'." + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "Fichier d'options de configuration introuvable. Vérification des alternatives..." + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "Renommer %(ini_file)s en %(option_file)s, vous devriez probablement activer les extensions de fichiers." + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "Copie du fichier d'options d'exemple existant : %(example_file)s" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "Générer un nouveau %(example_file)s et le copier vers %(option_file)s" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "Une erreur s'est produite lors de la recherche d'un fichier d'options de configuration." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Erreur lors de la localisation de la configuration.\n\n" +"Problème :\n" +" Impossible de trouver ou de créer un fichier de configuration en raison d'une erreur :\n" +" %(raw_error)s\n\n" +"Solution :\n" +" Vérifiez que le dossier de configuration et les fichiers existent et peuvent être lus par MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Erreur lors du chargement de la configuration.\n\n" +"Problčme :\n" +" MusicBot n'a pas pu lire le fichier de configuration en raison d'une erreur :\n" +" %(raw_error)s\n\n" +"Solution :\n" +" Assurez-vous que le fichier est accessible et sans erreur.\n" +" Copiez le fichier d'exemple du dépôt si tout le reste échoue." + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "L'option Dev Bug ! L'option de configuration a getter qui n'est pas disponible." + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "Bug Dev ! L'option de configuration a un type non valide, getter et default doit être le même type." + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "L'option était manquante précédemment." + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "La section de configuration n'est pas dans la configuration analysée ! Manquant : %s" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "Option de configuration enregistrée : %(config)s = %(value)s" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "Impossible d'enregistrer la configuration : %s" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "Les noms d'options ne sont pas uniques entre les sections INI ! Le résolveur est désactivé." + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "Impossible d'enregistrer le fichier INI par défaut à: %s" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" +"Problème :\n" +" L'ID du propriétaire dans [%(section)s] > %(option)s n'est pas valide.\n\n" +"Solution :\n" +" Définissez %(option)s sur un ID numérique ou mettez-le à `auto` ou `0` pour relier automatiquement le propriétaire." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" +"Problème :\n" +" L'option de configuration [%(section)s] > %(option)s n'est pas un emplacement de fichier valide.\n\n" +"Solution :\n" +" Vérifiez le paramétrage du chemin et assurez-vous que le fichier existe et est accessible à MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" +"Problème :\n" +" Un des identifiants dans l'option [%(section)s] > %(option)s est invalide.\n\n" +"Solution :\n" +" S'assurer que tous les identifiants sont numériques, et séparés uniquement par des espaces ou des virgules." + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "L'option «%(value)s» du DebugLevel n'est pas valide, elle revient au niveau: %(fallback)s" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "L'option [%(section)s] > %(option)s a une valeur de configuration invalide '%(value)s' en utilisant la valeur par défaut." + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "L'option [%(section)s] > %(option)s a une valeur supérieure à 100 %% (%(value)s) et sera définie à %(fallback)s à la place." + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "Renommer l'entrée du fichier INI [%(old_s)s] > %(old_o)s en [%(new_s)s] > %(new_o)s" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "Mise à jour du fichier de configuration avec les options renommées..." + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "Échec de la mise à jour de la configuration. Vous devrez la mettre à jour manuellement." + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "Fichier de liste de blocage non trouvé : %s" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "Impossible de charger la liste de blocage du fichier : %s" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "Impossible de mettre à jour le fichier de la liste de blocage : %s" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr "Liste de blocage des utilisateurs chargée avec les entrées %s." + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "Nous avons trouvé un fichier de liste noire hérité, il sera renommé en : %s" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr "Une liste de blocs de chansons avec des entrées %s a été chargée." + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "Impossible de charger les données de la guilde avec l'ID 0. C'est probablement un bug dans le code!" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "Aucun fichier pour la guilde %(id)s/%(name)s" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "Chargement des données de guilde pour la guilde avec ID: %(id)s/%(name)s" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "Une erreur du système d'exploitation a empêché la lecture du fichier de données de guilde : %s" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "La guilde %(id)s/%(name)s a un préfixe de commande personnalisé : %(prefix)s" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "Impossible d'enregistrer des données pour la guilde avec l'ID 0. C'est probablement un bug dans le code!" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "Impossible d'enregistrer les données spécifiques à la guilde en raison d'une erreur d'exploitation." + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "Impossible de sérialiser les données spécifiques à la guilde en raison de données non valides." + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "Forcer YTDLP à utiliser l'agent utilisateur : %s" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "MusicBot utilisera des cookies pour yt-dlp depuis: %s" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "Yt-dlp utilisera votre serveur proxy configuré." + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "Le plug-in OAuth2 d'origine est installé et sera utilisé à la place.\n" +"Cela peut empêcher MusicBot de se fermer complètement ou de se bloquer en attendant l'autorisation !\n" +"Pour fermer MusicBot, vous devez tuer manuellement le processus MusicBot !\n" +"Yt-dlp est configuré pour afficher des avertissements et d'autres messages de journal, pour afficher le code d'authentification.\n" +"Désinstallez le package yt-dlp-youtube-oauth2 pour utiliser les fonctionnalités OAuth2 intégrées à la place." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD ne semble pas avoir d'en-têtes..." + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "La vérification des en-têtes des médias a échoué en raison du délai d'expiration." + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "Échec de la requête HEAD pour : %s" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "Exception de requête HEAD : " + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "Infos d'extraction YTDL Sanitized (pas JSON) :\n" +"%s" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "Infos d'extraction YTDL Sanitized (pas JSON) : %s" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "L'extraction des informations de la chanson n'a renvoyé aucune donnée." + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "Extraction appelée avec : '%(subject)s', %(args)s, %(kws)s" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "Impossible d'exécuter l'extraction, la boucle est fermée. (C'est normal lors des arrêts.)" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Impossible de poursuivre l'extraction, la boucle d'événement est fermée." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "L'URL Spotify n'est pas valide ou n'est pas prise en charge." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Erreur dans yt-dlp lors du téléchargement des données : %(raw_error)s" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "Erreur de téléchargement avec l'URL du flux" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "En supposant que le contenu est un flux direct" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Impossible de diffuser une URL non valide." + +#: musicbot/downloader.py:517 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "NoSupportingHandlers attrapés, en essayant à nouveau après avoir remplacé deux points par de l'espace." + +#: musicbot/downloader.py:544 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "L'extracteur youtube:search a retourné le résultat d'une seule entrée, remplaçant les informations de base par les informations d'entrée." + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "Appelé safe_extract_info avec : %(args)s, %(kws)s" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "Le fichier média local est introuvable." + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "__input_subject manquant de YtdlpResponseDict" + +#: musicbot/downloader.py:623 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "Les entrées ne sont pas une liste dans YtdlpResponseDict, set process=True pour éviter cela." + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "Attention, erreur de durée pour : %(url)s" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "module 'pymediainfo' non trouvé, va revenir à ffprobe." + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "Futur créé pour %r" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "Termes terminés pour %(entry)r avec %(callback)r" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "Exception non gérée dans _for_each_future callback." + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "Démarrage du sous-processus asyncio (%(process)s) avec la commande : %(run)s" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "L'extraction n'a pas fourni de durée pour cette entrée.\n" +"MusicBot ne peut pas estimer les temps d'attente tant qu'il n'est pas téléchargé.\n" +"Entrée : %s" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "Le numéro de version de l'entrée est manquant, impossible de désérialiser." + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "Les données de saisie ont le mauvais numéro de version, impossible de désérialiser." + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "L'URLPlaylistEntry désérialisé ne peut pas trouver de canal avec l'ID : %s" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "L'URLPlaylistEntry désérialisé a le mauvais type de canal : %s" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "L'URLPlaylistEntry désérialisé ne peut pas trouver l'auteur avec l'ID : %s" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "L'URLPlaylistEntry désérialisé a un ID d'auteur mais aucun canal de recherche !" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "Impossible de charger %s" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Impossible de télécharger les liens Spotify, erreur de traitement avec le type : %(type)s" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "Préparation de l'entrée : %r" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "Téléchargement mis en cache avec une extension différente..." + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "La taille locale est différente de la taille de la télécommande. Re-téléchargement..." + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "Téléchargement déjà mis en cache à: %s" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "MusicBot n'a pas pu obtenir les données de durée pour cette entrée.\n" +"L'estimation du temps d'attente peut être indisponible jusqu'à ce que cette piste soit effacée.\n" +"Fichier d'entrée: %s" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "Durée de %(time)s secondes pour le fichier : %(file)s" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." +msgstr "Il y a un problème avec le fonctionnement de l'EQ, probablement causé par une installation étrange de FFmpeg. Cela n'a pas affecté la capacité du bot à travailler, mais cela signifie que vos pistes ne seront pas égalées." + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "Exception lors de la vérification des données d'entrée." + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "Essai d'obtenir la durée via pymediainfo pour: %s" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "Impossible d'obtenir la durée via pymediainfo." + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "Essai d'obtenir la durée via ffprobe pour: %s" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "Impossible de localiser ffprobe dans votre chemin !" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "ffprobe a renvoyé quelque chose qui n'a pas pu être utilisé." + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "ffprobe n'a pas pu être exécuté pour une raison quelconque." + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "Calcul du volume moyen de : %s" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "Impossible de localiser ffmpeg sur votre chemin !" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr "Impossible d'analyser 'I' dans normaliser json." + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr "Impossible d'analyser 'LRA' en normalise json." + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr "Impossible d'analyser 'TP' dans normaliser json." + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr "Impossible d'analyser 'thresh' dans normalise json." + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr "Impossible d'analyser 'offset' dans normalise json." + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "Téléchargement démarré: %r" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "Tentative de téléchargement %s de 3..." + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "Téléchargement incomplet, nouvel essai dans %(time).1f secondes. Raison : %(raw_error)s" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "Le téléchargement a échoué, ne pas réessayer ! Raison : %(raw_error)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Le téléchargement n'a pas été terminé en raison d'une erreur : %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Le téléchargement a échoué à cause d'une erreur yt-dlp : %(raw_error)s" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "L'extraction a rencontré une exception non gérée." + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Le téléchargement a échoué en raison d'une exception non gérée : %(raw_error)s" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "Échec du téléchargement : %r" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Impossible d'extraire les données pour les médias demandés." + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "Téléchargement terminé : %r" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "StreamPlaylistEntry désérialisé ne peut pas trouver de canal avec l'ID : %s" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "StreamPlaylistEntry désérialisé a le mauvais type de canal : %s" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "StreamPlaylistEntry désérialisé ne peut pas trouver l'auteur avec l'ID : %s" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "StreamPlaylistEntry désérialisé a un ID d'auteur mais aucun canal à rechercher !" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "Le canal LocalFilePlaylistEntry désérialisé ne peut pas être trouvé avec l'ID : %s" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "LocalFilePlaylistEntry désérialisé a le mauvais type de canal : %s" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "LocalFilePlaylistEntry désérialisé ne peut pas trouver l'auteur avec l'ID : %s" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "LocalFilePlaylistEntry désérialisé a un ID de l'auteur mais aucun canal de recherche !" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "Durée de %(seconds)s secondes pour le fichier : %(file)s" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "Impossible de supprimer le fichier de cache : %s" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "Le répertoire de cache audio a été supprimé." + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "Le répertoire de cache audio n'a pas pu être supprimé ou renommé." + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "Le répertoire de cache audio n'a pas pu être supprimé." + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "Le cache audio n'a pas de limites définies, rien à supprimer." + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "Le cache audio a supprimé le(s) fichier(s) %(number)s (s), total de %(size)s supprimé(s)." + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "L'audio mis en cache a retenu le(s) fichier(s) %(number)s de la liste de lecture automatique, total de %(size)s retenu." + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "Le cache audio est maintenant %(size)s sur %(number)s fichier(s)." + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "Le répertoire de cache audio est manquant, rien à supprimer." + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "Le fichier de cache audio provient de la liste de lecture automatique, mais marqué comme busé, l'ignorant." + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "Le niveau de cache nécessite un nettoyage. %s" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr "La liste de lecture automatique n'a pas de carte de cache." + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr "Carte de cache de la liste de lecture automatique chargée avec les entrées %s." + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr "Impossible de charger le cache de la liste de lecture automatique." + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr "La carte du cache de la liste de lecture automatique avec les entrées %s a été enregistrée." + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr "Impossible d'enregistrer la carte du cache de la liste de lecture automatique." + +#: musicbot/filecache.py:355 +#, python-format +msgid "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "Conflit de la carte de la liste de lecture automatique sur Clef : %(file)s Ancien: %(old)s Nouveau: %(new)s" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "Erreur Argument de Langue : %s" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "Impossible de charger les traductions du journal pour n'importe quelle de: [%s] dans: %s" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "Impossible de charger les traductions de discord pour n'importe quelle de: [%s] dans: %s" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "Chargement du fichier JSON : %s" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "Erreur lors de l'analyse de %s en JSON" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "Impossible de récupérer les données de la clé JSON : %s" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "Ignorer la configuration du logger, déjà configuré" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "Le niveau du journal a été précédemment défini en remplaçant à: %s" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "Changement du niveau du journal à : %s" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr "Les enregistreurs MusicBot ont été appelés à s'arrêter." + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "Fichier de permissions introuvable, copie de: %s" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "Erreur lors de la copie du fichier d'exemple des permissions : %s" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr "La configuration 'OwnerID' est réglée automatiquement, elle sera correctement configurée plus tard." + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "Validation des permissions..." + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr "Réglage auto 'OwnerID' pour le groupe de permissions propriétaires." + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "Mise à jour du groupe dans le fichier des permissions : %s" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "Suppression du groupe du fichier des permissions : %s" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "Ajout d'un nouveau groupe au fichier des permissions : %s" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "Enregistrement du fichier des permissions maintenant." + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "ConfigUpdater n'a pas pu analyser le fichier des permissions !" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "Vous avez une section en double, corrigez votre fichier de permissions!" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "Impossible d'enregistrer le groupe de permissions : %s" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "Bug Dev ! Permission a un getter qui n'est pas disponible." + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "Bug Dev ! La permission a un type non valide, getter et default doit être le même type." + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "Le maximum d'éléments de recherche ne peut pas être supérieur à 100. Réglage à 100." + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "Vous n'avez pas la permission de lire le média demandé.\n" +"L'extracteur yt-dlp `%(extractor)s` n'est pas autorisé dans votre groupe." + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "Nettoyage appelé à la source audio : %r" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "MusicPlayer.skip() est appelée : %s" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "MusicPlayer.stop() est appelée : %s" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "Guilde ou réseau indisponible, impossible de reprendre la lecture." + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "MusicPlayer.resume() est appelée : %s" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "MusicPlayer.pause() est appelée : %s" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "MusicPlayer.kill() est appelé : %s" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "Lecture terminée, mais _current_entry est Aucune." + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "Avertissement possible de kill_current_player()" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "MusicPlayer.play() est appelée : %s" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "MusicPlayer est mort, impossible de jouer." + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "Guilde ou réseau indisponible, impossible de démarrer la lecture." + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "MusicPlayer a été mis en pause précédemment, reprenant le lecteur actuel." + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "MusicPlayer est déjà verrouillé pour la lecture, cet appel est ignoré." + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "Impossible d'obtenir l'entrée suivante." + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "Impossible de traiter l'entrée pour la lecture." + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "Création d'un joueur avec des options : ffmpeg %(before)s -i %(input)s %(after)s" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "Jouer à %(source)r en utilisant %(client)r" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "Suppression de '%s', chanson trouvée dans la file d'attente" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "Suppression du fichier : %s" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "Fichier supprimé : %s" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "Impossible de supprimer le fichier, il est actuellement utilisé." + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr "Impossible de supprimer le fichier en raison d'une erreur d'autorisation." + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "Impossible de supprimer le fichier, il est introuvable." + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "Erreur lors de la tentative de suppression du fichier." + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "Impossible de supprimer le fichier, d'abandonner et de déplacer le" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "Désérialiser a renvoyé un objet qui n'est pas un MusicPlayer : %s" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "Impossible de désérialiser le joueur" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "Données de ffmpeg : %s" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "Erreur de ffmpeg : %s" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "Avertissement de ffmpeg : %s" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "Erreur inconnue lors du décodage du message de ffmpeg" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "Données décodées de ffmpeg : %s" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "Ajout de l'entrée de flux pour l'URL : %(url)s" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Impossible d'extraire les informations" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "Ceci est une liste de lecture." + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "Les informations d'entrée semblent être un flux, ajoutant une entrée de flux..." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Type de contenu invalide `%(type)s` pour l'URL : %(url)s" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "Texte reçu/html pour le type de contenu, il peut s'agir d'un flux." + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "Type de contenu questionnable «%(type)s» pour url: %(url)s" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "Ajout d'URLPlaylistEntry pour: %(subject)s" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "Ajout de LocalFilePlaylistEntry pour : %(subject)s" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "Vidéo ignorée à partir du lien de la playlist composée avec ID: %s" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "Ne permet pas l'entrée qui se trouve dans la liste de blocs de chansons : URL %(title)s : %(url)s" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "Ignorer la chanson dans les entrées par '%s', durée plus longue que la durée maximale autorisée." + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "Ne pas ajouter de vidéo YouTube car elle est marquée comme privée ou supprimée : %s" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "Impossible d'ajouter l'élément" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "Objet : %s" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "A ignoré les entrées incorrectes %s" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "Réorganiser la boucle sur les entrées." + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "Pré-téléchargement de la piste suivante : %r" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "aucune donnée de durée" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "aucune donnée de durée dans l'entrée actuelle" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Les track_data non valides, doivent être de type `track` obtenu `%(type)s`" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "Entrée non-trackée ignorée dans la playlist avec le type : %s" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "Total de l'album Spotify : %(total)s URL suivante : %(url)s" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "Récupération de l'URL suivante de l'album Spotify : %s" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "L'objet Album Spotify peut ne pas être complet, les pistes %(total)s attendues mais %(number)s obtenu" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "Spotify Album a plus de pistes que le total initial." + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "Total de la playlist Spotify : %(total)s URL suivante : %(url)s" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "Récupération de la liste de lecture Spotify URL suivante : %s" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "L'objet Spotify Playlist peut ne pas être complet, les pistes %(total)s attendues mais %(number)s" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "Spotify Playlist a plus de pistes que le total initial." + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "Spotify Playlist contenait %s pistes utilisables." + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Le statut de la réponse n'est pas correct : [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "La réponse JSON n'a pas décodé un dictionnaire !" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "Impossible de faire la requête GET à l'url: %s" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Impossible de rendre GET à l'URL : %(url)s Raison : %(raw_error)s" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "Impossible de faire la requête POST à l'url: %s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Impossible de faire POST à l'URL : %(url)s Raison : %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Impossible d'obtenir un jeton d'invité de Spotify, veuillez essayer de spécifier l'ID client et le secret du client" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "Créé un nouveau jeton d'accès en mode invité." + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "La réponse de l'API ne contient pas les données attendues. Clé manquante: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "La réponse de l'API contenait des données inattendues.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Demandé un jeton de Spotify, n'a pas fini par en obtenir un" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "Créé un nouveau jeton d'accès au mode client." + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "Le statut de réponse de l'API n'est pas correct : [%(status)s] %(reason)s" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "Impossible d'obtenir le jeton d'invité Spotify." + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "Impossible d'obtenir le jeton d'invité en raison de: %(raw_error)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Seul le propriétaire peut utiliser cette commande." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Seuls les utilisateurs de dev peuvent utiliser cette commande." + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr "Impossible de compter les membres quand voice_channel est None." + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "Échec de la sauvegarde des données du jeton oauth2 en raison de: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr "Chargement des données du jeton OAuth2 de YouTube TV." + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "Impossible de charger les données du jeton ytdlp oauth2 en raison de: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "Stockage des données de jeton OAuth2 de YouTube TV" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr "Données de jeton OAuth2 non valides." + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "Jeton d'accès expiré, actualisation" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "Des cookies YouTube ont été fournis, mais OAuth2 est utilisé. Si vous rencontrez des problèmes, arrêtez de fournir des cookies YouTube à yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "Rafraîchissement du jeton oauth2 YouTube TV..." + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "Échec de l'actualisation du jeton d'accès OAuth2 à cause de : %s\n" +"Redémarrage du flux d'autorisation..." + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "Démarrage du flux oauth2..." + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "\n" +"AVIS :\n" +"Pour donner l'accès à yt-dlp à votre compte, visite :\n" +" %s\n" +"Entrez ensuite ce code d'autorisation : %s\n" +"Vous avez %s secondes pour terminer l'autorisation.\n" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "L'application peut être suspendue jusqu'à la fin du délai d'autorisation si elle est fermée à ce stade. C'est normal." + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr "Expiration du délai d'attente du jeton OAuth2." + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "Le code de l'appareil a expiré, redémarrage du flux d'autorisation pour yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "L'autorisation OAuth2 de Yt-dlp a réussi." + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "Ajout du plugin OAuth2 à Yt-dlp IE: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "Client Yt-dlp par défaut : %s" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "Impossible de trouver l'exécutable git." + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "Tentative de mise à jour avec `git pull` sur le chemin courant." + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "Résultat du tirage git : %s" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "La mise à jour a échoué, vous devez exécuter `git pull` manuellement." + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "Impossible d'exécuter le pip." + +#: run.py:180 +msgid "Error using -m method" +msgstr "Erreur en utilisant la méthode -m" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "Le PIP a échoué lors de l'appel du sous-processus." + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr "Le PIP a échoué en raison d'une erreur de permission." + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "Le PIP a échoué en raison de l'exécutable Python manquant ? (%s)" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "Le PIP a échoué en raison d'une erreur d'OS." + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "Impossible de décoder le rapport de mise à jour de pip JSON." + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "Impossible de localiser ou d'exécuter python -m pip" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "Tentative de mise à jour avec `%s` sur le chemin courant..." + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "Résultat de l'amélioration de pip :\n" +"%s" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "Résultat du code de sortie de la mise à jour de pip : %s" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "La mise à jour n'a pas réussi à s'exécuter ou nous n'avons pas pu comprendre la sortie" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "Vous devrez peut-être exécuter `%smanuellement." + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "Appuyez sur Entrée pour continuer . . . ." + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "Démarrage des contrôles de santé" + +#: run.py:361 +msgid "Required checks passed." +msgstr "Les contrôles requis ont été effectués." + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "Vérification des mises à jour ignorée." + +#: run.py:376 +msgid "Optional checks passed." +msgstr "Vérifications optionnelles réussies." + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "Vérification de Python 3.8+" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "Python 3.8+ est requis. Cette version est %s" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "Tentative de localisation de Python 3.8..." + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "Impossible de localiser py.exe" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "Impossible d'exécuter `py.exe -3.8` " + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "Python 3 trouvé. Lancement du bot..." + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "Essai de \"python3.8\"" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "Impossible de localiser python3.8 sur le chemin." + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "\n" +"Python 3.8 trouvé. Relancement du bot en utilisant : %s run.py\n" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "Impossible de trouver Python 3.8 ou supérieur. Veuillez exécuter le bot en utilisant Python 3.8" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "Veiller à ce que nous soyons dans le bon environnement" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "Échec de la vérification de l'environnement, %s" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "Le répertoire de travail actuel ne semble pas être accessible en écriture" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "Veuillez déplacer le bot dans un dossier accessible en écriture" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "FFmpeg détecté est installé à: %s" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "Ajout du PATH d'environnement de bins/dossier local pour ffmpeg groupé..." + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "MusicBot n'a pas pu localiser le binaire FFmpeg dans votre environnement.\n" +"Veuillez installer FFmpeg pour qu'il soit disponible dans votre variable PATH d'environnement." + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "Sous Windows, vous pouvez ajouter une EXE pré-compilée au dossier `bin` de MusicBot,\n" +"ou vous pouvez installer FFmpeg sur tout le système en utilisant WinGet ou en exécutant l'installation. dans le fichier." + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "Sur MacOS, vous pourriez être en mesure d'installer FFmpeg via homebrew.\n" +"Sinon, vérifiez le site officiel FFmpeg pour les étapes de compilation ou d'installation." + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "Sous Linux, de nombreuses distributions rendent FFmpeg disponible via les gestionnaires de paquets du système.\n" +"Vérifiez la présence de ffmpeg avec votre gestionnaire de paquets système ou construisez à partir des sources." + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "Il reste moins de %sMB d'espace libre sur cet appareil" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "\n" +"Vérification des mises à jour de MusicBot ou des dépendances..." + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "Aucune mise à jour de MusicBot disponible via la commande `git`." + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "Impossible de vérifier les mises à jour en utilisant les commandes `git`. Vous devriez vérifier manuellement." + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "Les paquets suivants peuvent être mis à jour :\n" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr " %s à la version : %s\n" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "Aucune mise à jour des dépendances disponible via la commande `pip`." + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "Impossible de vérifier les mises à jour en utilisant les commandes `pip`. Vous devriez vérifier manuellement." + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "Vous pouvez lancer une mise à jour guidée en utilisant la commande :\n" +" %s ./update.py" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "La valeur est supérieure à la limite maximale." + +#: run.py:638 +msgid "Value must not be negative." +msgstr "La valeur ne doit pas être négative." + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "La valeur pour Max Logs Kept doit être un nombre de 0 à %s" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "Le niveau de log '%s' n'est pas disponible." + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "Le niveau de log doit être le : %s" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "Lancez un bot discord construit en utilisant discord.py, youtubeDL, et ffmpeg." + +#: run.py:669 +msgid "Available via Github:" +msgstr "Disponible via Github:" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "Pour plus d'aide et de support avec ce bot, rejoignez notre discord:" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "Ce logiciel est fourni sous la licence MIT." + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "Voir le fichier texte `LICENSE` pour plus de détails." + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "Remplacer la langue par défaut / système détectée pour tous les textes de MusicBot." + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "Utilisez cette langue pour tous les messages de log côté serveur de MusicBot." + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "Utilisez cette langue pour tous les messages envoyés à la discorde de MusicBot.\n" +"Cela n'empêche pas la sélection de langue par guilde." + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "Imprimez les informations de version de MusicBot et quittez." + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "Ignorer toutes les vérifications optionnelles de démarrage, y compris la vérification de mise à jour." + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "Ignorer seulement l'espace disque au démarrage." + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "Ignorer uniquement la vérification des mises à jour au démarrage." + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "Désactivez MusicBot d'essayer d'installer des dépendances quand il ne peut pas les importer." + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "Spécifiez le nombre de fichiers journaux à conserver, compris entre 0 et %s inclusivement. (par défaut : %s)" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "Remplacer les paramètres de niveau de journal définis dans la configuration. Doit être l'un des : %s" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "Remplacer le format de date par défaut utilisé lors de la rotation des fichiers journaux. Cela doit contenir des valeurs compatibles avec strftime(). (par défaut: '%s')" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "Version : %s" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "Ouvert une nouvelle instance de MusicBot. Ce terminal peut être fermé en toute sécurité!" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "Chargement de la version de MusicBot : %s" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "Journal ouvert : %s" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "Python version: %s" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "Changement du répertoire de travail en : %s" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "Impossible de démarrer le bot ! Vous avez démarré `run.py` dans le mauvais répertoire et nous n'avons pas pu localiser `musicbot` et `. it` dossiers pour vérifier un nouvel emplacement de répertoire." + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "Pour de meilleurs résultats, lancez `run.py` depuis le même dossier dans lequel vous avez cloné MusicBot.\n" +"Si vous n'avez pas utilisé git pour cloner le dépôt, il vous est fortement recommandé de le faire." + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "L'erreur de certificat n'est pas une erreur de vérification, n'essayant pas de certifi et quittant." + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "Voici l'erreur exacte, elle pourrait être un bug." + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "Pour ajouter facilement un certificat au magasin de confiance Windows, \n" +"vous pouvez ouvrir le site défaillant dans Microsoft Edge ou IE...\n" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "Impossible d'obtenir le certificat d'émetteur à partir du magasin de confiance par défaut, en essayant de certifi à la place." + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "Erreur de syntaxe (modification détectée, avez-vous modifié le code?)" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "Erreur de syntaxe (c'est un bug, pas votre faute)" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "Impossible de démarrer MusicBot à cause d'une erreur !\n\n" +"Problème:\n" +" Une erreur s'est produite lors de l'importation de MusicBot ou d'un paquet de dépendances.\n\n" +"Solution :\n" +" Vous devez installer manuellement des paquets pip pour MusicBot\n" +" ou lancer sans `--no-install-deps` et MusicBot essayera de les installer pour vous." + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "Tentative d'installation automatique des paquets de dépendances MusicBot...\n" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "Les dépendances MusicBot peuvent ne pas être installées !\n\n" +"Problème:\n" +" Le processus d'installation de pip s'est terminé par une erreur possible.\n" +" Une partie ou la totalité des dépendances peuvent être manquantes.\n\n" +"Solution :\n" +" Vous devez installer manuellement des paquets de dépendances.\n" +" Ouvrez une invite CMD / terminal dans le répertoire MusicBot.\n" +" Vous pouvez essayer d'utiliser les paquets d'installation de scripts de mise à jour.\n" +" Ou essayez la commande manuelle\n" +" %(py_bin)s -m pip install -U -r . requirements.txt\n\n" +"Vous pouvez également demander de l'aide dans le discord-support de MusicBot:\n" +" https://discord.gg/bots." + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "OK, laissons espérer que l'installation des dépendances a fonctionné !" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "MusicBot a obtenu une erreur d'importation après avoir essayé d'installer des paquets. MusicBot doit quitter..." + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "L'exception qui a causé l'erreur ci-dessus : " + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "MusicBot fait un redémarrage doux..." + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "MusicBot effectue un redémarrage complet du processus..." + +#: run.py:1169 +msgid "Error starting bot" +msgstr "Erreur lors du démarrage du bot" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "Fermeture de la boucle d'événements." + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "Redémarrage dans %s secondes..." + +#: run.py:1183 +msgid "All done." +msgstr "Terminé." + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "OK, nous sommes en train de fermer!" + diff --git a/i18n/fr_FR/LC_MESSAGES/musicbot_messages.mo b/i18n/fr_FR/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..970484e8a02420d481aeb064eee7d8013258bcf8 GIT binary patch literal 115469 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 1);\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: fr\n" +"X-Crowdin-File: /fae/i18n/musicbot_messages.pot\n" +"X-Crowdin-File-ID: 28\n" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "Erreur lors du chargement des alias.\n\n" +"Problème :\n" +" Vos fichiers d'alias (aliases.json & example_aliases.json) sont manquants.\n\n" +"Solution :\n" +" Remplacez le(s) fichier(s) de configuration d'alias ou copiez-les:\n" +" https://github.com/Just-Some-Bots/MusicBot/" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "Le membre n'est pas activé par la voix et ne peut pas utiliser cette commande." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "Vous ne pouvez pas utiliser cette commande quand vous n'êtes pas dans le salon vocal." + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBot n'a pas la permission de se connecter dans le salon : `%(name)s`" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBot n'a pas la permission de parler dans le salon : `%(name)s`" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot n'a pas pu se connecter au canal.\n" +"Réessayez plus tard ou redémarrez le bot si cela continue." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "La connexion MusicBot à la voix a été annulée. C'est bizarre. Peut-être redémarrez-vous?" + +#: musicbot/bot.py:840 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot n'a pas la permission de parler." + +#: musicbot/bot.py:844 +msgid "MusicBot could not request to speak." +msgstr "MusicBot n'a pas pu demander à parler." + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "Le bot n'est pas dans un salon vocal.\n" +"Utilisez la commande d'invocation pour amener le bot dans votre canal vocal." + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Quelque chose ne va pas, nous n'avons pas obtenu le VoiceClient." + +#: musicbot/bot.py:1084 +#, python-format +msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" +msgstr "Sauter la chanson suivante `%(title)s` en tant que demandeur `%(user)s` n'est pas dans la voix!" + +#: musicbot/bot.py:1102 +#, python-format +msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" +msgstr "%(mention)s - votre chanson `%(title)s` est actuellement diffusée sur %(channel)s !" + +#: musicbot/bot.py:1111 +#, python-format +msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" +msgstr "En cours de lecture en %(channel)s: `%(title)s` ajouté par %(author)s!" + +#: musicbot/bot.py:1122 +#, python-format +msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" +msgstr "Lecture automatique de l'entrée `%(title)s` en %(channel)s!" + +#: musicbot/bot.py:1333 +#, python-format +msgid "Skipping songs added by %(user)s as they are not in voice!" +msgstr "Ignorer les chansons ajoutées par %(user)s car elles ne sont pas dans la voix!" + +#: musicbot/bot.py:1555 +#, python-format +msgid "Playback failed for song `%(song)s` due to an error:\n" +"```\n" +"%(error)s```" +msgstr "La lecture de la chanson `%(song)s` a échoué en raison d'une erreur :\n" +"```\n" +"%(error)s```" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Tentative d'envoi d'un objet de réponse invalide." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Échec de la connexion à l'API Discord !\n\n" +"Problème :\n" +" MusicBot n'a pas pu se connecter à l'API Discord.\n" +" Votre jeton est peut-être incorrect ou il peut y avoir une panne d'API.\n\n" +"Solution :\n" +" Assurez-vous que le bon jeton est défini dans votre configuration.\n" +" Vérifiez l'état de l'API sur le site officiel : discordstatus.com" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "La chanson demandée `%(subject)s` est bloquée par la liste de blocage de chansons." + +#: musicbot/bot.py:2831 +msgid "Reset the auto playlist queue by copying it back into player memory.\n" +"This command will be removed in a future version, replaced by the autoplaylist command(s)." +msgstr "Réinitialiser la file d'attente de la liste de lecture automatique en la copiant dans la mémoire du lecteur.\n" +"Cette commande sera supprimée dans une version ultérieure, remplacée par les commandes de la liste de lecture automatique." + +#: musicbot/bot.py:2846 +msgid "\\N{OK HAND SIGN}" +msgstr "\\N{OK HAND SIGN}" + +#: musicbot/bot.py:2853 +msgid "Show usage and description of a command, or list all available commands.\n" +msgstr "Afficher l'utilisation et la description d'une commande, ou lister toutes les commandes disponibles.\n" + +#: musicbot/bot.py:2888 +msgid "**Aliases for this command:**\n" +msgstr "**Alias pour cette commande :**\n" + +#: musicbot/bot.py:2891 +#, python-format +msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" +msgstr "`%(alias)s` alias de `%(command)s %(args)s`\n" + +#: musicbot/bot.py:2924 +#, python-format +msgid "**Alias of command:**\n" +" `%(command)s`\n" +msgstr "**Alias de commande:**\n" +" `%(command)s`\n" + +#. TRANSLATORS: template string for command-specific help output. +#: musicbot/bot.py:2931 +#, python-format +msgid "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" +msgstr "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "Aucune commande de ce type" + +#: musicbot/bot.py:2959 +#, python-format +msgid "The list above shows only commands permitted for your use.\n" +"For a list of all commands, run: %(example_all)s\n" +msgstr "La liste ci-dessus ne montre que les commandes autorisées pour votre utilisation.\n" +"Pour une liste de toutes les commandes, exécutez : %(example_all)s\n" + +#: musicbot/bot.py:2965 +#, python-format +msgid "**Commands by name:** *(without prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Command Prefix:** %(prefix)s\n\n" +"For help with a particular command, run: %(example_command)s\n" +"%(all_note)s" +msgstr "**Commandes par nom:** *(sans préfixe)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Préfixe de commande :** %(prefix)s\n\n" +"Pour obtenir de l'aide avec une commande particulière, run: %(example_command)s\n" +"%(all_note)s" + +#: musicbot/bot.py:2984 +msgid " Block a mentioned user." +msgstr " Bloquer un utilisateur mentionné." + +#: musicbot/bot.py:2987 +msgid " Unblock a mentioned user." +msgstr " Débloquer un utilisateur mentionné." + +#: musicbot/bot.py:2990 +msgid " Show the block status of a mentioned user." +msgstr " Afficher le statut de bloc d'un utilisateur mentionné." + +#: musicbot/bot.py:2994 +msgid "Manage the users in the user block list.\n" +"Blocked users are forbidden from using all bot commands.\n" +msgstr "Gérer les utilisateurs dans la liste des utilisateurs bloqués\n" +"Les utilisateurs bloqués ne peuvent pas utiliser toutes les commandes du bot.\n" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "Vous devez mentionner un utilisateur ou fournir son numéro d'identité." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Sous-commande invalide. Utilisez `help blockuser` pour des exemples d'utilisation." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot n'a pas pu trouver les utilisateurs que vous avez spécifiés." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "Le propriétaire ne peut pas être ajouté à la liste de blocs." + +#: musicbot/bot.py:3059 +msgid "User block list is currently enabled." +msgstr "La liste des utilisateurs bloqués est actuellement activée." + +#: musicbot/bot.py:3061 +msgid "User block list is currently disabled." +msgstr "La liste des utilisateurs bloqués est actuellement désactivée." + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "Impossible d'ajouter les utilisateurs que vous avez listés, ils sont déjà ajoutés." + +#: musicbot/bot.py:3078 +#, python-format +msgid "%(number)s user(s) have been added to the block list.\n" +"%(status)s" +msgstr "%(number)s a été ajouté à la liste de blocage.\n" +"%(status)s" + +#: musicbot/bot.py:3089 +msgid "None of those users are in the blacklist." +msgstr "Aucun de ces utilisateurs n'est dans la liste noire." + +#: musicbot/bot.py:3094 +#, python-format +msgid "User: `%(user)s` is not blocked.\n" +msgstr "L'utilisateur : `%(user)s` n'est pas bloqué.\n" + +#: musicbot/bot.py:3096 +#, python-format +msgid "User: `%(user)s` is blocked.\n" +msgstr "L'utilisateur : `%(user)s` est bloqué.\n" + +#: musicbot/bot.py:3099 +#, python-format +msgid "**Block list status:**\n" +"%(status)s\n" +"%(users)s" +msgstr "**Bloquer le statut de la liste :**\n" +"%(status)s\n" +"%(users)s" + +#: musicbot/bot.py:3109 +#, python-format +msgid "%(number)s user(s) have been removed from the block list.\n" +"%(status)s" +msgstr "%(number)s Utilisateur(s) ont été retirés de la liste de blocage.\n" +"%(status)s" + +#: musicbot/bot.py:3118 +msgid "Manage a block list applied to song requests and extracted song data.\n" +"A subject may be a song URL or a word or phrase found in the track title.\n" +"If subject is omitted, any currently playing track URL will be added instead.\n\n" +"The song block list matches loosely, but is case-sensitive.\n" +"This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" +msgstr "Gérez une liste de blocage appliquée aux demandes de chansons et aux données de chansons extraites.\n" +"Un sujet peut être une URL de chanson ou un mot ou une phrase trouvé dans le titre de la piste.\n" +"Si le sujet est omis, toute URL de piste en cours de lecture sera ajoutée à la place.\n\n" +"La liste de blocage des chansons correspond vaguement, mais est sensible à la casse.\n" +"Cela signifie que l'ajout de « Pie » correspondra à « cherry Pie » mais pas à « piecrust » dans les vérifications.\n" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Vous devez indiquer un sujet si aucune chanson n'est en cours de lecture." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Sous-commande invalide. Utilisez `help blocksong` pour des exemples d'utilisation." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "Sujet `%(subject)s` est déjà dans la liste de blocage de chansons." + +#: musicbot/bot.py:3187 +#, python-format +msgid "Added subject `%(subject)s` to the song block list.\n" +"%(status)s" +msgstr "Ajout du sujet `%(subject)s` à la liste de blocage de chansons.\n" +"%(status)s" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "Le sujet n'est pas dans la liste des chansons bloquées et ne peut pas être supprimé." + +#: musicbot/bot.py:3204 +#, python-format +msgid "Subject `%(subject)s` has been removed from the block list.\n" +"%(status)s" +msgstr "Le sujet `%(subject)s` a été retiré de la liste de blocs.\n" +"%(status)s" + +#: musicbot/bot.py:3214 +msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" +msgstr " Ajoute ou supprime la chanson spécifiée ou joue actuellement dans/depuis la playlist actuelle.\n" + +#: musicbot/bot.py:3217 +msgid " Adds the entire queue to the guilds playlist.\n" +msgstr " Ajoute toute la file d'attente à la playlist des guildes.\n" + +#: musicbot/bot.py:3220 +msgid " Show a list of existing playlist files.\n" +msgstr " Afficher une liste des fichiers de playlist existants.\n" + +#: musicbot/bot.py:3223 +msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" +msgstr " Réinitialiser la file d'attente de la liste de lecture automatique, redémarrer la première piste, sauf si elle est aléatoire.\n" + +#: musicbot/bot.py:3226 +msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" +msgstr " Définir une playlist par défaut pour cette guilde et recharger la playlist automatique de guilde.\n" + +#: musicbot/bot.py:3229 +msgid "Manage auto playlist files and per-guild settings." +msgstr "Gérer les fichiers de la liste de lecture automatique et les paramètres par guilde." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Sous-commande invalide. Utilisez `help autoplaylist` pour des exemples d'utilisation." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "Le lien de la chanson fournie n'est pas valide" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "La file d'attente est vide. Ajoutez des morceaux avec une commande de lecture!" + +#: musicbot/bot.py:3273 +msgid "All songs in the queue are already in the autoplaylist." +msgstr "Toutes les chansons dans la file d'attente sont déjà dans la liste de lecture automatique." + +#: musicbot/bot.py:3277 +#, python-format +msgid "Added %(number)d songs to the autoplaylist." +msgstr "Ajout des chansons %(number)d à la liste de lecture automatique." + +#: musicbot/bot.py:3287 +#, python-format +msgid "Added `%(url)s` to the autoplaylist." +msgstr "Ajouté `%(url)s` à la liste de lecture automatique." + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Cette chanson est déjà dans la liste de lecture automatique." + +#: musicbot/bot.py:3304 +#, python-format +msgid "Removed `%(url)s` from the autoplaylist." +msgstr "Supprimé `%(url)s` de la liste de lecture automatique." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Cette chanson n'est pas encore dans la liste de lecture automatique." + +#: musicbot/bot.py:3316 +#, python-format +msgid "Loaded a fresh copy of the playlist: `%(file)s`" +msgstr "Une nouvelle copie de la playlist a été chargée : `%(file)s`" + +#: musicbot/bot.py:3327 +#, python-format +msgid "**Available Playlists:**\n" +"%(names)s" +msgstr "**Listes de lecture disponibles:**\n" +"%(names)s" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "Vous devez fournir un nom de fichier de playlist." + +#: musicbot/bot.py:3357 +msgid "\n" +"This playlist is new, you must add songs to save it to disk!" +msgstr "\n" +"Cette playlist est nouvelle, vous devez ajouter des chansons pour l'enregistrer sur le disque !" + +#: musicbot/bot.py:3362 +#, python-format +msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" +msgstr "La playlist de ce serveur a été mise à jour: `%(name)s`%(note)s" + +#: musicbot/bot.py:3373 +msgid "Generate an invite link that can be used to add this bot to another server." +msgstr "Générer un lien d'invitation qui peut être utilisé pour ajouter ce bot à un autre serveur." + +#: musicbot/bot.py:3385 +#, python-format +msgid "Click here to add me to a discord server:\n" +"%(url)s" +msgstr "Cliquez ici pour m'ajouter à un serveur discord:\n" +"%(url)s" + +#: musicbot/bot.py:3391 +msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" +"Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" +msgstr "Activer ou désactiver le mode karaoké. Lorsque cette option est activée, seuls les membres du karaoké peuvent faire la file d'attente.\n" +"Groupes avec Permissions BypassKaraokeMode contrôlent quels membres sont membres Karaoke.\n" + +#: musicbot/bot.py:3403 +msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." +msgstr "\\NLe mode Karaoké{OK HAND SIGN} est maintenant activé." + +#: musicbot/bot.py:3405 +msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." +msgstr "\\N{OK HAND SIGN} Le mode Karaoké est maintenant désactivé." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "Vous n'êtes pas autorisé à demander des playlists" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "La playlist a trop d'entrées (%(songs)s mais max est %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "Les entrées de la liste de lecture dépasseront votre limite de file d'attente.\n" +"Il y a %(songs)s dans la liste, et %(queued)s déjà dans la file d'attente.\n" +"La limite est %(max)s pour votre groupe." + +#: musicbot/bot.py:3580 +msgid "Bot was previously paused, resuming playback now." +msgstr "Le bot a été précédemment mis en pause, reprenant la lecture maintenant." + +#: musicbot/bot.py:3589 +msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" +"You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" +"Playlist links will be extracted into multiple links and added to the queue.\n" +"If you enter a non-URL, the input will be used as search criteria on YouTube and the first result played.\n" +"MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" +msgstr "Ajoutez une chanson à lire dans la file d'attente. Si aucune chanson n'est en cours de lecture ou en pause, la lecture démarre.\n\n" +"Vous pouvez fournir une URL vers un fichier vidéo ou audio ou l'URL d'un service pris en charge par yt-dlp.\n" +"Les liens de la liste de lecture seront extraits en plusieurs liens et ajoutés à la file d'attente.\n" +"Si vous saisissez une non-URL, l'entrée sera utilisée comme critère de recherche sur YouTube et le premier résultat sera lu.\n" +"MusicBot prend également en charge les URI et les URL Spotify, mais l'audio est récupéré à partir de YouTube dans tous les cas.\n" + +#: musicbot/bot.py:3628 +msgid "Play command that shuffles playlist entries before adding them to the queue.\n" +msgstr "Jouer la commande qui mélange les entrées de la playlist avant de les ajouter à la file d'attente.\n" + +#: musicbot/bot.py:3665 +#, python-format +msgid "Shuffled playlist items into the queue from `%(request)s`" +msgstr "Lecture aléatoire des éléments de la playlist dans la file d'attente depuis `%(request)s`" + +#: musicbot/bot.py:3672 +msgid "A play command that adds the song as the next to play rather than last.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "Une commande de jeu qui ajoute la chanson comme la suivante à jouer plutôt que la dernière.\n" +"Lire de l'aide pour la commande de lecture pour des informations sur les entrées prises en charge.\n" + +#: musicbot/bot.py:3707 +msgid "A play command which skips any current song and plays immediately.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "Une commande de lecture qui saute n'importe quelle chanson actuelle et joue immédiatement.\n" +"Lire de l'aide pour la commande de lecture pour des informations sur les entrées prises en charge.\n" + +#: musicbot/bot.py:3744 +msgid "Restarts the current song at the given time.\n" +"If time starts with + or - seek will be relative to current playback time.\n" +"Time should be given in seconds, fractional seconds are accepted.\n" +"Due to codec specifics in ffmpeg, this may not be accurate.\n" +msgstr "Redémarre la chanson en cours à l'heure indiquée.\n" +"Si l'heure commence par + ou - la recherche sera relative à l'heure de lecture actuelle.\n" +"Le temps doit être donné en secondes, les secondes fractionnaires sont acceptées.\n" +"En raison des spécificités du codec dans ffmpeg, cela peut ne pas être exact.\n" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "Impossible d'utiliser seek s'il n'y a rien à jouer." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "Impossible d'utiliser la recherche sur la piste en cours, elle a une durée inconnue." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "La recherche n'est pas prise en charge pour les flux." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "Impossible d'utiliser la recherche sans un temps pour positionner la lecture." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "Impossible de convertir `%(input)s` en une heure valide en secondes." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "Impossible de chercher à `%(input)s` (`%(seconds)s` secondes) dans la piste actuelle avec une longueur de `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3840 +#, python-format +msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." +msgstr "À la recherche de temps `%(input)s` (`%(seconds).2f` secondes) dans la chanson actuelle." + +#: musicbot/bot.py:3852 +msgid "Toggles playlist or song looping.\n" +"If no option is provided the current song will be repeated.\n" +"If no option is provided and the song is already repeating, repeating will be turned off.\n" +msgstr "Active/désactive la playlist ou la boucle.\n" +"Si aucune option n'est fournie, la musique actuelle sera répétée.\n" +"Si aucune option n'est fournie et que la chanson est déjà répétitive, la répétition sera désactivée.\n" + +#: musicbot/bot.py:3870 +msgid "No songs are currently playing. Play something with a play command." +msgstr "Aucune musique n'est en cours de lecture. Jouez quelque chose avec une commande de lecture." + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Sous-commande invalide. Utilisez la commande `help repeat` pour des exemples d'utilisation." + +#: musicbot/bot.py:3883 musicbot/bot.py:3920 +msgid "Playlist is now repeating." +msgstr "La playlist se répète." + +#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +msgid "Playlist is no longer repeating." +msgstr "La playlist ne se répète plus." + +#: musicbot/bot.py:3892 musicbot/bot.py:3901 +msgid "Player will now loop the current song." +msgstr "Le lecteur va maintenant boucler la chanson actuelle." + +#: musicbot/bot.py:3894 musicbot/bot.py:3908 +msgid "Player will no longer loop the current song." +msgstr "Le lecteur ne bouclera plus la chanson actuelle." + +#: musicbot/bot.py:3898 +msgid "Player is already looping a song!" +msgstr "Le lecteur boucle déjà une chanson !" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "Le joueur n'est pas en boucle." + +#: musicbot/bot.py:3926 +msgid "Song is no longer repeating." +msgstr "La chanson ne se répète plus." + +#: musicbot/bot.py:3930 +msgid "Song is now repeating." +msgstr "La chanson se répète." + +#: musicbot/bot.py:3938 +msgid " Move song at position FROM to position TO.\n" +msgstr " Déplacer la chanson à la position À partir de la position TO.\n" + +#: musicbot/bot.py:3942 +msgid "Swap existing songs in the queue using their position numbers.\n" +"Use the queue command to find track position numbers.\n" +msgstr "Échanger les chansons existantes dans la file d'attente en utilisant leurs numéros de position.\n" +"Utilisez la commande de file d'attente pour trouver les numéros de position de la piste.\n" + +#: musicbot/bot.py:3961 +msgid "There are no songs queued. Play something with a play command." +msgstr "Il n'y a pas de musique en attente. Jouez quelque chose avec une commande de lecture." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Les positions de la chanson doivent être des entiers !" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "Vous avez donné une position en dehors de la taille de la playlist !" + +#: musicbot/bot.py:3984 +#, python-format +msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" +msgstr "La chanson a été déplacée de la position %(from)s dans la file d'attente à la position %(to)s!" + +#: musicbot/bot.py:4072 +#, python-format +msgid "This link contains a Playlist ID:\n" +"`%(url)s`\n\n" +"Do you want to queue the playlist too?" +msgstr "Ce lien contient un ID de la playlist :\n" +"`%(url)s`\n\n" +"Voulez-vous également mettre en file d'attente la playlist ?" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "La lecture des médias locaux n'est pas activée." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "L'URL Spotify n'est pas valide ou n'est pas prise en charge actuellement." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Une URL Spotify a été détectée, mais Spotify n'est pas activé." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Vous avez atteint votre limite de chansons en attente (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "Le mode Karaoké est activé, veuillez réessayer quand il est désactivé!" + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Échec de l'extraction des informations en raison d'une erreur :\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Cette vidéo ne peut pas être lue. Essayez d'utiliser la commande stream." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "La recherche YouTube n'a retourné aucun résultat pour : %(url)s" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "Aucune chanson n'a été ajoutée, toutes les chansons ont été supérieures à la durée maximale (%(max)s secondes)" + +#: musicbot/bot.py:4254 +#, python-format +msgid "Enqueued **%(number)s** songs to be played.\n" +"Position in queue: %(position)s" +msgstr "Morceaux en file d'attente **%(number)s** à jouer.\n" +"Position dans la file d'attente : %(position)s" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "La durée de la musique dépasse la limite (%(length)s > %(max)s)" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "A mis en file d'attente `%(track)s` pour être joué.\n" +"Position dans la file d'attente : %(position)s" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "Joue ensuite!" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "%(position)s - Temps estimé avant de jouer : `%(eta)s`" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "%(position)s - impossible d'estimer le temps avant de jouer." + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "Ajoutez une URL de média à la file d'attente en tant que flux.\n" +"L'URL peut être un média de streaming réel, comme Twitch, YouTube ou un service de type shoutcast.\n" +"Vous pouvez également utiliser un média non diffusé en continu pour le lire sans le télécharger.\n" +"Remarque : FFmpeg peut abandonner le flux de manière aléatoire ou en cas d'instabilité de la connexion.\n" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "La diffusion de listes de lecture n'est pas encore prise en charge." + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "Streaming en continu `%(track)s`" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr " Recherche avec service pour un certain nombre de résultats avec la requête de recherche.\n" + +#: musicbot/bot.py:4432 +msgid " Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr " Recherchez sur YouTube une requête mais obtenez un nombre personnalisé de résultats.\n" +" Note: les guillemets doubles sont requis dans ce cas.\n" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "Recherchez un service pris en charge et sélectionnez à partir des résultats à ajouter à la file d'attente.\n" +"Le service et le nombre d'arguments peuvent être omis, le nombre par défaut est de 3 résultats.\n" +"Sélectionnez parmi ces services :\n" +"- yt, youtube (par défaut)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Vous avez atteint la limite d'élément de votre playlist (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Veuillez spécifier une requête de recherche. Utilisez `help search` pour plus d'informations." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "Vous ne pouvez pas rechercher plus de vidéos %(max)s" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "Recherche de vidéos..." + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "La recherche a échoué en raison d'une erreur : %(error)s" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "Aucune vidéo trouvée." + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "Pour sélectionner une chanson, tapez le numéro correspondant." + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "Résultats de la recherche à partir de %(service)s:" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "**%(index)s**. **%(track)s** | %(length)s" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "\n" +"**0**. Annuler" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "Choisir une chanson" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "Ajout de la chanson [%(track)s](%(url)s) à la file d'attente." + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "Résultat %(number)s de %(total)s: %(url)s" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "D'accord, venez tout droit !" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "Afficher des informations sur ce qui est en train de jouer." + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "[autoplaylist]" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "En cours de lecture" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "Actuellement en streaming:" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "En cours de lecture :" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "Ajouté par:" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "`%(user)s`" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "Progression :" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "Il n'y a pas de chansons en attente ! Mettre en file d'attente quelque chose avec une commande de lecture." + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "Dites à MusicBot de rejoindre la chaîne dans laquelle vous êtes." + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "Vous n'êtes pas connecté à la voix. Essayez de rejoindre un salon vocal !" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "Connecté à `%(channel)s`" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "Permet à MusicBot de suivre un utilisateur lorsqu'il change de canal sur un serveur.\n" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "Plus utilisateur suivant `%(user)s`" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "Maintenant, l'utilisateur suivant `%(user)s` entre les salons vocaux." + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot ne peut pas suivre un utilisateur qui n'est pas membre du serveur." + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "Suivra l'utilisateur `%(user)s` entre les salons vocaux." + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "Mettre en pause la lecture si une piste est en cours de lecture." + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "Musique en pause dans `%(channel)s`" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Le joueur ne joue pas." + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "Reprend la lecture si le lecteur a été mis en pause précédemment." + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "Reprise de la musique dans `%(channel)s`" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "Reprise de la file d'attente musicale" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "Le lecteur n'est pas mis en pause." + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "Mélanger toutes les pistes en cours dans la file d'attente." + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "Mélange toutes les chansons dans la file d'attente." + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "Supprime toutes les chansons actuellement dans la file d'attente." + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "Toutes les chansons de la file d'attente ont été supprimées." + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "Supprimez une chanson de la file d'attente, éventuellement à la position de la file d'attente donnée.\n" +"Si la position est omise, la chanson à la fin de la file d'attente est supprimée.\n" +"Utilisez la commande queue pour trouver le numéro de position de votre piste.\n" +"Cependant, les positions de toutes les chansons sont modifiées lorsqu'une nouvelle chanson commence à jouer.\n" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Rien dans la file d'attente à supprimer !" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "Supprimé `%(track)s` ajouté par `%(user)s`" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "Rien n'a été trouvé dans la file d'attente de l'utilisateur `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "Vous n'avez pas le droit de supprimer cette entrée de la file d'attente.\n" +"Vous devez être celui qui l'a mis en file d'attente ou qui a des permissions de sauter instantanément." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Numéro d'entrée invalide. Utilisez la commande file d'attente pour trouver les positions de la file d'attente." + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "Entrée supprimée `%(track)s` ajoutée par `%(user)s`" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "Entrée retirée `%(track)s`" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "Ignorez ou votez pour passer la chanson en cours de lecture.\n" +"les membres avec la permission InstaSkip peuvent utiliser le paramètre de force pour contourner le vote.\n" +"Si l'option LegacySkip est activée, le paramètre force peut être ignoré.\n" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Impossible de sauter ! Le joueur ne joue pas !" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "La prochaine chanson `%(track)s` est en cours de téléchargement, veuillez patienter." + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "La prochaine chanson sera jouée sous peu. Veuillez patienter." + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Quelque chose de bizarre se passe.\n" +"Vous pouvez redémarrer le bot s'il ne commence pas à fonctionner." + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Quelque chose d'étrange est en train de se produire.\n" +"Vous pouvez redémarrer le bot si cela ne fonctionne pas." + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "Vous n'avez pas la permission de forcer le saut d'une chanson en boucle." + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "Force ignorée `%(track)s`." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "Vous n'avez pas la permission de forcer le saut." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "Vous n'avez pas la permission de sauter une chanson en boucle." + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "Votre saut pour `%(track)s` a été reconnu.\n" +"Le vote à passer a été passé.%(next_up)s" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr " Prochaine chanson à venir !" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "Votre saut pour `%(track)s` a été reconnu.\n" +"Besoin de **%(votes)s** plus de votes pour sauter cette chanson." + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "Définissez le niveau de volume de sortie de MusicBot de 1 à 100.\n" +"paramètre de volume permet un + ou - premier + ou - pour des ajustements relatifs.\n" +"Le réglage de volume est conservé jusqu'à ce que MusicBot soit redémarré.\n" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "Volume actuel : `%(volume)s%%`" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` n'est pas un nombre valide" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "Volume mis à jour de **%(old)d** à **%(new)d**" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Changement de volume déraisonnable fourni: %(old_volume)s%(adjustment)s est %(new_volume)s.\n" +"Le volume ne peut être défini que de 1 à 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Volume déraisonnable fourni: %(volume)s. Fournissez une valeur comprise entre 1 et 100." + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "Modifier la vitesse de lecture de la piste en cours de lecture.\n" +"La vitesse doit être comprise entre 0,5 et 100. en raison des limites de ffmpeg.\n" +"La lecture en continu ne prend pas en charge les réglages de vitesse.\n" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "Aucune piste n'est lue, impossible de définir la vitesse.\n" +"Utilisez la commande de configuration pour définir une vitesse de lecture par défaut." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "La vitesse ne peut pas être appliquée aux médias streamés." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Vous devez fournir une vitesse à définir." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "La vitesse que vous avez fournie n'est pas valide. Utilisez un nombre entre 0,5 et 100." + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "Réglage de la vitesse de lecture à `%(speed).3f` pour la piste actuelle." + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr " Ajouter un nouvel alias avec des arguments optionnels.\n" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr " Supprimer un alias avec le nom donné." + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr " Recharger ou enregistrer les alias de/vers le fichier de configuration." + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "Permet de gérer les alias depuis le discord. Pour voir les alias, utilisez la commande d'aide." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Option invalide pour la commande : `%(option)s`" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "Alias rechargé depuis le fichier de configuration." + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "Alias enregistrés dans le fichier de configuration." + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Échec de la sauvegarde des alias en raison d'une erreur :\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Vous devez fournir un alias et une commande à alias" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "Nouvel alias ajouté. `%(alias)s` est maintenant un alias de `%(command)s`" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Vous devez fournir un nom d'alias à supprimer." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "L'alias `%(alias)s` n'existe pas." + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "Alias `%(alias)s` a été supprimé." + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr " Affiche le texte d'aide à propos de toutes les options de configuration manquantes.\n" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr " Liste les noms des options qui ont été modifiées depuis le chargement du fichier de configuration.\n" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr " Liste les options de configuration disponibles et leurs sections.\n" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr " Recharger le fichier options.ini à partir du disque.\n" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr " Affiche le texte d'aide pour une option spécifique.\n" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr " Affiche la valeur actuelle de l'option.\n" + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr " Enregistre la valeur actuelle dans le fichier d'options.\n" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr " Valide l'option et définit la configuration pour la session, mais pas pour le fichier.\n" + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr " Réinitialiser l'option à sa valeur par défaut.\n" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "Gérer la configuration options.ini à partir de Discord." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "La configuration ne peut pas utiliser les mentions du canal et de l'utilisateur en même temps." + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "**Option manquante :** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"La valeur par défaut est définie à : %(default)s```\n" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "*Toutes les options de configuration sont présentes et comptabilisées !*" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "Aucune option de configuration ne semble être modifiée." + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "**Options modifiées :**\n" +"%(changed)s" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "## Options disponibles :\n" +"**Options modifiables :**\n" +"%(editable)s\n" +"**Modification manuelle uniquement :**\n" +"%(manual)s" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "Les options de configuration ont été rechargées à partir du fichier avec succès !" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Impossible de recharger la configuration en raison de l'erreur suivante :\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Impossible de résoudre le nom de la section à partir du nom de l'option. Veuillez fournir un nom de section et d'option valide." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "L'option donnée est ambiguë, veuillez fournir un nom de section." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Vous devez fournir un nom de section et un nom d'option pour cette commande." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "La section `%(section)s` n'est pas disponible.\n" +"Les sections disponibles sont : %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "L'option `%(option)s` n'est pas disponible." + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "Cette option ne peut être définie qu'en modifiant le fichier de configuration." + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "Par défaut, cette option est réglée à : %(default)s" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Option :** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "L'option `%(option)s` n'est pas modifiable. Impossible d'enregistrer sur le disque." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Impossible d'enregistrer l'option : `%(option)s`" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "Option enregistrée avec succès: `%(config)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "L'option `%(option)s` n'est pas modifiable, la valeur ne peut pas être affichée." + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Option :** `%(config)s`\n" +"Valeur actuelle : `%(loaded)s`\n" +"Valeur du fichier INI : `%(ini)s`" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "L'option `%(option)s` n'est pas modifiable. Impossible de mettre à jour le paramètre." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Vous devez fournir une section, une option et une valeur pour cette sous-commande." + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "L'option `%(option)s` n'a pas été mise à jour !" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "L'option `%(config)s` a été mise à jour pour cette session.\n" +"Pour sauvegarder le changement, utilisez `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "L'option `%(option)s` n'est pas modifiable. Impossible de réinitialiser à la valeur par défaut." + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "L'option `%(option)s` n'a pas été réinitialisée par défaut!" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "L'option `%(config)s` a été réinitialisée à sa valeur par défaut `%(default)s`.\n" +"Pour sauvegarder le changement, utilisez `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "Commande obsolète, utilisez la commande config à la place." + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "La commande d'option est obsolète, utilisez la commande config à la place." + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "Affichez des informations sur le stockage en cache ou effacez le cache en fonction des limites configurées.\n" +"L'utilisation de l'option de mise à jour analysera le cache à la recherche de modifications externes avant d'afficher les détails." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Option non valide spécifiée, utilisez: info, mise à jour ou effacement" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "Désactivé" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "Activé" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "%(time)s jours" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "Illimité" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "**Cache Vidéo :** *%(state)s*\n" +"**Limite de Stockage :** *%(size)s*\n" +"**Limite de Temps :** *%(time)s*\n\n" +"**Mise en cache Maintenant : %(used)s dans %(files)s fichier(s)." + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "Le cache a été effacé." + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Échec** pour supprimer la cache, vérifiez les logs pour plus d'infos..." + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "Aucune cache trouvée à effacer." + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "Affiche des informations sur la file d'attente du joueur.\n" +"Le numéro de page facultatif affiche les entrées ultérieures dans la file d'attente.\n" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "L'argument de la page de file d'attente doit être un nombre entier." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "Le numéro de page demandé est hors limites.\n" +"Il y a **%(total)s** pages." + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "(durée inconnue)" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "Joue actuellement : `%(title)s`\n" +"Ajouté par : `%(user)s`\n" +"Progression : `[%(progress)s/%(total)s]`\n" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "**Entrée #%(index)s:**Titre: `%(title)s`\n" +"Ajouté par: `%(user)s\n\n" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "%(progress)sIl y a `%(total)s` entrées dans la file d'attente.\n" +"Voici les prochaines %(per_page)s chansons, commençant à la chanson #%(start)s\n\n" +"%(tracks)s" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "Chansons en file d'attente" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Essayez à nouveau. MusicBot n'a pas pu faire ou obtenir une référence au message de file d'attente.\n" +"Si le problème persiste, remplissez un rapport de bogue." + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "Recherchez et supprimez les messages de bot et les commandes du canal textuel appelant.\n" +"Optionnellement fournir un nombre de messages à rechercher, 50 par défaut 500 max.\n" +"Cette commande peut être lente si de plus grandes plages sont données.\n" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "Paramètre invalide. Veuillez fournir un nombre de messages à rechercher." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Impossible d'utiliser la purge sur un canal DM privé." + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "Messagerie %(number)s nettoyée." + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "Le bot n'a pas la permission de gérer les messages." + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr "Supprime les URLs individuelles d'une playlist dans un fichier." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "L'URL donnée n'est pas une URL valide." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Impossible d'extraire les infos de l'url d'entrée\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "Cela ne semble pas être une playlist." + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "Voici le dump de la playlist pour : %(url)s" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "Affiche votre ID d'utilisateur Discord, ou l'ID d'un utilisateur mentionné.\n" +"Cette commande est obsolète en faveur du mode développeur dans les clients Discord.\n" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "Votre ID d'utilisateur est `%(id)s`" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "L'ID de l'utilisateur pour `%(username)s` est `%(id)s`" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "Liste les identifiants Discord pour la catégorie sélectionnée.\n" +"Renvoie toutes les données d'identification par défaut, mais une ou plusieurs catégories peuvent être sélectionnées.\n" +"Cette commande est dépréciée en faveur de l'utilisation du mode développeur dans les clients Discord.\n" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "Catégories valides : %(cats)s" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "Voici les identifiants que vous avez demandés :" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permissions of the mentioned user." +msgstr "Obtenir une liste de vos permissions, ou les permissions de l'utilisateur mentionné." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "Identifiant d'utilisateur ou surnom de serveur invalide, veuillez vérifier l'ID et réessayer." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Impossible de déterminer l'utilisateur de la discord. Réessayez." + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Vos permissions de commande dans %(server)s sont:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Les permissions de commandes pour %(username)s dans %(server)s sont :\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr " Afficher les groupes chargés et les options de permission de liste.\n" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr " Recharge les permissions depuis le fichier permissions.ini\n" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr " Ajouter un nouveau groupe par défaut.\n" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr " Supprimer le groupe existant.\n" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr " Afficher le texte d'aide pour l'option de permission.\n" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr " Afficher la valeur de la permission pour un groupe donné et une autorisation.\n" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr " Enregistrer le groupe de permissions dans un fichier.\n" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr " Définir la valeur de permission pour le groupe.\n" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "Gérer la configuration permissions.ini depuis le discord." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Les permissions ne peuvent pas utiliser les mentions de salon et d'utilisateurs en même temps." + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "Permissions rechargées depuis le fichier avec succès !" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Impossible de recharger les autorisations en raison d'une erreur :\n" +"%(raw_error)s" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "## Groupes disponibles :\n" +"%(groups)s\n" +"## Options disponibles :\n" +"%(options)s\n" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Vous devez fournir un nom de groupe ou d'option pour cette commande." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Vous devez fournir un groupe, une option et une valeur à définir pour cette commande." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "La sous-commande %(option)s nécessite un nom de groupe et de permission." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "Le groupe `%(group)s` n'est pas disponible.\n" +"Les groupes disponibles sont: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "La permission `%(option)s` n'est pas disponible." + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "Cette permission ne peut être définie qu'en modifiant le fichier de permissions." + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "Par défaut, cette permission est définie à : `%(value)s`" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Permission :** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Impossible d'ajouter le groupe `%(group)s` il existe déjà." + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "Nouveau groupe ajouté avec succès: `%(group)s`\n" +"Vous pouvez maintenant personnaliser les permissions avec: `setperms set %(group)s`\n" +"Assurez-vous de sauvegarder le nouveau groupe avec: `setperms save %(group)s`" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Impossible de supprimer le groupe intégré." + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "Groupe supprimé avec succès: `%(group)s`\n" +"Assurez-vous de sauvegarder ce changement avec: `setperms save %(group)s`" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "Le groupe propriétaire n'est pas modifiable." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Impossible d'enregistrer le groupe: `%(group)s`" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "Le groupe a été enregistré avec succès : `%(group)s`" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Permission :** `%(permission)s`\n" +"Valeur actuelle : `%(loaded)s`\n" +"Valeur du fichier INI : `%(ini)s`" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Permission `%(option)s` n'a pas été mise à jour !" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "Permission `%(permission)s` a été mise à jour pour cette session.\n" +"Pour enregistrer le changement, utilisez `setperms enregistrer %(section)s %(option)s`" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "Changer le nom d'utilisateur du bot sur discord.\n" +"Note: L'API peut limiter les changements de nom à deux fois par heure." + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Impossible de changer le nom d'utilisateur. Avez-vous changé de nom trop de fois ?\n" +"Rappelez-vous que les changements de nom sont limités à deux fois par heure.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Impossible de modifier le nom d'utilisateur en raison d'une erreur : \n" +"%(raw_error)s" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "Le nom d'utilisateur du bot a été défini à `%(name)s`" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "Changez le surnom du MusicBot." + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Impossible de changer le pseudo : pas de permission." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Impossible de définir le pseudo en raison d'une erreur : \n" +"%(raw_error)s" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "Pseudo du bot défini à `%(nick)s`" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr " Définissez un préfixe de commande par serveur." + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr " Effacer le préfixe de commande par serveur." + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "Remplacer le préfixe de commande par défaut sur le serveur.\n" +"L'option EnablePrefixPerGuild doit d'abord être activée." + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Les émojis personnalisés doivent provenir de ce serveur pour être utilisés comme préfixes." + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "Le préfixe de commande du serveur est effacé." + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "Le préfixe de commande du serveur est maintenant : %(prefix)s" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Le préfixe par serveur n'est pas activé !\n" +"Utilisez la commande de configuration pour mettre à jour le préfixe à la place." + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "Change l'avatar de MusicBot.\n" +"Attacher un fichier et omettre le paramètre url fonctionne aussi.\n" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "Vous devez fournir une URL ou joindre un fichier." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Impossible de changer d'avatar en raison d'une erreur : \n" +"%(raw_error)s" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "L'avatar du bot a été modifié." + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "Forcer MusicBot à se déconnecter du serveur discord." + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "Déconnecté du serveur `%(guild)s`" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "Déconnecté un client vocal sans joueur ? [BUG]" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Pas actuellement connecté au serveur `%(guild)s`" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr " Tentative de rechargement sans redémarrage du processus. L'option par défaut.\n" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr " Tentative de redémarrer l'ensemble du processus MusicBot, rechargeant tout.\n" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr " Redémarrage complet, mais essayer de mettre à jour les paquets pip avant de redémarrer.\n" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr " Redémarrage complet, mais mettez à jour le code source de MusicBot avec git d'abord.\n" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr " Tentative de mettre à jour toutes les dépendances et le code source avant de redémarrer complètement.\n" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "Tente de redémarrer MusicBot de différentes manières.\n" +"Si aucune option n'est fournie, un redémarrage « soft » est implicite.\n" +"Il peut être utilisé pour mettre à jour à distance une installation MusicBot, mais doit être utilisé avec précaution.\n" +"Si vous disposez d'un gestionnaire de services, nous vous recommandons de l'utiliser à la place de cette commande pour les redémarrages.\n" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Option non valide, utilisez une de : soft, full, upgrade, uppip ou upgit" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "%(emoji)s Redémarrage de l'instance actuelle..." + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "%(emoji)s Le processus de redémarrage du bot..." + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "%(emoji)s va essayer de mettre à niveau les packages pip requis et de redémarrer le bot..." + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "%(emoji)s va essayer de mettre à jour le code du bot avec git et de redémarrer le bot..." + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "%(emoji)s Je vais essayer de tout mettre à niveau et de redémarrer le bot..." + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "Déconnectez de tous les canaux vocaux et fermez le processus MusicBot." + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr " Laissez le serveur discord donné par le nom ou l'ID du serveur." + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "Forcer MusicBot à quitter le serveur Discord donné.\n" +"Les noms sont sensibles à la casse, donc l'utilisation d'un numéro d'identification est plus fiable.\n" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Vous devez fournir un ID ou un nom." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "Aucune guilde n'a été trouvée avec l'ID ou le nom `%(input)s`" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "Inconnu" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "A quitté la guilde : `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "Commande utilisée pour les tests. Elle affiche une liste de commandes qui peuvent être vérifiées par une suite de test." + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "Cette commande émet un journal au niveau CRITICAL, mais ne fait rien d'autre.\n" +"Peut être utilisé pour identifier manuellement les événements dans le fichier journal MusicBot.\n" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "Point d’arrêt connecté avec ID: %(uuid)s" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr " Voir les types les plus courants signalés par objgraphe.\n" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr " Voir la sortie objgraph.show_growth() limitée.\n" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr " Voir les types les plus courants d'objets fuites.\n" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr " Voir les typestats des objets fuites.\n" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr " Évaluer la fonction donnée et les arguments sur objgraph.\n" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "Interagissez avec objgraph, s'il est installé, pour avoir un aperçu de l'utilisation de la mémoire.\n" +"Vous pouvez passer une méthode arbitraire avec des arguments (mais pas d'espaces !) qui est membre d'objgraph.\n" +"Étant donné que cette méthode évalue du code arbitraire, elle est considérée comme dangereuse comme la commande debug.\n" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Impossible d'importer `objgraph`, est-il installé ?" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "Cette commande exécutera un code Python arbitraire dans la portée de la commande.\n" +"La première tentative est d'exécuter eval(), si des exceptions sont levées, la seconde tentative est d'exécuter exec().\n" +"Si eval réussit, sa valeur de retour est affichée.\n" +"Si exec réussit, une valeur peut être définie sur la variable locale `result` et cette valeur sera renvoyée.\n\n" +"Un code multiligne peut être exécuté s'il est enveloppé dans un bloc de code.\n" +"Sinon, une seule ligne peut être exécutée.\n\n" +"Cette commande peut être supprimée dans une future version et est utilisée par les développeurs pour déboguer le comportement de MusicBot.\n" +"Le danger de cette commande ne peut être sous-estimé. Ne l'utilisez pas et ne lui donnez pas accès si vous ne comprenez pas les risques !\n" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Impossible d'exécuter le code de débogage :\n" +"%(py_code)s\n" +"Exception : ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "Créer un « markdown » pour les options, les permissions ou les commandes à partir du code.\n" +"La sortie est utilisée pour mettre à jour les pages GitHub et n'est donc pas appropriée pour une utilisation normale de référence." + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "La sous-commande doit être une des : %(options)s" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "Fait des fichiers INI par défaut." + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "Le fichier INI demandé a été enregistré sur le disque. Allez le vérifier" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "Affiche la version actuelle du bot et vérifie les mises à jour de MusicBot ou des dépendances.\n" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Impossible de localiser l'exécutable git." + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "Aucune mise à jour dans la branche `%(branch)s` distante." + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "De nouveaux commits sont disponibles dans la branche distante `%(branch)s`." + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "Erreur lors de la vérification, voir les journaux pour plus de détails." + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "Mise à jour pour `%(name)s` vers la version : `%(version)s`\n" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "Aucune mise à jour pour les dépendances trouvées." + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "Il y a des mises à jour pour MusicBot disponibles pour téléchargement." + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "MusicBot est totalement à jour!" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "%(status)s\n\n" +"**Mises à jour du code source:**\n\n" +"%(git_status)s\n\n" +"**Mises à jour des dépendances:**\n" +"%(pip_status)s" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "Affiche le temps de disponibilité de MusicBot, ou le temps écoulé depuis le dernier démarrage / redémarrage." + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "%(name)s a été en ligne pour `%(time)s`" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "Affiche les informations de latence pour l'API Discord et tous les clients vocaux connectés." + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Moyenne) dans la région: `%(region)s`\n" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "Aucun client vocal connecté.\n" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "**Latence de l'API:** `%(delay).0f ms`\n" +"**Latency:**\n" +"%(voices)s" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "Afficher la latence de l'API et la latence vocale si MusicBot est connecté." + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "Automatique" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "\n" +"**Latencye vocale:** `%(delay).0f ms` (`%(average).0f ms` Moy.) dans la région `%(region)s`" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "**Latence de l'API:** `%(delay).0f ms`%(voice)s" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "Affiche le numéro de version de MusicBot dans le chat." + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "https://github.com/Just-Some-Bots/MusicBot\n" +"Version actuelle : `%(version)s`" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr " Mettre à jour le fichier cookies.txt en utilisant une pièce jointe de cookies.txt." + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr " Activer ou désactiver le fichier cookies.txt sans le supprimer." + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "Permet de gérer la fonctionnalité des cookies dans yt-dlp.\n" +"Lors de la mise à jour des cookies, vous devez télécharger un fichier nommé cookies.txt\n" +"Si les cookies sont désactivés, le téléchargement activera la fonctionnalité.\n" +"Les téléchargements supprimeront les cookies existants, y compris le fichier de cookies désactivé.\n\n" +"AVERTISSEMENT :\n" +" La copie des cookies peut risquer d'exposer vos informations personnelles ou vos comptes,\n" +" et peut entraîner l'interdiction ou le vol de compte si vous ne faites pas attention.\n" +" Elle n'est pas recommandée en raison de ces risques, et vous ne devez pas utiliser cette\n" +" fonctionnalité si vous ne savez pas comment éviter les risques." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookies déjà activés." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Les cookies doivent être téléchargés pour être activés. (Fichier de cookies)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Impossible d'activer les cookies en raison d'une erreur : %(raw_error)s" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "Les cookies ont été activés." + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Impossible de renommer le fichier des cookies en raison d'une erreur : %(raw_error)s\n" +"Cookies temporairement désactivés et seront réactivés au prochain redémarrage." + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "Les cookies ont été désactivés." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "Aucun téléchargement en pièce jointe n'a été trouvé, essayez à nouveau en téléchargeant un fichier de cookies." + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Erreur lors du téléchargement du fichier des cookies depuis le discord: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Impossible d'enregistrer les cookies sur le disque : %(raw_error)s" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "Cookies téléchargés et activés." + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "Vous ne pouvez pas utiliser ce bot dans des messages privés." + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Cette commande n'est pas autorisée pour votre groupe de permissions : %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Cette commande nécessite d'être dans un canal vocal." + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "**Commande:** %(name)s" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "Erreur d'exception" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "**Exemple avec préfixe :**\n" +"%(prefix)s`%(command)s ...`\n" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "Aucune description donnée.\n" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "Aucune utilisation donnée." + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "**Exemple d'utilisation :**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "Quitter le salon vocal %(channel)s en raison de l'inactivité." + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "A gauche `%(guild)s` car le propriétaire du bot n'a pas été trouvé dedans." + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "Définit la verbosité des logs de MusicBot. Normalement, cela devrait être défini sur INFO.\n" +"Il peut être réglé sur l'un des éléments suivants :\n" +" CRITIQUE, ERREUR, ATTENTION, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, ou TOUT" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "Jeton d'authentification de bot Discord pour votre Bot.\n" +"Visitez le portail développeur Discord pour créer une application de bot et générer votre jeton.\n" +"Ne publiez jamais votre jeton de bot !" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "Fournissez votre propre identifiant client Spotify pour permettre à MusicBot d'interagir avec l'API Spotify.\n" +"MusicBot essaiera d'utiliser l'API du lecteur Web (mode invité) si rien n'est défini ici.\n" +"L'utilisation de vos propres identifiants API accorde des limites d'utilisation plus élevées que le mode invité." + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "Fournissez votre secret client Spotify pour permettre à MusicBot d'interagir avec l'API Spotify.\n" +"Ceci est nécessaire si vous définissez l'option Spotify_ClientID ci-dessus." + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "Fournissez un numéro d'identifiant d'utilisateur Discord pour définir le propriétaire de ce bot.\n" +"Le mot « auto » ou le numéro 0 définira le propriétaire en fonction des informations de l'application.\n" +"Un seul identifiant de propriétaire peut être défini ici. En général, il est recommandé de définir « auto »." + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "Une liste des identifiants utilisateur Discord qui peuvent utiliser les commandes de dev-only.\n" +"Attention : les commandes dev-only peuvent permettre l'exécution arbitraire de code à distance.\n" +"Utilisez des espaces pour séparer plusieurs IDs.\n" +"La plupart des utilisateurs doivent laisser ce paramètre vide." + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "ID de membre Discord pour les autres bots que MusicBot ne devrait pas ignorer.\n" +"Utilisez des espaces pour séparer plusieurs IDs.\n" +"Tous les bots sont ignorés par défaut." + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "Le préfixe de commande est comment toutes les commandes MusicBot doivent être lancées dans les messages Discord.\n" +"Par exemple, si vous définissez ceci à * la commande de lecture est déclenchée par *play..." + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "Activez les commandes avec @[YourBotNameHere]\n" +"Le CommandPrefix est toujours disponible, mais peut être remplacé par @ mention." + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "Numéros d'identification pour les salons textuels que MusicBot devrait utiliser exclusivement pour les commandes.\n" +"Cela peut contenir des IDs pour les salons sur plusieurs serveurs.\n" +"Utilisez des espaces pour séparer plusieurs IDs.\n" +"Tous les canaux sont utilisés si ce n'est pas défini." + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "Permettre les réponses dans tous les salons tant qu'aucun canal spécifique n'est défini pour un serveur.\n" +"Utilisé uniquement lorsque BindToChannels manque un ID pour un serveur." + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "Une liste des ID de canal vocal que MusicBot devrait rejoindre automatiquement au démarrage.\n" +"Utilisez des espaces pour séparer plusieurs IDs." + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "MusicBot essaiera d'envoyer des avis de Lecture en cours directement au membre qui a demandé la chanson au lieu de poster dans un canal du serveur." + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "Désactiver la lecture des messages pour les chansons jouées via la liste de lecture automatique." + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "Force MusicBot à utiliser un canal spécifique pour envoyer des messages en cours de lecture.\n" +"Un seul ID de canal texte peut être utilisé par serveur." + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "MusicBot supprimera automatiquement les messages en cours de lecture." + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "Définit le niveau de volume par défaut auquel MusicBot jouera des morceaux.\n" +"Vous pouvez utiliser n'importe quelle valeur de 0 à 1, ou de 0 % à 100 %." + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "Définit la vitesse par défaut à laquelle MusicBot jouera les morceaux.\n" +"doit être une valeur de 0.5 à 100.0 pour que ffmpeg puisse l'utiliser.\n" +"Une valeur de 1 est la vitesse de lecture normale.\n" +"Note : Les médias diffusés ne prennent pas en charge les réglages de vitesse." + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "Nombre de votes des membres de la chaîne requis pour passer une chanson.\n" +"agit comme un minimum lorsque SkipRatio nécessite plus de votes." + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "Ce pourcentage d'auditeurs dans la voix doit voter pour le saut.\n" +"Si SkipsRequired est inférieur à la valeur calculée, il sera utilisé à la place.\n" +"Vous pouvez définir ceci de 0 à 1, ou de 0 % à 100 %." + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "Permettre à MusicBot de garder les médias téléchargés, ou de les supprimer immédiatement." + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "Si SaveVideos est activé, définissez une limite de l'espace de stockage à utiliser." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "Si SaveVideos est activé, définissez une limite sur la durée de conservation des fichiers." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "Si SaveVideos est activé, ne supprimez jamais les chansons de la liste de lecture automatique du cache quelles que soient les limites." + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "Mentionnez l'utilisateur qui a ajouté la chanson quand elle est jouée." + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "Rejoignez automatiquement le propriétaire s'il se trouve dans un canal vocal accessible au démarrage du bot." + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "Activez MusicBot pour jouer automatiquement de la musique à partir de la liste de lecture automatique lorsque la file d'attente est vide." + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "Mélange les pistes de la liste de lecture automatique avant de les lire." + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "Activez le saut automatique des chansons de la liste de lecture automatique lorsqu'un utilisateur écoute une nouvelle chanson.\n" +"Cela s'applique uniquement à la chanson en cours de lecture si elle a été ajoutée par la liste de lecture automatique." + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song block list." +msgstr "Retirer des chansons de la liste de lecture automatique si elles sont trouvées dans la liste des morceaux bloqués." + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "Autoriser MusicBot à supprimer automatiquement les messages qu'il envoie, après un délai.\n" +"La période de délai est contrôlée par DeleteDelayShort et DeleteDelayLong." + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "Supprimer automatiquement les commandes valides après un délai." + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "Définit la courte période de secondes avant de supprimer les messages.\n" +"Cette période est utilisée par les messages qui ne nécessitent aucune autre interaction." + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "Définit la période de délai longue avant de supprimer les messages.\n" +"Cette période est utilisée par des messages interactifs ou longs, comme la recherche et l'aide." + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "Permettre à MusicBot d'enregistrer la file d'attente pour que les chansons en file d'attente survivent aux redémarrages." + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "Activez MusicBot pour télécharger la chanson suivante dans la file d'attente pendant la lecture d'une chanson.\n" +"Actuellement, cette option ne s'applique pas à la liste de lecture automatique ou aux chansons ajoutées à une file d'attente vide." + +#: musicbot/config.py:550 +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "Spécifiez un message personnalisé à utiliser comme statut du bot. Si vous le laissez vide, le bot \n" +"affichera des informations dynamiques sur la musique en cours de lecture dans son statut à la place.\n" +"Les messages de statut peuvent également utiliser les variables suivantes :\n" +" {n_playing} = Nombre de lecteurs de musique en cours de lecture.\n" +" {n_paused} = Nombre de lecteurs de musique actuellement en pause.\n" +" {n_connected} = Nombre de lecteurs de musique connectés, dans n'importe quel état de lecteur.\n\n" +"Les variables suivantes donnent accès aux informations sur le lecteur et la piste.\n" +"Ces variables peuvent ne pas être précises dans les bots multi-guildes :\n" +" {p0_length} = La durée totale de la piste, si disponible. Ex : [2:34]\n" +" {p0_title} = Le titre de la piste en cours de lecture.\n" +" {p0_url} = L'URL de la piste en cours de lecture." + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "Si cette option est activée, les messages d'état signaleront les informations sur les joueurs mis en pause." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "Si activé, MusicBot sauvegardera le titre de la piste dans : data/[ID du serveur]/current.txt" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "Permettre au membre qui a demandé à la chanson de le sauter, en contournant les votes." + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "Essaie d'utiliser ffmpeg pour obtenir des options de normalisation du volume à utiliser lors de la lecture.\n" +"Cette option peut entraîner un délai entre la lecture des chansons, car la piste entière doit être traitée." + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr "Permettre à MusicBot de formater ses messages en embeds." + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "Le nombre d'entrées à afficher par page lors de l'utilisation de la commande q pour lister la file d'attente." + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." +msgstr "Activez MusicBot pour supprimer automatiquement les entrées injouables de la liste de lecture automatique." + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "Afficher les paramètres de configuration de MusicBot dans les journaux au démarrage." + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "Permettre aux utilisateurs avec la permission InstaSkip de contourner le vote et de forcer les sauts." + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "Si activé, MusicBot quittera les serveurs si le propriétaire n'est pas dans sa liste de membres." + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "Si activé, MusicBot autorisera les commandes à avoir plusieurs noms en utilisant les données dans: config/aliases.json" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "Remplacer le nom/version de MusicBot dans le pied de page intégré par du texte personnalisé.\n" +"Appliqué uniquement lorsque UseEmbeds est activé et qu'il n'est pas vide." + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "Retirer complètement le pied de page des embeds." + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "MusicBot sera automatiquement sourd quand il entrera dans un canal vocal." + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "Si activé, MusicBot quittera un canal vocal quand aucun utilisateur n'écoute,\n" +"après avoir attendu une période définie dans l'option LeaveInactiveVCTimeOut .\n" +"Les auditeurs sont des membres du canal, excluant les bots, qui ne sont pas assourdis." + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "Définissez une période de temps d'attente avant de quitter un canal vocal inactif.\n" +"Vous pouvez définir ceci à un nombre de secondes ou une phrase comme : 4 heures" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "Si activé, MusicBot quittera le canal immédiatement lorsque la file d'attente est vide." + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "Lorsqu'il est mis en pause ou qu'il ne joue plus, attendez ce temps puis quittez la voix.\n" +"Vous pouvez définir ceci à un nombre de secondes de phrase comme : 15 minutes\n" +"Réglez la à 0 pour désactiver le départ de cette façon." + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "Si activé, les utilisateurs doivent indiquer les choix de résultats de recherche en envoyant un message au lieu d'utiliser des réactions." + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "Définit le nombre de résultats de recherche par défaut à récupérer lors de l'utilisation de la commande de recherche sans numéro spécifique." + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "Autoriser MusicBot à enregistrer un préfixe de commande par serveur, et active la commande setprefix." + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "Si activé, et plusieurs membres ajoutent des chansons, MusicBot organisera la lecture pour une chanson par membre." + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "Autoriser MusicBot à utiliser des pings temporisés pour détecter les pannes et la disponibilité du réseau.\n" +"Cela peut être utile si vous gardez le bot connecté à un canal ou s'il joue de la musique 24h/24 et 7j/7.\n" +"MusicBot doit être redémarré pour activer les tests réseau.\n" +"Par défaut, cette option est désactivée." + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "Activer l'enregistrement de toutes les chansons jouées par MusicBot dans un fichier global de playlist : %(filename)s\n" +"Cela contiendra toutes les chansons de tous les serveurs." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "Activer la sauvegarde des chansons jouées par serveur dans un fichier de playlist : %(basename)s[ID du serveur]%(ext)s" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "Activer la lecture des fichiers médias locaux en utilisant la commande de lecture.\n" +"Lorsqu'activé, les utilisateurs peuvent utiliser : `play file://path/to/file. xt`\n" +"pour lire les fichiers depuis le chemin local MediaFileDirectory." + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "Permettre à MusicBot de reprendre automatiquement la pause lorsque les commandes de lecture sont utilisées." + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "Paramètres expérimentaux de proxy HTTP/HTTPS à utiliser avec le téléchargeur de médias ytdlp.\n" +"La valeur définie ici est passée à `ytdlp --proxy` et vérification d'en-tête aiohttp.\n" +"Laisser vide pour désactiver." + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "Option expérimentale pour définir un en-tête User-Agent statique en yt-dlp.\n" +"Il n'est généralement pas recommandé par yt-dlp de changer la chaîne UA.\n" +"Pour des exemples de ce que vous pourriez mettre ici, consultez les deux liens suivants :\n" +" https://developer. ozilla.org/fr-FR/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Laisser blank to use default, dynamically generated UA strings." + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "Option expérimentale permettant à yt-dlp d'utiliser un compte YouTube via OAuth2.\n" +"Lorsqu'elle est activée, vous devez utiliser l'URL et le code générés pour autoriser un compte.\n" +"Le jeton d'autorisation est ensuite stocké dans le fichier `%(oauthfile)s`.\n" +"Cette option ne doit pas être utilisée lorsque les cookies sont activés.\n" +"L'utilisation d'un compte personnel peut ne pas être recommandée.\n" +"Réglez oui pour activer ou non pour désactiver." + +#: musicbot/config.py:920 +msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "URL vidéo YouTube optionnelle utilisée au démarrage pour le déclenchement de l'autorisation OAuth2.\n" +"Cela démarre l'invite OAuth2 plus tôt, plutôt que d'attendre une demande de chanson.\n" +"L'URL définie ici doit être une URL vidéo YouTube accessible.\n" +"L'autorisation doit être complétée avant que le démarrage ne se poursuive lorsque cela est défini." + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "Activer/désactiver la fonctionnalité de la liste des utilisateurs, sans vider la liste des blocs." + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "Un chemin optionnel vers un fichier texte listant les identifiants d'utilisateur Discord, un par ligne." + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "Activer la fonctionnalité de liste de chansons bloquées, sans vider la liste de blocs." + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "Un chemin d'accès facultatif vers un fichier texte qui répertorie les URL, les mots ou les phrases, un par ligne.\n" +"Tout titre de chanson ou URL contenant une ligne de la liste sera bloqué." + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "Un chemin facultatif vers un répertoire contenant des fichiers de liste de lecture automatique.\n" +"Chaque fichier doit contenir une liste d'URL ou de termes lisibles, une piste par ligne." + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "Un chemin de répertoire facultatif où les fichiers multimédias lisibles peuvent être stockés.\n" +"Tous les fichiers et sous-répertoires sont alors accessibles en utilisant « file:// » comme protocole.\n" +"Exemple : file://some/folder/name/file.ext\n" +"Correspond à : %(path)s/some/folder/name/file.ext" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "Un chemin optionnel de répertoire où MusicBot stockera le cache long et court pour la lecture." + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "Configurez la rotation automatique des fichiers journaux au redémarrage et limitez le nombre de fichiers conservés.\n" +"Lorsque cette option est désactivée, un seul journal est conservé et son contenu est remplacé à chaque exécution.\n" +"Réglez sur 0 pour désactiver. Le nombre maximal autorisé est %(max)s." + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "Configurer le format de date du fichier journal utilisé lorsque LogsMaxKept est activé.\n" +"Si laissé vide, un avertissement est enregistré et la valeur par défaut sera utilisée à la place.\n" +"En savoir plus sur les codes au format horaire des tables et des données ici :\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "Réduit potentiellement l'utilisation du processeur, mais désactive les contrôles de volume et de vitesse.\n" +"Cette option désactivera également l'option UseExperimentalEqualization ." + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Erreur lors de la lecture de la configuration.\n\n" +"Problème :\n" +" Une ou plusieurs sections d'options de configuration requises sont manquantes.\n" +" Les sections manquantes sont :\n" +" %(sections)s\n\n" +"Solution :\n" +" Réparez votre fichier d'options de configuration.\n" +" Chaque [Section] ne doit apparaître qu'une seule fois, sans autre texte sur la même ligne.\n" +" Chaque section doit avoir au moins une option.\n" +" Utilisez les options d'exemple comme modèle ou copiez-les à partir du référentiel." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Erreur lors de la validation des options de configuration.\n\n" +"Problème :\n" +" option de configuration AudioCachePath n'est pas un répertoire.\n\n" +"Solution :\n" +" Assurez-vous que le chemin que vous avez configuré est un chemin vers un dossier / répertoire." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Erreur lors de la validation des options de configuration.\n\n" +"Problčme :\n" +" L'option de configuration AudioCachePath n'a pas pu ętre définie ŕ cause d'une erreur :\n" +" %(raw_error)s\n\n" +"Solution :\n" +" Double vérifier que la configuration est valide, chemin d'accès au répertoire." + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Erreur lors de la lecture des options de configuration.\n\n" +"Problème :\n" +" Aucun jeton de bot n'a été spécifié dans les options ou l'environnement de configuration.\n\n" +"Solution :\n" +" Définissez l'option de configuration du jeton ou définissez la variable d'environnement %(env_var)s avec un jeton d'application." + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Erreur lors de la récupération automatique de « OwnerID ».\n\n" +"Problème :\n" +" Les informations de l'application Discord ne sont pas disponibles.\n" +" Il peut s'agir d'une panne temporaire de l'API ou d'un bug.\n\n" +"Solution :\n" +" Définissez manuellement l'option de configuration « OwnerID » ou réessayez plus tard." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Erreur lors de la validation des options de configuration.\n\n" +"Problème:\n" +" La configuration 'OwnerID' est la même que votre Bot / App ID.\n\n" +"Solution :\n" +" N'utilisez pas le Bot ou l'ID de l'application dans le champ 'OwnerID'." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Erreur lors de la localisation de la configuration.\n\n" +"Problème :\n" +" Impossible de trouver ou de créer un fichier de configuration en raison d'une erreur :\n" +" %(raw_error)s\n\n" +"Solution :\n" +" Vérifiez que le dossier de configuration et les fichiers existent et peuvent être lus par MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Erreur lors du chargement de la configuration.\n\n" +"Problčme :\n" +" MusicBot n'a pas pu lire le fichier de configuration en raison d'une erreur :\n" +" %(raw_error)s\n\n" +"Solution :\n" +" Assurez-vous que le fichier est accessible et sans erreur.\n" +" Copiez le fichier d'exemple du dépôt si tout le reste échoue." + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" +"Problème :\n" +" L'ID du propriétaire dans [%(section)s] > %(option)s n'est pas valide.\n\n" +"Solution :\n" +" Définissez %(option)s sur un ID numérique ou mettez-le à `auto` ou `0` pour relier automatiquement le propriétaire." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" +"Problème :\n" +" L'option de configuration [%(section)s] > %(option)s n'est pas un emplacement de fichier valide.\n\n" +"Solution :\n" +" Vérifiez le paramétrage du chemin et assurez-vous que le fichier existe et est accessible à MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" +"Problème :\n" +" Un des identifiants dans l'option [%(section)s] > %(option)s est invalide.\n\n" +"Solution :\n" +" S'assurer que tous les identifiants sont numériques, et séparés uniquement par des espaces ou des virgules." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD ne semble pas avoir d'en-têtes..." + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "L'extraction des informations de la chanson n'a renvoyé aucune donnée." + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Impossible de poursuivre l'extraction, la boucle d'événement est fermée." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "L'URL Spotify n'est pas valide ou n'est pas prise en charge." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Erreur dans yt-dlp lors du téléchargement des données : %(raw_error)s" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Impossible de diffuser une URL non valide." + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "Le fichier média local est introuvable." + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Impossible de télécharger les liens Spotify, erreur de traitement avec le type : %(type)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Le téléchargement n'a pas été terminé en raison d'une erreur : %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Le téléchargement a échoué à cause d'une erreur yt-dlp : %(raw_error)s" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Le téléchargement a échoué en raison d'une exception non gérée : %(raw_error)s" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Impossible d'extraire les données pour les médias demandés." + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "Liste des noms de commandes autorisés pour l'utilisation, séparés par des espaces.\n" +"L'accès aux sous-commandes peut être contrôlé en ajoutant _ et le nom de la sous-commande.\n" +"C'est `config_set` n'accorde que la sous-commande `set` de la commande de configuration.\n" +"Cette option remplace CommandBlacklist si défini.\n" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "Liste des noms de commandes refusés d'utilisation, séparés par des espaces.\n" +"Ne fonctionnera pas si CommandWhitelist est défini !" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "Lorsqu'activé, CommandBlacklist et CommandWhitelist sont utilisés ensemble.\n" +"Seules les commandes dans la liste blanche sont autorisées, cependant les sous-commandes peuvent être refusées par la liste noire.\n" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "Liste des noms de commandes qui ne peuvent être utilisés que dans le même salon vocal que MusicBot.\n" +"Certaines commandes nécessiteront toujours que l'utilisateur soit en voix, indépendamment de cette liste.\n" +"Les noms de commandes doivent être séparés par des espaces." + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "Liste des identifiants de rôle de serveur Discord qui sont accordés à ce groupe d'autorisations.\n" +"Cette option est ignorée si la liste des utilisateurs est définie." + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "Liste des identifiants de membres Discord qui reçoivent des autorisations dans ce groupe.\n" +"Cette option remplace GrantToRoles." + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "Le nombre maximum de chansons qu'un utilisateur est autorisé à mettre en file d'attente.\n" +"Une valeur de 0 signifie illimité." + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "Longueur maximale d'une chanson en secondes. Une valeur de 0 signifie illimité.\n" +"Cette permission ne peut pas être appliquée si la durée de la chanson n'est pas disponible." + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "Nombre maximum de chansons qu'une playlist est autorisée à avoir en file d'attente.\n" +"Une valeur de 0 signifie illimité." + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "Le nombre maximum d'éléments qui peuvent être retournés dans une recherche." + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "Autoriser les utilisateurs à mettre en file d'attente des listes de lecture ou plusieurs chansons à la fois." + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "Permettre aux utilisateurs de passer sans voter, si l'option de configuration LegacySkip est activée." + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "Permet à l'utilisateur de sauter une chanson en boucle." + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "Permet à l'utilisateur de supprimer toute chanson de la file d'attente.\n" +"Ne supprime pas ou ne saute pas les chansons en cours de lecture." + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "Ignorer les chansons ajoutées par les utilisateurs qui ne sont pas dans la voix lorsque leur chanson est jouée." + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "Permet à l'utilisateur d'ajouter des morceaux à la file d'attente lorsque le mode Karaoké est activé." + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "Invocation automatique au salon vocal de l'utilisateur lors de l'utilisation des commandes de lecture, si le bot n'est pas déjà dans la voix.\n" +"La commande d'invocation doit toujours être autorisée pour ce groupe !" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "Spécifiez les noms d'extracteurs yt-dlp, séparés par des espaces, qui sont autorisés à être utilisés.\n" +"Quand vide, des valeurs par défaut codées en dur sont utilisées. Les valeurs par défaut sont affichées ci-dessus, mais peuvent changer entre les versions.\n" +"Pour autoriser tous les extracteurs, ajoutez `%(allow_all)s` sans guillemets à la liste.\n\n" +"Services/extracteurs supportés par yt-dlp sont listés ici :\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites. d \n\n" +"MusicBot fournit également un service personnalisé `spotify:musicbot` pour activer ou désactiver l'extraction de l'API Spotify.\n" +"AVIS : MusicBot pourrait ne pas prendre en charge tous les services disponibles pour yt-dlp !\n" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "Vous n'avez pas la permission de lire le média demandé.\n" +"L'extracteur yt-dlp `%(extractor)s` n'est pas autorisé dans votre groupe." + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Impossible d'extraire les informations" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "Ceci est une liste de lecture." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Type de contenu invalide `%(type)s` pour l'URL : %(url)s" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "aucune donnée de durée" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "aucune donnée de durée dans l'entrée actuelle" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Les track_data non valides, doivent être de type `track` obtenu `%(type)s`" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Le statut de la réponse n'est pas correct : [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "La réponse JSON n'a pas décodé un dictionnaire !" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Impossible de rendre GET à l'URL : %(url)s Raison : %(raw_error)s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Impossible de faire POST à l'URL : %(url)s Raison : %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Impossible d'obtenir un jeton d'invité de Spotify, veuillez essayer de spécifier l'ID client et le secret du client" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "La réponse de l'API ne contient pas les données attendues. Clé manquante: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "La réponse de l'API contenait des données inattendues.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Demandé un jeton de Spotify, n'a pas fini par en obtenir un" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "Le statut de réponse de l'API n'est pas correct : [%(status)s] %(reason)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Seul le propriétaire peut utiliser cette commande." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Seuls les utilisateurs de dev peuvent utiliser cette commande." + diff --git a/i18n/hi_IN/LC_MESSAGES/musicbot_logs.mo b/i18n/hi_IN/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..228115742966aa1bdcd1ce8af73e2d7b37f8b061 GIT binary patch literal 514 zcmZ8eOHacv3?34v9yxOe5(kj*)@)^~I`zUHqS6M_R1mi*YqKt>OR6O0@k97$ocS%d z8+&2Na_rcj?ax1Fr(ZRc6V!9m%gRBy*_gHc#!smHiB_*Xu@I&3%(W3p21F{mDve0y z$~seCC~aYEGLgbvnHh*xK%B{A3_Z=6#RBLv%LCGMn;uXKu18!ypts=qu8WB<@!*saXy~rB?>o zDAukCn_aSbhF6kYgoIvqofl+5y<;s5MUG7y3&tCQ`m(WQaF(mg)C;8YI2WQma@IbG bZnv%$JP7|?==dyqtla?-uG8{d+Hq>X=d+uH literal 0 HcmV?d00001 diff --git a/i18n/hi_IN/LC_MESSAGES/musicbot_logs.po b/i18n/hi_IN/LC_MESSAGES/musicbot_logs.po new file mode 100644 index 000000000..7816e847c --- /dev/null +++ b/i18n/hi_IN/LC_MESSAGES/musicbot_logs.po @@ -0,0 +1,3932 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-04 08:15-0800\n" +"PO-Revision-Date: 2024-11-06 14:31\n" +"Last-Translator: \n" +"Language-Team: Hindi\n" +"Language: hi_IN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: hi\n" +"X-Crowdin-File: /fae/i18n/musicbot_logs.pot\n" +"X-Crowdin-File-ID: 26\n" + +#: musicbot/aliases.py:52 +msgid "Aliases file not found, copying example_aliases.json" +msgstr "" + +#: musicbot/aliases.py:56 +msgid "Error while loading alises.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "" + +#: musicbot/aliases.py:80 +#, python-format +msgid "Failed to load aliases file: %s" +msgstr "" + +#: musicbot/aliases.py:88 +#, python-format +msgid "Failed to parse aliases file: %s\n" +"Ensure the file contains valid JSON and restart the bot." +msgstr "" + +#: musicbot/aliases.py:114 +#, python-format +msgid "Aliases skipped for non-existent command: %(command)s -> %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "" + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "" + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "" + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "" + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "" + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "" + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "" + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "" + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "" + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "" + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "" + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "" + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "" + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "" + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "" + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "" + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "" + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "" + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "" + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "" + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "" + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "" + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "" + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "" + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "" + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "" + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "" + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "" + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "" + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "" + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "" + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient some how. You should probably restart the bot." +msgstr "" + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "" + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "" + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with url: %s" +msgstr "" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "" + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "" + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "" + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "" + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "" + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "" + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "" + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "" + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "" + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the autoplaylist extraction and bail." +msgstr "" + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "" + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "" + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "" + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "" + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "" + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-reponse object: %r" +msgstr "" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "" + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "" + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "" + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "" + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "" + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "" + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "" + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "" + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "" + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "" + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "" + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "" + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "" + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "" + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr "" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "" + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non-messagable channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for autojoin channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot autojoin a Private/Non-Guild channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot autojoin to non-connectable channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2451 +msgid "Autojoining voice channels:" +msgstr "" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not autojoining any voice channels" +msgstr "" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "" + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr "" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr "" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr "" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr "" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr "" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr "" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr "" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Nowplaying: %s" +msgstr "" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr "" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr "" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr "" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr "" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr "" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr "" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr "" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr "" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr "" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr "" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr "" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr "" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr "" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr "" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr "" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr "" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr "" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr "" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr "" + +#: musicbot/bot.py:2695 +#, python-brace-format +msgid "The requested song `{subject}` is blocked by the song blocklist." +msgstr "" + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "" + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "" + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from blocklist, not listed: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "" + +#: musicbot/bot.py:3152 +msgid "Ivalid sub-command given. Use `help blocksong` for usage examples." +msgstr "" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "" + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "" + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "" + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "" + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "" + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "" + +#: musicbot/bot.py:4159 +msgid "Detected a spotify URL, but spotify is not enabled." +msgstr "" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "" + +#: musicbot/bot.py:4191 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "" + +#: musicbot/bot.py:4208 +#, python-format +msgid "Youtube search returned no results for: %(url)s" +msgstr "" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with youtube:playlist as extractor key" +msgstr "" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "" + +#: musicbot/bot.py:4396 +#, python-format +msgid "Failed to exctract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "" + +#: musicbot/bot.py:5413 +msgid "The speed you proivded is invalid. Use a number between 0.5 and 100." +msgstr "" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "" + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "" + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "" + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "" + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double check the ID and try again." +msgstr "" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an errror:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "" + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "" + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "" + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "" + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "" + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "" + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "" + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "" + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "" + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "" + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "" + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "" + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "" + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "" + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "" + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "" + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "" + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "" + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "" + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "" + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "" + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "" + +#: musicbot/bot.py:8636 +#, python-brace-format +msgid "Guild attribute {name} is now: {a_val} -- Was: {b_val}" +msgstr "" + +#: musicbot/bot.py:8667 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config optoins file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "" + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "" + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "" + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "" + +#: musicbot/config.py:1240 +msgid "Acquired owner id via API" +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching OwnerID automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the OwnerID config option or try again later." +msgstr "" + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The OwnerID config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the OwnerID field." +msgstr "" + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "" + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "" + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "" + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "" + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "" + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "" + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "" + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "" + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "" + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "" + +#: musicbot/config.py:2551 +#, python-format +msgid "Blocklist file not found: %s" +msgstr "" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the blocklist file: %s" +msgstr "" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Blocklist with %s entires." +msgstr "" + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Blocklist with %s entries." +msgstr "" + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "" + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "" + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "" + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "" + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "" + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "" + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "" + +#: musicbot/downloader.py:436 +#, python-brace-format +msgid "Called extract_info with: '{song_subject}', {args}, {kwargs}" +msgstr "" + +#: musicbot/downloader.py:442 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "" + +#: musicbot/downloader.py:444 +msgid "Cannot continue extraction, event loop is closed." +msgstr "" + +#: musicbot/downloader.py:453 +msgid "Spotify URL is invalid or not supported." +msgstr "" + +#: musicbot/downloader.py:486 musicbot/downloader.py:507 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:490 +msgid "Download Error with stream URL" +msgstr "" + +#: musicbot/downloader.py:495 +msgid "Assuming content is a direct stream" +msgstr "" + +#: musicbot/downloader.py:503 +msgid "Cannot stream an invalid URL." +msgstr "" + +#: musicbot/downloader.py:514 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "" + +#: musicbot/downloader.py:541 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "" + +#: musicbot/downloader.py:557 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "" + +#: musicbot/downloader.py:577 +msgid "The local media file could not be found." +msgstr "" + +#: musicbot/downloader.py:615 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "" + +#: musicbot/downloader.py:620 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "" + +#: musicbot/downloader.py:849 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "" + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "" + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "" + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "" + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "" + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "" + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalised." +msgstr "" + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "" + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "" + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "" + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "" + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse I in normalise json." +msgstr "" + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse LRA in normalise json." +msgstr "" + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse TP in normalise json." +msgstr "" + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse thresh in normalise json." +msgstr "" + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse offset in normalise json." +msgstr "" + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "" + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "" + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "" + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "" + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "" + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "" + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "" + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "" + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "" + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "" + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "" + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "" + +#: musicbot/filecache.py:302 +msgid "Autoplaylist has no cache map, moving on." +msgstr "" + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded autoplaylist cache map with %s entries." +msgstr "" + +#: musicbot/filecache.py:314 +msgid "Failed to load autoplaylist cache map." +msgstr "" + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved autoplaylist cache map with %s entries." +msgstr "" + +#: musicbot/filecache.py:337 +msgid "Failed to save autoplaylist cache map." +msgstr "" + +#: musicbot/filecache.py:355 +#, python-format +msgid "Autoplaylist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Args Error: %s" +msgstr "" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/json.py:14 +#, python-format +msgid "Init JSON obj from file: %s" +msgstr "" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "" + +#: musicbot/logs.py:158 +msgid "Skipping logger setup, already set up" +msgstr "" + +#: musicbot/logs.py:314 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "" + +#: musicbot/logs.py:323 +#, python-format +msgid "Changing log level to: %s" +msgstr "" + +#: musicbot/logs.py:352 +msgid "MusicBot loggers have been called to shutdown." +msgstr "" + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:165 +msgid "OwnerID is set auto, will set correctly later." +msgstr "" + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "" + +#: musicbot/permissions.py:184 +msgid "Setting auto OwnerID for owner permissions group." +msgstr "" + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permssions file: %s" +msgstr "" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "" + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "" + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "" + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "" + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "" + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "" + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "" + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "" + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "" + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "" + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "" + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "" + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permissions error." +msgstr "" + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "" + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "" + +#: musicbot/player.py:521 +msgid "[Config:SaveVideos] Could not delete file, giving up and moving on" +msgstr "" + +#: musicbot/player.py:583 +#, python-format +msgid "Deserialize returned a non-MusicPlayer: %s" +msgstr "" + +#: musicbot/player.py:588 +msgid "Failed to deserialize player" +msgstr "" + +#: musicbot/player.py:650 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:660 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:668 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:697 +msgid "Unknown error decoding message from ffmpeg" +msgstr "" + +#: musicbot/player.py:701 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "" + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "" + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "" + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding youtube video because it is marked private or deleted: %s" +msgstr "" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "" + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spofity Album Next URL: %s" +msgstr "" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "" + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spofity Playlist Next URL: %s" +msgstr "" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "" + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client id and client secret" +msgstr "" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "" + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "" + +#: musicbot/utils.py:175 +msgid "Only the owner can use this command." +msgstr "" + +#: musicbot/utils.py:195 +msgid "Only dev users can use this command." +msgstr "" + +#: musicbot/utils.py:281 musicbot/utils.py:323 +msgid "Cannot count members when voice_channel is None." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading Youtube TV OAuth2 token data." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing Youtube TV OAuth2 token data" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:127 +msgid "validate ytdlp token..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:137 +msgid "init oauth for ytdlp" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:141 +msgid "Invalid cached OAuth2 token data." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:156 +msgid "Access token expired, refreshing" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:167 +msgid "handling oauth2" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:178 +msgid "Youtube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing Youtube cookies to yt-dlp." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:196 +msgid "refreshing oauth2 token" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:214 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:232 +msgid "Starting oauth2 flow..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:251 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:260 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:266 +msgid "Timed out while waiting for OAuth2 token." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:294 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:300 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:330 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:352 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "" + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "" + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "" + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "" + +#: run.py:180 +msgid "Error using -m method" +msgstr "" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "" + +#: run.py:229 +msgid "PIP failed due to Permissions Error." +msgstr "" + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "" + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "" + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "" + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "" + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "" + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "" + +#: run.py:361 +msgid "Required checks passed." +msgstr "" + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "" + +#: run.py:376 +msgid "Optional checks passed." +msgstr "" + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "" + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "" + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "" + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "" + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "" + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "" + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "" + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "" + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "" + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "" + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "" + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "" + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr "" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "" + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "" + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "" + +#: run.py:638 +msgid "Value must not be negative." +msgstr "" + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "" + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "" + +#: run.py:669 +msgid "Available via Github:" +msgstr "" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "" + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "" + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "" + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "" + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "" + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "" + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "" + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "" + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "" + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "" + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "" + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "" + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "" + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "" + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "" + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "" + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "" + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "" + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "" + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "" + +#: run.py:1169 +msgid "Error starting bot" +msgstr "" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "" + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "" + +#: run.py:1183 +msgid "All done." +msgstr "" + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "" + diff --git a/i18n/hi_IN/LC_MESSAGES/musicbot_messages.mo b/i18n/hi_IN/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..8cf2607a7a1f73fec6c57f5ad6531737a5c3aa90 GIT binary patch literal 518 zcmZ8eOHacv3)sId= z#$H&m96R=B`}5D~$=4CeG3puWMeU$mug%JS<0sVqM5|YxScp=1=Gq7)10t0zDkGA) zvd)y3N?RD4Or&sEWd>pu5NGljLr-&Nu>kta@_@A5mIsuA>k-!v=nc5O>tZ5I`J1SL z|L5Hj>IH4;jF_SaGjo# zmP^F?EO8#oKWwwinUGzQESWakhEMSj{9Rt%bHOzXWTH|bvw-+>VVy}{X_muK>B1lz z<;pc-t4r3;@KTcVkkG5H^MWj>cdUh>$gyd2!FW?pUp6-k&I)b}?qV7x(s`Hm~QXe^)v@%?@jOM1 %(max)s)" +msgstr "" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "" + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "" + +#: musicbot/bot.py:4396 +#, python-format +msgid "Failed to exctract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "" + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr "" + +#: musicbot/bot.py:4432 +msgid " Search youtube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr "" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "" + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "" + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "" + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "" + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "" + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "" + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "" + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "" + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "" + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "" + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "" + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "" + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "" + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "" + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "" + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "" + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "" + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "" + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "" + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "" + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr "" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "" + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "" + +#: musicbot/bot.py:5413 +msgid "The speed you proivded is invalid. Use a number between 0.5 and 100." +msgstr "" + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "" + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr "" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr "" + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr "" + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "" + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "" + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr "" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr "" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr "" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr "" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr "" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr "" + +#: musicbot/bot.py:5546 +msgid " Saves the current current value to the options file.\n" +msgstr "" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr "" + +#: musicbot/bot.py:5552 +msgid " Reset the option to it's default value.\n" +msgstr "" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "" + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "" + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "" + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "" + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "" + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "" + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "" + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "" + +#: musicbot/bot.py:6231 +msgid "Dump the individual urls of a playlist to a file." +msgstr "" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "" + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permisions of the mentioned user." +msgstr "" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double check the ID and try again." +msgstr "" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "" + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr "" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr "" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr "" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr "" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr "" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr "" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr "" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr "" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an errror:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "" + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customizse the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "" + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.Note: The API may limit name changes to twice per hour." +msgstr "" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr "" + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr "" + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "" + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "" + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "" + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "" + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr "" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr "" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr "" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr "" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr "" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "" + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "" + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "" + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr "" + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "" + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pin-point events in the MusicBot log file.\n" +msgstr "" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr "" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and args on objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update github pages and is thus unsuitable for normal reference use." +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "" + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "" + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "" + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "" + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "" + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "" + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "" + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "" + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "" + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "" + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f} ms` Avg.) in region `%(region)s`" +msgstr "" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "" + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr "" + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr "" + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "" + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "" + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "" + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "" + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "" + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "" + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "" + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "" + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "" + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "" + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "" + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "" + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "" + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "" + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "" + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "" + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "" + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "" + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "" + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "" + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "" + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "" + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "" + +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "" + +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "" + +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "" + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "" + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "" + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "" + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "" + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "" + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song blocklist." +msgstr "" + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "" + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "" + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "" + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "" + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "" + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "" + +#: musicbot/config.py:550 +#, python-brace-format +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track url for the currently playing track." +msgstr "" + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "" + +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "" + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "" + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format it's messages as embeds." +msgstr "" + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "" + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from tha auto playlist." +msgstr "" + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "" + +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "" + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "" + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "" + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "" + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "" + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "" + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "" + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "" + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "" + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "" + +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "" + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "" + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "" + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "" + +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "" + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "" + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "" + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "" + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "" + +#: musicbot/config.py:920 +msgid "Optional youtube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible youtube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "" + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "" + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "" + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "" + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "" + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "" + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "" + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "" + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config optoins file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching OwnerID automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the OwnerID config option or try again later." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The OwnerID config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the OwnerID field." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "" + +#: musicbot/downloader.py:444 +msgid "Cannot continue extraction, event loop is closed." +msgstr "" + +#: musicbot/downloader.py:453 +msgid "Spotify URL is invalid or not supported." +msgstr "" + +#: musicbot/downloader.py:486 musicbot/downloader.py:507 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:503 +msgid "Cannot stream an invalid URL." +msgstr "" + +#: musicbot/downloader.py:577 +msgid "The local media file could not be found." +msgstr "" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "" + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "" + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "" + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "" + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "" + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "" + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "" + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "" + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "" + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "" + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "" + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "" + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client id and client secret" +msgstr "" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/utils.py:175 +msgid "Only the owner can use this command." +msgstr "" + +#: musicbot/utils.py:195 +msgid "Only dev users can use this command." +msgstr "" + diff --git a/i18n/it_IT/LC_MESSAGES/musicbot_logs.mo b/i18n/it_IT/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..c9f60892dabf2ee2e985cee921a770b30428fbb5 GIT binary patch literal 114844 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 %(aliases)s" +msgstr "Alias saltati per il comando inesistente: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "Alias(es) saltato per dati alias non validi: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "Alias `%(alias)s` saltato come esiste già sul comando: %(command)s" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "Errore nel caricare il file di scaletta automatica: %s" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "Rimozione del brano non riproducibile dalla playlist, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "Rimozione del brano dalla playlist, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "Impossibile registrare le informazioni sulla rimozione dell'URL della playlist." + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "Aggiornamento file playlist..." + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "Salvataggio del file playlist non riuscito: %s" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "URL già in playlist %s, ignorando" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "Aggiunta di un nuovo URL alla playlist, %(playlist)s: %(track)s" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "Inizializzazione MusicBot %s" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "Loop è chiuso, impossibile creare task per: %r" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "Eccezione non gestita per l'attività: %r" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "Eccezione non gestita per l'attività: %(task)r -- %(raw_error)s" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "Spotify non ci ha fornito un token. Disattivazione." + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "Autenticato con Spotify con successo utilizzando l'ID client e segreto." + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "Impossibile avviare il client Spotify. Il tuo ID client e segreto sono corretti? Dettagli: %s. Continuare comunque in 5 secondi..." + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "La configurazione non ha le credenziali dell'applicazione Spotify, tentando di utilizzare la modalità ospite." + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "Autenticato con Spotify con successo utilizzando la modalità ospite." + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "Impossibile avviare il client Spotify usando la modalità ospite. Dettagli: %s." + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "Il plugin sperimentale Yt-dlp OAuth2 è abilitato. Questo potrebbe rompere in qualsiasi punto!" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "Inizializzato, ora si collega alla discordia." + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "Il test di rete ping è disabilitato tramite config." + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "Test ping di rete si sta chiudendo." + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "Impossibile risolvere il ping target." + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "Test ping di rete annullato." + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "Il test di rete tramite HTTP non ha una sessione in prestito." + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "Impossibile trovare l'eseguibile `ping` nel tuo ambiente." + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot non può trovare un percorso di comando `ping`. Tenterà invece di usare il ping HTTP.\n" +"MusicBot ha provato il seguente comando: %s\n" +"Dovresti abilitare il ping nel tuo ambiente di sistema o contenitore per ottenere i migliori risultati.\n" +"In alternativa disabilita il controllo di rete tramite config." + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot è stato negato il permesso di eseguire il comando `ping`. Tenterà invece di usare il ping HTTP.\n" +"MusicBot ha provato il seguente comando: %s\n" +"Dovresti abilitare il ping nel tuo ambiente di sistema o contenitore per ottenere i migliori risultati.\n" +"In alternativa disabilita il controllo di rete tramite config." + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "Il tuo ambiente potrebbe non consentire il comando di sistema `ping`. Tenterà invece di usare il ping HTTP.\n" +"MusicBot ha provato il seguente comando: %s\n" +"Dovresti abilitare il ping nel tuo ambiente di sistema o contenitore per ottenere i migliori risultati.\n" +"In alternativa disabilita il controllo di rete tramite config." + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "MusicBot rilevato rete è nuovamente disponibile." + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "VoiceClient non è connesso, in attesa di riprendere MusicPlayer..." + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "Riprendendo la riproduzione del giocatore: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "MusicBot ha rilevato un'interruzione di rete." + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "Pausa MusicPlayer a causa della disponibilità della rete: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "Alla ricerca del proprietario nella gilda: %(guild)s (voce obbligatoria: %(required)s) e ottiene: %(owner)s" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "Controllo della presenza di canali da auto-entrare o riprendere..." + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "Gilda non disponibile, impossibile entrare automaticamente: %(id)s/%(name)s" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "Trovato canale vocale riproducibile: %(channel)s nella gilda: %(guild)s" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "Proverà a riprendere la sessione vocale invece di entrare automaticamente nel canale: %s" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "Trovato proprietario nel canale vocale: %s" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "Ignorando il canale riattivabile, AutoSummon al proprietario nel canale: %s" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "Ignorando il canale Auto-Entra automatico, AutoSummon al proprietario nel canale: %s" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "Già connesso al canale: %(channel)s nella gilda: %(guild)s" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "Tentativo di entrare nel canale: %(channel)s nella gilda: %(guild)s" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "Scartare MusicPlayer e crearne uno nuovo..." + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "MusicBot renderà un nuovo MusicPlayer ora..." + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "Non entrando in %(guild)s/%(channel)s, non è un canale vocale supportato." + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "Completato il collegamento ai canali configurati." + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "Il membro non è abilitato alla voce e non può usare questo comando." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "Non puoi usare questo comando quando non è nel canale vocale." + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "Ottenere bot Application Info." + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "MusicBot non ha il permesso di connettersi nel canale: %s" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBot non ha il permesso di connettersi nel canale: `%(name)s`" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "MusicBot non ha il permesso di parlare nel canale: %s" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBot non ha il permesso di parlare nel canale: `%(name)s`" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "Riutilizzo di bot VoiceClient dalla gilda: %s" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "Forzare la disconnessione su VoiceClient obsoleto nella gilda: %s" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "Disconnessione fallita o annullata?" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "MusicBot non è in grado di connettersi al canale in questo momento: %(channel)s" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot non può connettersi al canale.\n" +"Riprova più tardi, o riavvia il bot se continua." + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "MusicBot ha un VoiceClient ora..." + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "Riprovare la connessione dopo un errore di timeout (%(attempt)s) durante il tentativo di connettersi a: %(channel)s" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "Il tentativo di connessione MusicBot VoiceClient è stato annullato. Nessun riprovo." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "La connessione MusicBot alla voce è stata annullata. Questo è strano. Forse riavviare?" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot non ha il permesso di parlare." + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "MusicBot non può richiedere di parlare." + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "Disconnettere un musicista nella gilda: %s" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "Scollegare VoiceClient prima di uccidere MusicPlayer." + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "La disconnessione non è riuscita o è stata annullata." + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "MusicBot ha un VoiceProtocol che non è un VoiceClient. Disconnettersi comunque..." + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "Disconnettere un VoiceClient canaglia nella gilda: %s" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "Disconnettere un non-guild VoiceClient..." + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "La lista MusicBot.voice_clients contiene un oggetto non-VoiceClient?\n" +"L'oggetto è in realtà di tipo: %s" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "Abbiamo ancora un lettore musicale nella gilda (%(guild_id)s): %(player)r" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "Gilda (%(guild)s) vuole un giocatore, opzionale: %(player)r" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." +msgstr "[BUG] MusicPlayer manca un VoiceClient in qualche modo. Probabilmente dovresti riavviare il bot." + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "MusicPlayer ha un VoiceClient che non è connesso." + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "MusicPlayer obj: %r" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "VoiceClient obj: %r" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "Ottenere un MusicPlayer per la gilda: %(guild)s Nel Canale: %(channel)s Crea: %(create)s Deserializza: %(serial)s" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "Giocatore creato tramite deserializzazione per la gilda %(guild_id)s con voci %(number)s" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "Il bot non è in un canale vocale.\n" +"Usa il comando summon per portare il bot sul tuo canale vocale." + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Qualcosa è sbagliato, non abbiamo ottenuto il VoiceClient." + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "Esecuzione on_player_play" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "Impostazione della gilda cronologia URL %(guild_id)s == %(url)s" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "Nessuna miniatura impostata per la voce con URL: %s" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "nessun canale in cui inserire il messaggio in riproduzione" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "ignorato il messaggio in riproduzione ora come era già stato pubblicato." + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "Esecuzione on_player_resume" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "Esecuzione on_player_pause" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "Esecuzione on_player_stop" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "Esecuzione on_player_finished_playing" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "Il ciclo di eventi è chiuso, nient'altro da fare qui." + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "Logout in corso, ignorando questo evento." + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "VoiceClient dice che non è connesso, niente altro che possiamo fare qui." + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "Il giocatore finito e la coda è vuota, lasciando il canale vocale..." + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "Caricando sopra la coda per ripulire le canzoni con l'autore mancante..." + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "Autore `%(user)s` assente, saltato (cancellato) dalla coda: %(song)s" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "Nessun brano riproducibile nella lista di riproduzione automatica della gilda, disabilitata." + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "Nessun contenuto nella playlist automatica. Riempimento con nuova musica..." + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "Caricamento sopra la playlist del giocatore..." + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "Errore durante l'elaborazione del brano \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "Errore nell'estrarre il brano \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr "MusicBot ha bisogno di fermare l'estrazione della playlist automatica e la cauzione." + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "MusicBot ha ottenuto un'eccezione non gestita nell'evento finito dal giocatore." + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "Espandendo playlist automatica con voci estratte da: %s" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "Errore nell'aggiungere il brano dalla playlist automatica: %s" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "Eccezione di dati per l'errore sopra:" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "Nessun brano riproducibile nella playlist automatica, disabilitato." + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "Esecuzione su_player_entry_added" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "Saltando automaticamente la voce della scaletta automatica per la voce in coda." + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "Eccezione MusicPlayer per la voce: %r" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "Eccezione di MusicPlayer." + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "Impossibile riprodurre la traccia della scaletta automatica: %r" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "Logout in corso, ignorando l'aggiornamento dello stato." + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "Aggiorna stato bot: %(status)s -- %(activity)r" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "Serializzazione della coda per %s" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "Deserializzazione della coda per %s" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "Scrittura del brano corrente per %s" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "Impossibile inviare l'oggetto non-risposta: %r" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Provato a inviare un oggetto di risposta non valido." + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "invio incorporato a: %s" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "invio del testo a: %s" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "Impossibile inviare il messaggio a \"%s\", nessun permesso" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "Impossibile inviare il messaggio a \"%s\", canale eliminato o non valido" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "Il messaggio è sopra il limite di dimensione del messaggio (%s)" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "Impossibile inviare un messaggio privato, inviando un canale di ripiego." + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "Vota il messaggio di invio limitato, riprovando in %s secondi." + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "Riprova messaggio annullato per: %s" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "Valuta il messaggio di invio limitato, ma non riprovare!" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "Impossibile inviare il messaggio nel canale di ripiego." + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "Impossibile inviare a causa di un errore HTTP." + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "Impossibile eliminare il messaggio \"%s\", nessun permesso" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "Impossibile eliminare il messaggio \"%s\", messaggio non trovato" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "Valuta l'eliminazione limitata dei messaggi, riprovando in %s secondi." + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "Valuta l'eliminazione del messaggio limitata, ma non riprova!" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "Eliminazione del messaggio non riuscita" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "Hai HTTPException cercando di eliminare il messaggio: %s" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "Impossibile modificare il messaggio \"%s\", messaggio non trovato" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "Invio messaggio invece" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "Valuta il messaggio di modifica limitato, riprovando in %s secondi." + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "Modifica messaggio annullata per: %s" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "Modifica del messaggio non riuscita" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "Hai HTTPException tentato di modificare il messaggio %s a: %s" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "Eliminazione annullata per il messaggio (ID: %(id)s): %(content)s" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "Ricevuto un segnale dal sistema operativo: %s" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "Scollegare e chiudere MusicBot..." + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "Eccezione lanciata durante la gestione del segnale di interruzione!" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "MusicBot sta ora facendo passi di arresto..." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Accesso API Discord non riuscito!\n\n" +"Problema:\n" +" MusicBot non è riuscito ad accedere all'API Discord.\n" +" Il tuo token potrebbe essere errato o potrebbe esserci un'interruzione dell'API.\n\n" +"Soluzione:\n" +" Assicurati di aver impostato il token corretto nella tua configurazione.\n" +" Controlla lo stato dell'API sul sito ufficiale: discordstatus.com" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "In attesa che le discussioni di download finiscano..." + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "Attenderà il compito: %(name)s (%(func)s)" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "Cercherà di annullare l'attività: %(name)s (%(func)s)" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "In attesa di attività..." + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "Chiusura Connettore HTTP." + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "Chiusura sessione aiohttp." + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "Il logout è stato chiamato." + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "Eccezione in %(event)s:\n" +"%(error)s" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "Eccezione in %s" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "MusicBot ha ripreso una sessione con discord." + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "Termina su_pronto" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "Accesso effettuato, ora ottenendo MusicBot pronto..." + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "ClientUser è in qualche modo nessuno, abbiamo ottenuto la bail..." + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "Proprietario: %(id)s/%(name)s#%(desc)s\n" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "Lista Gilda:" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr " - %s" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "Sinistra %s a causa del proprietario del bot non trovato" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "Non procedere con i controlli nei server %s a causa di indisponibilità" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "Il proprietario non può essere trovato in nessuna gilda (id: %s)\n" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "Proprietario sconosciuto, bot non è su alcuna gilda." + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "Per far entrare il bot in una gilda, incolla questo link nel tuo browser. \n" +"Nota: dovresti essere connesso al tuo account principale e avere i permessi \n" +"per gestire i server nella gilda che vuoi entrare nel bot.\n" +" %s" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "Non c'è nessuno per il canale collegato con ID: %d" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "Impossibile collegare al canale non Messaggiabile con ID: %d" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "Legato ai canali di testo:" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr " - %(guild)s/%(channel)s" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "Non associato a nessun canale di testo" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "Non c'è nessuno per entrare automaticamente nel canale con ID: %d" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "Impossibile entrare automaticamente in un canale Privato/Non-Gilda con ID: %d" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "Impossibile entrare automaticamente nel canale non connettibile con ID: %d" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr "Collegamento automatico canali vocali:" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "Non si unisce automaticamente a nessun canale vocale" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "Rilevato le opzioni di configurazione mancanti!\n\n" +"Problema:\n" +" Il file delle opzioni di configurazione manca di alcune opzioni.\n" +" Le impostazioni predefinite saranno utilizzate per queste opzioni.\n" +" Ecco un elenco di opzioni che non abbiamo trovato:\n" +" %(missing)s\n\n" +"Soluzione:\n" +" Copia nuove opzioni dal file delle opzioni di esempio.\n" +" Oppure usa il comando di configurazione per impostarli e salvarli.\n\n" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "L'evento on_ready ha sparato %s volte" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "Ottenere informazioni sull'applicazione." + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "Assicurare l'esistenza di cartelle dati" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "Convalida configurazione" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "Convalida configurazione permessi" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "Disabilitato" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "Abilitato" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "Opzione:" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr " Prefisso dei comandi: %s" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr " Volume predefinito: %d%%" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr " Salta soglia: %(num)d voti o %(percent).0f%%" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr " Riproduzione Di @mentions: %s" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr " Auto-Evocazione: %s" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr " Scaletta Automatica: %(status)s (ordine: %(order)s)" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "casuale" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "sequenziale" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr " Auto-Pausa: %s" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr " Elimina Messaggi: %s" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr " Elimina Invoking: %s" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr " Elimina In Riproduzione: %s" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr " Modalità Debug: %s" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr " I brani scaricati saranno %s" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr " Elimina se non utilizzato per %d giorni" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr " Elimina se la dimensione supera %s" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr " Messaggio di stato: %s" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr " Scrivi i brani attuali sul file: %s" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr " Autore insta-skip: %s" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr " Embeds: %s" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr " Integrazione Spotify: %s" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr " Salto legacy: %s" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr " Lascia non proprietari: %s" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr " Lascia Vc inattivo: %s" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr " Timeout: %s secondi" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr " Abbandona alla coda fine/vuota: %s" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr " Abbandona quando il giocatore è inattivo: %s" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr " Timeout: %d secondi" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr " Self Deafen: %s" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr " Prefisso di comando per server: %s" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr " Elenco Di Ricerca: %s" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr " Coda Round Robin: %s" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "La canzone richiesta `%(subject)s` è bloccata dalla lista dei brani." + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "Tentativo di gestire l'inattività del canale vocale, ma Bot non è in voce..." + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "Attività canale già in attesa nella gilda: %s" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Attività del canale in attesa di %(time)d secondi per lasciare il canale: %(channel)s" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "Il timer di attività del canale per %s è scaduto. Disconnessione." + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Timer attività canale annullato per: %(channel)s in %(guild)s" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "Ignorare l'inattività del giocatore nel canale auto-entrato: %s" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "Timer attività giocatore già in attesa nella gilda: %s" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Timer attività giocatore in attesa di %(time)d secondi per lasciare il canale: %(channel)s" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "Il timer di attività del giocatore per %s è scaduto. Disconnessione." + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Timer attività giocatore annullato per: %(channel)s in %(guild)s" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "Il timer dell'attività del giocatore è in fase di ripristino." + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "Comando inesistente" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "È necessario menzionare un utente o fornire il loro numero di identità." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Sottocomando fornito non valido. Usa `help blockuser` per esempi di utilizzo." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot non ha trovato gli utenti specificati." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "Il proprietario non può essere aggiunto all'elenco dei blocchi." + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "Non aggiungere l'utente alla lista di blocchi, già bloccato: %(id)s/%(name)s" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "Non rimuovere l'utente dalla lista dei blocchi, non elencato: %(id)s/%(name)s" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "Non è possibile aggiungere gli utenti elencati, sono già aggiunti." + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Devi fornire un oggetto del brano se nessuna canzone è attualmente in riproduzione." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Sottocomando fornito non valido. Usa `help blocksong` per esempi di utilizzo." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "L'oggetto `%(subject)s` è già nella lista dei brani." + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "L'oggetto non è nell'elenco dei brani e non può essere rimosso." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Sottocomando fornito non valido. Usa `help autoplaylist` per esempi di utilizzo." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "Il link del brano fornito non è valido" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "La coda è vuota. Aggiungi alcuni brani con un comando di riproduzione!" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Questo brano è già nella playlist automatica." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Questa canzone non è ancora nella playlist automatica." + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "È necessario fornire un nome file playlist." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "Non sei autorizzato a richiedere playlist" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "La playlist ha troppe voci (%(songs)s ma il massimo è %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "Le voci della playlist supereranno il limite della tua coda.\n" +"Ci sono %(songs)s nella lista, e %(queued)s già in coda.\n" +"Il limite è %(max)s per il tuo gruppo." + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "Ignorare la pausa automatica a causa dell'interruzione della rete." + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "MusicPlayer non ha VoiceClient o non ha dati di canale, non è possibile elaborare la pausa automatica." + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "Elaborazione della pausa automatica, ignorando questo evento." + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "%sVoiceClient non connesso, in attesa di %s secondi per gestire la pausa automatica nella gilda: %s" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "Auto-pausa attesa è stata annullata." + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "Un nuovo MusicPlayer è in fase di connessione, ignorando il vecchio evento di pausa automatica." + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "Riproduzione in un canale vocale vuoto, in pausa automatica per gilda: %s" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "Il giocatore precedentemente in pausa automatica è in pausa per la gilda: %s" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "Impossibile usare la ricerca se non c'è niente di giocare." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "Impossibile usare la ricerca sulla traccia corrente, ha una durata sconosciuta." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "La ricerca non è supportata per gli streaming." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "Impossibile usare la ricerca senza un tempo per posizionare la riproduzione." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "Impossibile convertire `%(input)s` in un tempo valido in secondi." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "Impossibile cercare `%(input)s` (`%(seconds)s` secondi) nella traccia corrente con una lunghezza di `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Sottocomando non valido. Usa il comando `help repeat` per gli esempi di utilizzo." + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "Il giocatore non si sta caricando." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Le posizioni brano devono essere intere!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "Hai dato una posizione fuori dalla dimensione della playlist!" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "Impossibile richiedere la riproduzione della playlist, nessun messaggio a cui aggiungere reazioni." + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "La riproduzione multimediale locale non è abilitata." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "L'URL di Spotify non è valido o non è attualmente supportato." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Rilevato un URL Spotify, ma Spotify non è abilitato." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Hai raggiunto il limite di canzone in coda (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "La modalità Karaoke è abilitata, riprova quando è disabilitata!" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "Problema con extract_info(): " + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Impossibile estrarre le informazioni a causa di errore:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Questo video non può essere riprodotto. Prova a usare il comando streaming." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "La ricerca su YouTube non ha prodotto alcun risultato per: %(url)s" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "Elaborato %(number)d di %(total)d canzoni in %(time).3f secondi in %(time_per).2f s/song" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "Nessuna canzone aggiunta, tutte le canzoni hanno una durata massima (%(max)s secondi)" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "Estratto una voce con 'youtube:playlist' come chiave estrattore" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "La durata del brano supera il limite (%(length)s > %(max)s)" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "Aggiunti brani alla posizione %s" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "Impossibile stimare il tempo di riproduzione per la posizione: %d" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "Recupero delle informazioni dalla richiesta dello stream non riuscito: %s" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Le playlist in streaming non sono ancora supportate." + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Hai raggiunto il limite di elementi della playlist (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Specifica una query di ricerca. Usa `help search` per maggiori informazioni." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "Non puoi cercare più di %(max)s video" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "In attesa del blocco della voce: %s" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "Evoca blocco acquisito per: %s" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "Non sei connesso alla voce. Prova ad unirti a un canale vocale!" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "Entrare In %(guild)s/%(channel)s" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot non può seguire un utente che non è un membro del server." + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Il giocatore non sta giocando." + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Niente nella coda da rimuovere!" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "Niente trovato nella coda dall'utente `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "Non hai il permesso di rimuovere questa voce dalla coda.\n" +"Devi essere colui che l'ha accodata o che ha i permessi di salto istantanei." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Numero di voce non valido. Usa il comando coda per trovare le posizioni della coda." + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Impossibile saltare! Il giocatore non sta giocando!" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "Non hai il permesso di forzare un brano in loop." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "Non hai il permesso di forzare il salto." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "Non hai il permesso di saltare una canzone in loop." + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` non è un numero valido" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Variazione di volume irragionevole fornita: %(old_volume)s%(adjustment)s è %(new_volume)s.\n" +"Il volume può essere impostato solo da 1 a 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Volume irragionevole fornito: %(volume)s. Fornire un valore compreso tra 1 e 100." + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "Nessuna traccia in riproduzione, non è possibile impostare la velocità.\n" +"Utilizzare il comando di configurazione per impostare una velocità di riproduzione predefinita." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "La velocità non può essere applicata ai media in streaming." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Devi fornire una velocità da impostare." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "La velocità fornita non è valida. Usa un numero compreso tra 0.5 e 100." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Opzione non valida per il comando: `%(option)s`" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Impossibile salvare gli alias a causa di errore:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Devi fornire un alias e un comando all'alias" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Devi fornire un nome alias da rimuovere." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "L'alias `%(alias)s` non esiste." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "La configurazione non può usare le menzioni del canale e dell'utente allo stesso tempo." + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Impossibile ricaricare la configurazione a causa del seguente errore:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Impossibile risolvere il nome della sezione dal nome dell'opzione. Si prega di fornire una sezione e un nome di opzione validi." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "L'opzione data è ambigua, si prega di fornire un nome di sezione." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Devi fornire un nome di sezione e un nome di opzione per questo comando." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "La sezione `%(section)s` non è disponibile.\n" +"Le sezioni disponibili sono: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "L'opzione `%(option)s` non è disponibile." + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "L'opzione `%(option)s` non è modificabile. Impossibile salvare sul disco." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Impossibile salvare l'opzione: `%(option)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "L'opzione `%(option)s` non è modificabile, il valore non può essere visualizzato." + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "L'opzione `%(option)s` non è modificabile. Impossibile aggiornare l'impostazione." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Devi fornire una sezione, un'opzione e un valore per questo sottocomando." + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "Impostazione con %(config)s == %(value)s" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "L'opzione `%(option)s` non è stata aggiornata!" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "L'opzione `%(option)s` non è modificabile. Impossibile ripristinare il valore predefinito." + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "Ripristino %(config)s a predefinito %(value)s" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "L'opzione `%(option)s` non è stata ripristinata al predefinito!" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "Il comando opzione è deprecato, utilizza invece il comando di configurazione." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Opzione specificata non valida, usa: info, aggiornamento o cancella" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Non riuscito** per eliminare la cache, controlla i log per ulteriori informazioni..." + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "L'argomento pagina coda deve essere un numero intero." + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "Non ci sono brani in coda! Coda qualcosa con un comando di riproduzione." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "Il numero di pagina richiesto è fuori dai limiti.\n" +"Ci sono ** pagine%(total)s**." + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "Ha saltato la voce attuale della scaletta." + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "Non ci sono abbastanza voci per paginare la coda." + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "Impossibile postare il messaggio in coda, nessun messaggio a cui aggiungere reazioni." + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Riprova. MusicBot non ha potuto fare o ottenere un riferimento al messaggio di coda.\n" +"Se il problema persiste, file una segnalazione di bug." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Impossibile usare lo spurgo sul canale DM privato." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "L'URL fornito non era un URL valido." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Impossibile estrarre le informazioni dall'url di input\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "Questa non sembra essere una playlist." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "ID utente o soprannome del server non validi, si prega di ricontrollare l'ID e riprovare." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Impossibile determinare l'utente discord. Riprova." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Le autorizzazioni non possono usare le menzioni del canale e dell'utente allo stesso tempo." + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Impossibile ricaricare i permessi a causa di un errore:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Devi fornire un nome di gruppo o di opzione per questo comando." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Devi fornire un gruppo, un'opzione e un valore da impostare per questo comando." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "Il sottocomando %(option)s richiede un nome di gruppo e di permesso." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "Il gruppo `%(group)s` non è disponibile.\n" +"I gruppi disponibili sono: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "Il permesso `%(option)s` non è disponibile." + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Impossibile aggiungere il gruppo `%(group)s` che esiste già." + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Impossibile rimuovere il gruppo integrato." + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "Il gruppo proprietario non è modificabile." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Impossibile salvare il gruppo: `%(group)s`" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "Impostazione %(option)s con valore: %(value)s" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Il permesso `%(option)s` non è stato aggiornato!" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Impossibile modificare il nome utente. Hai cambiato i nomi troppe volte?\n" +"Ricorda che i cambiamenti di nome sono limitati a due volte all'ora.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Impossibile modificare il nome utente a causa di errore: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Impossibile cambiare il soprannome: nessun permesso." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Impossibile impostare il soprannome a causa di errore: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Le emoji personalizzate devono provenire da questo server per essere utilizzate come prefisso." + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Prefisso per server non è abilitato!\n" +"Usa il comando di configurazione per aggiornare il prefisso." + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "È necessario fornire un URL o allegare un file." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Impossibile cambiare l'avatar a causa dell'errore: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "MusicBot ha trovato un %s senza gilda! Questo potrebbe essere un problema." + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Attualmente non connesso al server `%(guild)s`" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Opzione fornita non valida, usa una di: soft, full, upgrade, uppip, or upgit" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Devi fornire un ID o un nome." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "Nessuna gilda trovata con l'ID o il nome `%(input)s`" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "Attivazione ID breakpoint di debug: %(uuid)s" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Impossibile importare `objgraph`, è installato?" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "Codice di debug eseguito con eval()." + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "Il codice di debug è funzionato con exec()." + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "Impossibile eseguire il codice di debug." + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Esecuzione del codice di debug non riuscita:\n" +"%(py_code)s\n" +"Eccezione: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "Il sottocomando deve essere uno di: %(options)s" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Impossibile individuare git eseguibile." + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "Impossibile controllare gli aggiornamenti tramite il comando git." + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "Pacchetto meta mancante nel rapporto pip." + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "Impossibile ottenere lo stato di aggiornamento dei pip a causa di qualche errore." + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "Ottenuto una strana voce client vocale." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookie già abilitati." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "I cookie devono essere caricati per essere abilitati. (File dei cookie)." + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Impossibile abilitare i cookie a causa di errore: %(raw_error)s" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Impossibile rinominare il file cookie a causa di errore: %(raw_error)s\n" +"I cookie sono temporaneamente disabilitati e saranno riattivati al prossimo riavvio." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "Non sono stati trovati caricamenti allegati, riprova durante il caricamento di un file di cookie." + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "Impossibile rimuovere il vecchio file cookie disabilitato: %(raw_error)s" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Errore nel scaricare il file dei cookie da discord: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Impossibile salvare i cookie sul disco: %(raw_error)s" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "Hai un messaggio senza canale, in qualche modo: %s" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "Ignorare il comando da me stesso (%s)" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "Ignora il comando da un altro bot (%s)" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "Ignora il comando dal canale di tipo: %s" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "Utente nella lista dei blocchi: %(id)s/%(name)s comando provato: %(command)s" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "Messaggio da %(id)s/%(name)s: %(message)s" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Questo comando non è consentito per il tuo gruppo di permessi: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Questo comando richiede di essere in un canale vocale." + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "Utilizzo del comando non valido, valori mancanti per i parametri: %(params)r" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "Errore in %(command)s: %(err_name)s: %(err_text)s" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "Eccezione durante la gestione del comando: %(command)s" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "Impossibile generare l'aiuto per il comando mancante: %s" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "Dati di aiuto mancanti per il comando: %s" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "Lasciare il canale vocale %s in %s a causa di inattività." + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "MusicBot si è connesso." + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "MusicBot è stato disconnesso." + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "Ottenuto un Evento Socket: %s" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "Stato vocale aggiornato prima del termine _pronto" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "Ignorare %s in %s in quanto è un canale vocale collegato." + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "%s è stato rilevato come timeout vuoto." + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "Un utente si è unito %s, annullando il timer." + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "Il bot è stato spostato e il canale vocale %s è vuoto. Timeout gestione." + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "Il bot è stato spostato e il canale vocale %s non è vuoto." + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "Non più seguendo l'utente %s" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "Seguire l'utente `%(user)s` al canale: %(channel)s" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "VoiceState disconnetti before.channel non è nessuno." + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "Disconnesso dalla voce dall'API di Discord in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "Impossibile usare il canale di auto-join con il tipo: %(type)s nella gilda: %(guild)s" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "Impossibile trovare il canale di accesso automatico, è stato eliminato? Gilda: %s" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "Riconnessione alla gilda auto-entrata sul canale: %s" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "Impossibile entrare automaticamente nel canale: %s" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "Il bot è stato aggiunto alla gilda: %s" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "Gilda sinistra '%s' a causa del proprietario del bot non trovato." + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "Creazione cartella dati per la gilda %s" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "Il bot è stato rimosso dalla gilda: %s" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "Lista gilda aggiornata:" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "Gilda \"%s\" è diventato disponibile." + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "Riprendere il giocatore in \"%s\" a causa della disponibilità." + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "Gilda \"%s\" non è disponibile." + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "Pausa giocatore in \"%s\" a causa di indisponibilità." + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "Aggiornamento gilda per: %s" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "L'attributo della Gilda %(attr)s è ora: %(new)s -- Era %(old)s" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "Aggiornamento canale per: %(channel)s -- %(changes)s" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "Creazione %s" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "Caricamento configurazione da: %s" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Errore durante la lettura della configurazione.\n\n" +"Problema:\n" +" Mancano una o più sezioni di opzioni di configurazione richieste.\n" +" Le sezioni mancanti sono: Soluzione\n" +" %(sections)s\n\n" +":\n" +" Riparare il file delle opzioni di configurazione.\n" +" Ogni [Section] deve apparire una sola volta, senza nessun altro testo sulla stessa riga.\n" +" Ogni sezione deve avere almeno un'opzione.\n" +" Utilizzare le opzioni di esempio come modello o copiarlo dal repository." + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "Impossibile memorizzare più di file di log %s . L'opzione LogsMaxKept sarà limitata." + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "Opzione di configurazione LogsDateFormat è vuoto e questo interromperà la rotazione del file di registro. Usando invece predefinito." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Errore durante la convalida delle opzioni di configurazione.\n\n" +"Problema:\n" +" Opzione di configurazione AudioCachePath non è una directory.\n\n" +"Soluzione:\n" +" Assicurati che il percorso configurato sia un percorso per una cartella / directory." + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "È stata lanciata un'eccezione durante la convalida di AudioCachePath." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Errore durante la convalida delle opzioni di configurazione.\n\n" +"Problema: l'opzione di configurazione\n" +" AudioCachePath non può essere impostata a causa di un errore:\n" +" %(raw_error)s\n\n" +"Soluzione:\n" +" Doppio controllo l'impostazione è valida, percorso directory accessibile." + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "La cache audio sarà memorizzata in: %s" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Errore durante la lettura delle opzioni di configurazione.\n\n" +"Problema:\n" +" Nessun bot Token è stato specificato nelle opzioni di configurazione o ambiente.\n\n" +"Soluzione:\n" +" Imposta l'opzione di configurazione Token o imposta la variabile di ambiente %(env_var)s con un token App." + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "L'opzione di configurazione statusMessage è troppo lunga, sarà limitata a 128 caratteri." + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "La velocità di riproduzione predefinita deve essere compresa tra 0.5 e 100.0. Il valore di opzione di %.3f sarà limitato." + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "Rilevato file TXT cookie. MusicBot li passerà a yt-dlp.\n" +"I cookie non sono raccomandati, potrebbero non essere supportati e potrebbero rompersi completamente.\n" +"La copia dei cookie dal tuo browser web rischia di esporre i dati personali e \n" +"nel migliore dei casi può comportare il divieto dei tuoi account!\n\n" +"Sei stato avvisato! Buona Fortuna! \\U0001F596\n" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "Validazione delle opzioni con i dati del servizio..." + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "ID proprietario acquisito tramite API" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Errore durante il recupero automatico di 'OwnerID'.\n\n" +"Problema:\n" +" Le informazioni Discord App non sono disponibili.\n" +" Potrebbe trattarsi di un'interruzione temporanea delle API o di un bug. Soluzione\n\n" +":\n" +" Imposta manualmente l'opzione di configurazione 'OwnerID' o riprova più tardi." + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "MusicBot non ha un'istanza utente, non può procedere." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Errore nella convalida delle opzioni di configurazione.\n\n" +"Problema:\n" +" La configurazione 'OwnerID' è la stessa del tuo Bot / ID app.\n\n" +"Soluzione:\n" +" Non utilizzare il Bot o l'App ID nel campo 'OwnerID'." + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "File delle opzioni di configurazione non trovato. Verifica la presenza di alternative..." + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "Rinomina %(ini_file)s in %(option_file)s, probabilmente dovresti attivare le estensioni dei file." + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "Copia del file delle opzioni di esempio esistenti: %(example_file)s" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "Generato un nuovo %(example_file)s e copiato in %(option_file)s" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "Qualcosa è andato storto durante il tentativo di trovare un file di opzione di configurazione." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Errore nella localizzazione della configurazione.\n\n" +"Problema:\n" +" Impossibile trovare o creare un file di configurazione a causa di un errore:\n" +" %(raw_error)s\n\n" +"Soluzione:\n" +" Verifica che la cartella di configurazione e i file esistano e possono essere letti da MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Errore nel caricamento della configurazione.\n\n" +"Problema:\n" +" MusicBot non ha potuto leggere il file di configurazione a causa di un errore:\n" +" %(raw_error)s\n\n" +"Soluzione:\n" +" Assicurarsi che il file sia accessibile e privo di errori.\n" +" Copiare il file di esempio dal repo se tutto il resto fallisce." + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "Dev Bug! L'opzione di configurazione ha getter che non è disponibile." + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "Dev Bug! L'opzione di configurazione ha tipo non valido, getter e predefinito deve essere lo stesso tipo." + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "L'opzione mancava in precedenza." + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "Sezione di configurazione non in configurazione analizzata! Mancante: %s" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "Opzione di configurazione salvata: %(config)s = %(value)s" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "Salvataggio della configurazione non riuscito: %s" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "I nomi delle opzioni non sono univoci tra le sezioni INI! Resolver è disabilitato." + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "Impossibile salvare il file INI predefinito in: %s" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Errore nel caricamento del valore di configurazione.\n\n" +"Problema:\n" +" L'ID proprietario in [%(section)s] > %(option)s non è valido.\n\n" +"Soluzione:\n" +" Imposta %(option)s su un ID numerico o impostalo su `auto` o `0` per il binding automatico del proprietario." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Errore nel caricamento del valore di configurazione.\n\n" +"Problema:\n" +" L'opzione di configurazione [%(section)s] > %(option)s non è una posizione valida del file.\n\n" +"Soluzione:\n" +" Controlla l'impostazione del percorso e assicurati che il file esista ed sia accessibile a MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Errore nel caricamento del valore di configurazione.\n\n" +"Problema:\n" +" Uno degli ID nell'opzione [%(section)s] > %(option)s non è valido.\n\n" +"Soluzione:\n" +" Assicurati che tutti gli ID siano numerici e separati solo da spazi o virgole." + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "Opzione DebugLevel \"%(value)s\" non valida, tornando al livello: %(fallback)s" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "Opzione [%(section)s] > %(option)s ha valore di configurazione non valido '%(value)s' usando invece predefinito." + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "Opzione [%(section)s] > %(option)s ha un valore maggiore di 100 %% (%(value)s) e sarà invece impostato su %(fallback)s." + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "Rinomina la voce del file INI [%(old_s)s] > %(old_o)s in [%(new_s)s] > %(new_o)s" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "Aggiornamento file di configurazione con opzioni rinominate..." + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "Impossibile aggiornare la configurazione. Dovrai aggiornarla manualmente." + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "File elenco blocco non trovato: %s" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "Impossibile caricare l'elenco dei blocchi dal file: %s" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "Impossibile aggiornare il file elenco blocchi: %s" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr "Lista Blocco utente caricata con voci %s." + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "Abbiamo trovato un file di blacklist legacy, che verrà rinominato in: %s" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr "Caricato un elenco di blocchi brani con voci %s." + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "Impossibile caricare i dati per la gilda con ID 0. Probabilmente è un bug nel codice!" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "Nessun file per la gilda %(id)s/%(name)s" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "Caricamento dei dati della gilda con ID: %(id)s/%(name)s" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "Un errore OS ha impedito di leggere il file dati della gilda: %s" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "La Gilda %(id)s/%(name)s ha il prefisso del comando personalizzato: %(prefix)s" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "Impossibile salvare i dati per la gilda con ID 0. Probabilmente è un bug nel codice!" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "Impossibile salvare i dati specifici della gilda a causa di un errore del sistema." + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "Impossibile serializzare i dati specifici della gilda a causa di dati non validi." + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "Forzare YTDLP per utilizzare l'agente utente: %s" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "MusicBot utilizzerà i cookie per yt-dlp da: %s" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "Yt-dlp userà il tuo server proxy configurato." + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "Il plugin originale OAuth2 è installato e verrà utilizzato al suo posto.\n" +"Questo potrebbe far sì che MusicBot non si chiuda completamente, o appenda l'autorizzazione in sospeso!\n" +"Per chiudere MusicBot, devi uccidere manualmente il processo MusicBot!\n" +"Yt-dlp è impostato per mostrare avvisi e altri messaggi di registro, per mostrare il codice Auth.\n" +"Disinstalla il pacchetto yt-dlp-youtube-oauth2 per utilizzare invece le funzionalità integrate di OAuth2." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD sembra non avere intestazioni..." + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "Controllo intestazioni multimediali non riuscito a causa del timeout." + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "Richiesta HEAD non riuscita per: %s" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "Richiesta di eccezione HEAD: " + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "Informazioni Di Estrazione Ytdl Sanitizzate (non Json):\n" +"%s" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "Informazioni Di Estrazione Ytdl Sanitizzate (non Json): %s" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "L'estrazione di informazioni brano non ha restituito dati." + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "Chiamato extract_info con: '%(subject)s', %(args)s, %(kws)s" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "Impossibile eseguire l'estrazione, il ciclo è chiuso. (Questo è normale in caso di arresti)" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Impossibile continuare l'estrazione, il ciclo dell'evento è chiuso." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "Spotify URL non è valido o non supportato." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Errore in yt-dlp durante il download dei dati: %(raw_error)s" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "Errore di download con URL dello stream" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "Supponendo che il contenuto sia uno stream diretto" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Impossibile trasmettere un URL non valido." + +#: musicbot/downloader.py:517 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "Catturato NoSupportingHandlers, riprovando dopo aver sostituito colon con spazio." + +#: musicbot/downloader.py:544 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "Estrattore youtube:search ha restituito il risultato di un singolo ingresso, sostituendo le informazioni di base con le informazioni di entrata." + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "Chiamato safe_extract_info con: %(args)s, %(kws)s" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "Impossibile trovare il file multimediale locale." + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "Manca __input_subject da YtdlpResponseDict" + +#: musicbot/downloader.py:623 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "Le voci non sono una lista in YtdlpResponseDict, set process=True per evitare questo." + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "Attenzione, errore di durata per: %(url)s" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "modulo 'pymediainfo' non trovato, cadrà di nuovo a ffprobe." + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "Creato il futuro per %r" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "Futures completati per %(entry)r con %(callback)r" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "Eccezione non gestita in _for_each_future callback." + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "Avviare asyncio sottoprocesso (%(process)s) con comando: %(run)s" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "L'estrazione non ha fornito una durata per questa voce.\n" +"MusicBot non può stimare i tempi di coda finché non viene scaricata.\n" +"Nome voce: %s" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "I dati dell'elemento sono mancanti numero di versione, impossibile deserializzare." + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "I dati dell'elemento hanno il numero di versione sbagliato, non è possibile deserializzare." + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "L'URLPlaylistEntry deserializzato non può trovare il canale con ID: %s" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "L'URLPlaylistEntry deserializzato ha il tipo di canale sbagliato: %s" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "L'URLPlaylistEntry deserializzato non può trovare l'autore con ID: %s" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "URLPlaylistEntry deserializzato ha un ID autore ma nessun canale per la ricerca!" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "Impossibile caricare %s" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Impossibile scaricare i collegamenti di Spotify, errore di elaborazione con il tipo: %(type)s" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "Preparazione per l'ingresso: %r" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "Scarica la cache con diverse estensioni..." + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "Dimensione locale diversa dalla dimensione remota. Ricaricamento..." + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "Download già memorizzato in: %s" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "MusicBot non può ottenere dati di durata per questa voce. La stima del tempo in coda\n" +"potrebbe non essere disponibile fino a quando questa traccia non sarà stata cancellata.\n" +"File di ingresso: %s" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "Durata di %(time)s secondi per il file: %(file)s" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." +msgstr "C'è un problema con il lavoro EQ, probabilmente causato da una strana installazione di FFmpeg. Questo non ha influenzato la capacità del bot di funzionare, ma significa che le tue tracce non saranno equalizzate." + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "Eccezione durante il controllo dei dati di inserimento." + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "Tentativo di ottenere durata tramite pymediainfo per: %s" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "Impossibile ottenere la durata tramite pymediainfo." + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "Tentativo di ottenere durata tramite ffprobe per: %s" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "Impossibile individuare ffprobe nel tuo percorso!" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "ffprobe ha restituito qualcosa che non poteva essere utilizzato." + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "ffprobe non può essere eseguito per qualche ragione." + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "Calcolo del volume medio di: %s" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "Impossibile individuare ffmpeg sul tuo percorso!" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr "Impossibile analizzare 'I' nel normalizzare json." + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr "Impossibile analizzare 'LRA' nella normalizzazione json." + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr "Impossibile analizzare 'TP' nel normalizzare json." + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr "Impossibile analizzare 'thresh' nella normalizzazione json." + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr "Impossibile analizzare 'offset' nel normalizzare json." + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "Download avviato: %r" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "Scarica tentativo %s di 3..." + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "Download incompleto, riprovando in %(time).1f secondi. Motivo: %(raw_error)s" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "Download fallito, non riprovare! Motivo: %(raw_error)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Il download non è stato completato a causa di un errore: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Download fallito a causa di un errore yt-dlp: %(raw_error)s" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "L'estrazione ha incontrato un'eccezione non gestita." + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Download fallito a causa di un'eccezione non gestita: %(raw_error)s" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "Download non riuscito: %r" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Estrazione dei dati per il supporto richiesto non riuscita." + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "Download completato: %r" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "StreamPlaylistEntry deserializzato non può trovare il canale con ID: %s" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "StreamPlaylistEntry deserializzato ha il tipo di canale sbagliato: %s" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "StreamPlaylistEntry deserializzato non può trovare l'autore con ID: %s" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized StreamPlaylistEntry ha un ID autore ma nessun canale per la ricerca!" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "LocalFilePlaylistEntry deserializzato non riesce a trovare il canale con ID: %s" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "Deserializzato LocalFilePlaylistEntry ha il tipo di canale sbagliato: %s" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized LocalFilePlaylistEntry non può trovare l'autore con ID: %s" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized LocalFilePlaylistEntry ha un ID autore ma nessun canale per la ricerca!" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "Durata di %(seconds)s secondi per il file: %(file)s" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "Eliminazione del file cache non riuscita: %s" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "La directory della cache audio è stata rimossa." + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "La directory della cache audio non può essere rimossa o rinominata." + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "La directory della cache audio non può essere rimossa." + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "La cache audio non ha limiti impostati, niente da eliminare." + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "Cache audio cancellato %(number)s file(s), totale %(size)s rimosso." + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "File memorizzati nella cache %(number)s dalla playlist automatica, totale di %(size)s mantenuto." + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "La cache audio ora è %(size)s su %(number)s file." + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "Manca la directory della cache audio, niente da eliminare." + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "Il file cache audio è dalla scaletta automatica, ma contrassegnato come busted, ignorandolo." + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "Il livello della cache richiede la pulizia. %s" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr "La playlist automatica non ha mappa cache, in movimento." + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr "Mappa cache playlist automatica caricata con voci %s." + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr "Impossibile caricare la mappa della cache della playlist automatica." + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr "Mappa della cache della scaletta automatica salvata con voci %s." + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr "Impossibile salvare la mappa della cache della playlist automatica." + +#: musicbot/filecache.py:355 +#, python-format +msgid "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "Conflitto della mappa della cache della scaletta automatica sulla chiave: %(file)s Vecchio: %(old)s Nuovo: %(new)s" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "Errore Argomento Lang: %s" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "Impossibile caricare le traduzioni del log per uno qualsiasi di: [%s] in: %s" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "Caricamento delle traduzioni discord non riuscito per uno qualsiasi di: [%s] in: %s" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "Caricamento file JSON: %s" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "Errore nell'analizzare %s come JSON" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "Impossibile catturare i dati dalla chiave JSON: %s" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "Impossibile impostare il logger, già impostato" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "Il livello di log è stato precedentemente impostato tramite override a: %s" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "Cambiare il livello del log in: %s" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr "I logger di MusicBot sono stati chiamati a chiudere." + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "File di permessi non trovato, copia da: %s" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "Errore nel copiare il file dei permessi di esempio: %s" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr "La configurazione 'OwnerID' è impostata automaticamente, verrà impostata correttamente in seguito." + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "Convalida dei permessi..." + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr "Impostazione automatica 'OwnerID' per il gruppo di permessi del proprietario." + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "Aggiornamento del gruppo nel file autorizzazioni: %s" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "Eliminazione gruppo dal file permessi: %s" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "Aggiunta di un nuovo gruppo al file autorizzazioni: %s" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "Salvataggio file permessi ora." + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "ConfigUpdater non può analizzare il file dei permessi!" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "Hai una sezione duplicata, correggi il tuo file Permessi!" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "Salvataggio del gruppo di permessi non riuscito: %s" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "Dev Bug! Il permesso ha getter che non è disponibile." + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "Dev Bug! Il permesso ha un tipo, getter e predefinito non validi devono essere lo stesso tipo." + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "Gli elementi di ricerca massimi non possono essere più grandi di 100. Impostazione a 100." + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "Non hai il permesso di riprodurre il supporto richiesto.\n" +"L'estrattore yt-dlp `%(extractor)s` non è permesso nel tuo gruppo." + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "Cleanup è stato chiamato sulla sorgente audio: %r" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "MusicPlayer.skip() è chiamato: %s" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "MusicPlayer.stop() è chiamato: %s" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "Gilda o rete non disponibile, impossibile riprendere la riproduzione." + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "MusicPlayer.resume() è chiamato: %s" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "MusicPlayer.pause() è chiamato: %s" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "MusicPlayer.kill() è chiamato: %s" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "Riproduzione terminata, ma _current_entry non è nessuno." + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "Possibile avviso da kill_current_player()" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "MusicPlayer.play() è chiamato: %s" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "MusicPlayer è morto, non può giocare." + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "Gilda o rete non disponibile, impossibile avviare la riproduzione." + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "MusicPlayer è stato precedentemente in pausa, riprendendo il giocatore corrente." + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "MusicPlayer già bloccato per la riproduzione, questa chiamata è ignorata." + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "Impossibile ottenere la prossima voce." + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "Impossibile elaborare la voce per la riproduzione." + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "Creazione giocatore con opzioni: ffmpeg %(before)s -i %(input)s %(after)s" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "Riproduzione di %(source)r usando %(client)r" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "Eliminazione saltata di '%s', canzone trovata in coda" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "Eliminazione del file: %s" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "File eliminato: %s" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "Impossibile eliminare il file, è attualmente in uso." + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr "Impossibile eliminare il file a causa di un errore di autorizzazione." + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "Impossibile eliminare il file, non è stato trovato." + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "Errore durante il tentativo di eliminare il file." + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "Impossibile eliminare il file, arrendersi e spostarsi" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "Deserialize ha restituito un oggetto che non è un MusicPlayer: %s" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "Impossibile deserializzare il giocatore" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "Dati da ffmpeg: %s" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "Errore da ffmpeg: %s" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "Attenzione da ffmpeg: %s" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "Messaggio di decodifica di errore sconosciuto da ffmpeg" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "Dati decodificati da ffmpeg: %s" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "Aggiunta voce stream per URL: %(url)s" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Impossibile estrarre le informazioni" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "Questa è una playlist." + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "Le informazioni di immissione sembrano essere un flusso, aggiungendo voce di flusso..." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Tipo di contenuto non valido `%(type)s` per URL: %(url)s" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "Ottenuto testo/html per il tipo di contenuto, questo potrebbe essere un flusso." + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "Tipo di contenuto discutibile \"%(type)s\" per url: %(url)s" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "Aggiunta di URLPlaylistEntry per: %(subject)s" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "Aggiunta di LocalFilePlaylistEntry per: %(subject)s" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "Video ignorato dal collegamento composto alla scaletta con ID: %s" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "Non consentire la voce che è nella lista dei brani bloccati: %(title)s URL: %(url)s" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "Ignorare il brano nelle voci di '%s', durata più lunga del massimo consentito." + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "Non aggiungere video YouTube perché è contrassegnato privato o cancellato: %s" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "Impossibile aggiungere l'elemento" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "Articolo: %s" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "Voci saltate %s errate" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "Riordina il loop sopra le voci." + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "Pre-scaricamento traccia successiva: %r" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "nessun dato di durata" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "nessun dato di durata nella voce corrente" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Track_data non valido, deve essere di tipo `track` ottenuto `%(type)s`" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "Elemento non tracciato ignorato nella scaletta con tipo: %s" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "Puntate totali dell'album Spotify: %(total)s URL successivo: %(url)s" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "Ottenere Spotify Album Prossimo URL: %s" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Spotify Album Object potrebbe non essere completo, atteso %(total)s brani ma ottenuto %(number)s" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "Spotify Album ha più tracce del totale iniziale." + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "Punteggi totali della scaletta Spotify: %(total)s URL successivo: %(url)s" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "Ottenere Playlist Spotify Prossimo URL: %s" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Spotify Playlist Object potrebbe non essere completo, atteso %(total)s brani ma ottenuto %(number)s" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "Spotify Playlist ha più tracce del totale iniziale." + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "Spotify Playlist conteneva tracce utilizzabili %s." + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Lo stato della risposta non va bene: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "La risposta JSON non ha decodificato un detto!" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "Creazione della richiesta GET all'url non riuscita: %s" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Impossibile rendere GET all'URL: %(url)s Motivo: %(raw_error)s" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "Creazione della richiesta POST all'url non riuscita: %s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Impossibile rendere POST all'URL: %(url)s Motivo: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Impossibile ottenere un token ospite da Spotify, si prega di provare a specificare l'ID client e il segreto client" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "Creato un nuovo token di accesso in modalità ospite." + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "La risposta API non contiene i dati attesi. Chiave mancante: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "La risposta API conteneva dati inattesi.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Richiesto un token da Spotify, non è finito per ottenere uno" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "Creato un nuovo token di accesso alla modalità client." + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "Lo stato della risposta API non va bene: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "Impossibile ottenere il Token di Spotify Ospite." + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "Impossibile ottenere il Token ospite a causa di: %(raw_error)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Solo il proprietario può usare questo comando." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Solo gli utenti dev possono usare questo comando." + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr "Impossibile contare i membri quando voice_channel è Nessuno." + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "Impossibile salvare i dati del token ytdlp oauth2 a causa di: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr "Caricamento dei dati token OAuth2 di YouTube TV." + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "Caricamento dei dati del token ytdlp oauth2 non riuscito a causa di: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "Memorizzazione dati token OAuth2 di YouTube TV" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr "Dati token OAuth2 nella cache non validi." + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "Token di accesso scaduto, aggiornamento" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "I cookie di YouTube sono stati forniti, ma viene utilizzato OAuth2. In caso di problemi, smetta di fornire i cookie di YouTube a yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "Aggiornamento token di YouTube TV oauth2..." + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "Impossibile aggiornare il token di accesso OAuth2 a causa di: %s\n" +"Riavvio del flusso di autorizzazione..." + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "Avvio flusso oauth2..." + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "\n" +"AVVISO:\n" +"Per dare accesso yt-dlp al tuo account, visita:\n" +" %s\n" +"Quindi inserisci questo codice di autorizzazione: %s\n" +"Hai %s secondi per completare l'autorizzazione.\n" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "L'applicazione può essere sospesa fino al tempo di autorizzazione se chiusa a questo punto. Ciò è normale." + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr "Tempo scaduto durante l'attesa del token OAuth2." + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "Il codice del dispositivo è scaduto, riavviare il flusso di autorizzazione per yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "Autorizzazione Yt-dlp OAuth2 riuscita." + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "Aggiunta del plugin OAuth2 a Yt-dlp IE: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "Client Yt-dlp Predefiniti: %s" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "Impossibile trovare git eseguibile." + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "Tentativo di aggiornare con `git pull` sul percorso corrente." + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "Risultato di git pull: %s" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "Aggiornamento non riuscito, è necessario eseguire `git pull` manualmente." + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "Impossibile eseguire pip." + +#: run.py:180 +msgid "Error using -m method" +msgstr "Errore nell'utilizzo del metodo -m" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "PIP non è riuscito durante la chiamata del sottoprocesso." + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr "PIP non riuscito a causa di errore di autorizzazione." + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "PIP non riuscito a causa di Python eseguibile? (%s)" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "PIP non è riuscito a causa di OSError." + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "Impossibile decodificare il rapporto di aggiornamento pip JSON." + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "Impossibile individuare o eseguire python -m pip" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "Tentativo di aggiornare con `%s` sul percorso corrente..." + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "Risultato dell'aggiornamento dei pip:\n" +"%s" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "Risultato codice di uscita dal pip upgrade: %s" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "Aggiornamento non riuscito a eseguire o non siamo riusciti a capire l'output" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "Potrebbe essere necessario eseguire `%s` manualmente." + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "Premere Invio per continuare . . ." + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "Iniziare controlli di sanità" + +#: run.py:361 +msgid "Required checks passed." +msgstr "Controlli richiesti superati." + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "Controllo degli aggiornamenti saltato." + +#: run.py:376 +msgid "Optional checks passed." +msgstr "Controlli facoltativi superati." + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "Controllo per Python 3.8+" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "Python 3.8+ è obbligatorio. Questa versione è %s" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "Tentativo di localizzare Python 3.8..." + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "Impossibile individuare py.exe" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "Impossibile eseguire `py.exe -3.8` " + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "Python 3 trovato. Avvio bot..." + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "Provare \"piton3.8\"" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "Impossibile individuare python3.8 sul percorso." + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "\n" +"Python 3.8 trovato. Riavvio del bot utilizzando: %s run.py\n" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "Impossibile trovare Python 3.8 o superiore. Esegui il bot usando Python 3.8" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "Garantire che ci troviamo nell'ambiente giusto" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "Controllo ambiente non riuscito, %s" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "La directory di lavoro corrente non sembra essere scrivibile" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "Spostare il bot in una cartella scrivibile" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "FFmpeg rilevato è installato a: %s" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "Aggiunta ambiente bins/ cartella locale PATH per ffmpeg..." + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "MusicBot non ha potuto individuare il binario FFmpeg nel tuo ambiente.\n" +"Si prega di installare FFmpeg in modo che sia disponibile nella variabile PATH del tuo ambiente." + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "Su Windows, puoi aggiungere una EXE pre-compilata alla cartella `bin` di MusicBot,\n" +"o è possibile installare FFmpeg a livello di sistema utilizzando WinGet o eseguendo l'installazione. al file." + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "Su MacOS, potresti essere in grado di installare FFmpeg tramite homebrew.\n" +"Altrimenti, controlla il sito ufficiale FFmpeg per creare o installare i passaggi." + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "Su Linux, molte distribuzioni rendono FFmpeg disponibile tramite i gestori dei pacchetti di sistema.\n" +"Verifica la presenza di ffmpeg con il gestore dei pacchetti di sistema o compila da sorgenti." + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "Rimangono meno di %sMB di spazio libero su questo dispositivo" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "\n" +"Verifica aggiornamenti a MusicBot o dipendenze..." + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "Nessun aggiornamento MusicBot disponibile tramite il comando `git`." + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "Impossibile controllare gli aggiornamenti usando i comandi `git`. Dovresti controllare manualmente." + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "I seguenti pacchetti possono essere aggiornati:\n" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr " %s alla versione: %s\n" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "Nessun aggiornamento delle dipendenze disponibile tramite il comando `pip`." + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "Impossibile controllare gli aggiornamenti usando i comandi `pip`. Dovresti controllare manualmente." + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "È possibile eseguire un aggiornamento guidato utilizzando il comando:\n" +" %s ./update.py" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "Il valore è superiore al limite massimo." + +#: run.py:638 +msgid "Value must not be negative." +msgstr "Il valore non deve essere negativo." + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "Valore per Max Logs Kept deve essere un numero da 0 a %s" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "Il livello di log '%s' non è disponibile." + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "Il livello di log deve essere uno di: %s" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "Avviare un bot discord per la visualizzazione musicale costruito utilizzando discord.py, youtubeDL, e ffmpeg." + +#: run.py:669 +msgid "Available via Github:" +msgstr "Disponibile tramite Github:" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "Per più aiuto e supporto con questo bot, unisciti alla nostra discorda:" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "Questo software è fornito sotto la licenza MIT." + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "Vedere il file di testo `LICENSE` per dettagli completi." + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "Sovrascrivi la lingua predefinita / rilevata dal sistema per tutto il testo in MusicBot." + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "Usa questa lingua per tutti i messaggi di registro del server da MusicBot." + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "Usa questa lingua per tutti i messaggi inviati a discord da MusicBot.\n" +"Questo non impedisce la selezione della lingua per gilda." + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "Stampare le informazioni sulla versione di MusicBot ed uscire." + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "Salta tutti i controlli di avvio opzionali, incluso il controllo di aggiornamento." + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "Salta solo il controllo dello spazio su disco all'avvio." + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "Salta solo il controllo di aggiornamento all'avvio." + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "Disabilita MusicBot dal tentativo di installare le dipendenze quando non può importarle." + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "Specifica quanti file di registro mantenere, tra 0 e %s inclusi. (Predefinito: %s)" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "Sovrascrivi le impostazioni del livello di log impostate nella configurazione. Deve essere una di: %s" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "Sovrascrivi il formato di data predefinito usato per ruotare i file di registro. Questo dovrebbe contenere valori compatibili con strftime(). (Predefinito: '%s')" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "Versione: %s" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "Apri una nuova istanza di MusicBot. Questo terminale può essere chiuso in sicurezza!" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "Caricamento versione MusicBot: %s" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "Log aperto: %s" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "Python version: %s" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "Modifica della directory di lavoro in: %s" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "Impossibile avviare il bot! Hai iniziato `run.py` nella directory sbagliata e non abbiamo potuto individuare `musicbot` e `. it` cartelle per verificare una nuova posizione della directory." + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "Per ottenere risultati migliori, avvia `run.py` dalla stessa cartella in cui hai clonato MusicBot.\n" +"Se non hai usato git per clonare il repository, sei fortemente sollecitato." + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "L'errore del certificato non è un errore di verifica, non è un tentativo di certifi e di uscita." + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "Ecco l'errore esatto, potrebbe essere un bug." + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "Per aggiungere facilmente un certificato all'archivio di fiducia di Windows, \n" +"è possibile aprire il sito fallito in Microsoft Edge o IE...\n" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "Impossibile ottenere il certificato dell'emittente dall'archivio di fiducia predefinito, tentando invece il certificifi." + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "Errore di sintassi (modifica rilevata, hai modificato il codice?)" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "Errore di sintassi (questo è un bug, non colpa tua)" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "Impossibile avviare MusicBot a causa di un errore!\n\n" +"Problema:\n" +" Si è verificato un errore durante l'importazione di MusicBot o di un pacchetto di dipendenze.\n\n" +"Soluzione:\n" +" Devi installare manualmente pacchetti pip per MusicBot\n" +" o lanciare senza `--no-install-deps` e MusicBot proverà ad installarli per te." + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "Tentativo di installare automaticamente i pacchetti di dipendenza di MusicBot...\n" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "Le dipendenze di MusicBot potrebbero non essere installate!\n\n" +"Problema:\n" +" Il processo di installazione di pip è terminato con un possibile errore.\n" +" Alcune o tutte le dipendenze potrebbero mancare.\n\n" +"Soluzione:\n" +" È necessario installare manualmente i pacchetti di dipendenza.\n" +" Aprire un prompt / terminale CMD nella directory di MusicBot.\n" +" Puoi provare a utilizzare i pacchetti di installazione degli script di aggiornamento.\n" +" O prova questo comando manuale:\n" +" %(py_bin)s -m pip install -U -r . requirements.txt\n\n" +"Puoi anche chiedere aiuto nella discordia di supporto di MusicBot:\n" +" https://discord.gg/bots" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "OK, lascia funzionare la speranza di installare dipendenze!" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "MusicBot ha ottenuto un ImportError dopo aver provato a installare i pacchetti. MusicBot deve uscire..." + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "L'eccezione che ha causato l'errore sopra: " + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "MusicBot sta facendo un riavvio morbido..." + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "MusicBot sta facendo un riavvio completo..." + +#: run.py:1169 +msgid "Error starting bot" +msgstr "Errore nell'avvio del bot" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "Ciclo dell'evento di chiusura." + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "Riavvio in %s secondi..." + +#: run.py:1183 +msgid "All done." +msgstr "Tutto fatto." + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "OK, stiamo chiudendo!" + diff --git a/i18n/it_IT/LC_MESSAGES/musicbot_messages.mo b/i18n/it_IT/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..d216b5a0de32b06ba2f4dcedf2a552ef4ab670f3 GIT binary patch literal 110229 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�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 %(max)s)" +msgstr "La durata del brano supera il limite (%(length)s > %(max)s)" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "Accodato `%(track)s` per essere riprodotto.\n" +"Posizione in coda: %(position)s" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "Giocare dopo!" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "%(position)s - tempo stimato fino alla riproduzione: `%(eta)s`" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "%(position)s - non può stimare il tempo fino alla riproduzione." + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "Aggiungi un URL multimediale alla coda come Stream.\n" +"L'URL può essere un reale media di streaming, come Twitch, Youtube, o un servizio come shoutcast.\n" +"È anche possibile utilizzare i media non in streaming per riprodurli senza scaricarli.\n" +"Nota: FFmpeg può rilasciare il flusso in modo casuale o se si verificano singhiozzi di connessione.\n" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Le playlist in streaming non sono ancora supportate." + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "In streaming della traccia `%(track)s`" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr " Cerca con servizio per un certo numero di risultati con la query di ricerca.\n" + +#: musicbot/bot.py:4432 +msgid " Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr " Cerca YouTube per la query ma ottieni un numero personalizzato di risultati.\n" +" Nota: in questo caso sono necessarie le doppie quotazioni.\n" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "Cerca un servizio supportato e seleziona dai risultati da aggiungere alla coda.\n" +"Gli argomenti servizio e numero possono essere omessi, il numero predefinito è 3 risultati.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Hai raggiunto il limite di elementi della playlist (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Specifica una query di ricerca. Usa `help search` per maggiori informazioni." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "Non puoi cercare più di %(max)s video" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "Ricerca video..." + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "Ricerca fallita a causa di un errore: %(error)s" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "Nessun video trovato." + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "Per selezionare un brano, digitare il numero corrispondente." + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "Risultati della ricerca da %(service)s:" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "**%(index)s**. **%(track)s** %(length)s" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "\n" +"**0**. Annulla" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "Scegli un brano" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "Aggiunta canzone [%(track)s](%(url)s) alla coda." + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "Risultato %(number)s di %(total)s: %(url)s" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "Bene, arrivando a destra!" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "Mostra informazioni su ciò che sta attualmente giocando." + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "[autoplaylist]" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "In riproduzione" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "Attualmente in streaming:" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "In riproduzione:" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "Aggiunto Da:" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "`%(user)s`" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "Progresso:" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "Non ci sono brani in coda! Coda qualcosa con un comando di riproduzione." + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "Dica a MusicBot di unirsi al canale in cui ti trovi." + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "Non sei connesso alla voce. Prova ad unirti a un canale vocale!" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "Connesso a `%(channel)s`" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "Rendi MusicBot seguire un utente quando cambiano canali in un server.\n" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "Non più seguendo l'utente `%(user)s`" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "Ora seguendo l'utente `%(user)s` tra i canali vocali." + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot non può seguire un utente che non è un membro del server." + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "Seguirà l'utente `%(user)s` tra i canali vocali." + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "Metti in pausa la riproduzione se una traccia è in riproduzione." + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "Musica in pausa in `%(channel)s`" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Il giocatore non sta giocando." + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "Riprende la riproduzione se il giocatore è stato precedentemente in pausa." + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "Riprendi musica in `%(channel)s`" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "Ripresa coda musicale" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "Il giocatore non è in pausa." + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "Mischia tutte le tracce correnti nella coda." + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "Mischia tutte le canzoni nella coda." + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "Rimuove tutti i brani attualmente in coda." + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "Cancellati tutti i brani dalla coda." + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "Rimuovi un brano dalla coda, opzionalmente alla posizione della coda data.\n" +"Se la posizione viene omessa, il brano alla fine della coda viene rimosso.\n" +"Usa il comando coda per trovare il numero di posizione della tua traccia.\n" +"Tuttavia, le posizioni di tutte le canzoni sono cambiate quando una nuova canzone inizia a riprodurre.\n" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Niente nella coda da rimuovere!" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "Rimosso `%(track)s` aggiunto da `%(user)s`" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "Niente trovato nella coda dall'utente `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "Non hai il permesso di rimuovere questa voce dalla coda.\n" +"Devi essere colui che l'ha accodata o che ha i permessi di salto istantanei." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Numero di voce non valido. Usa il comando coda per trovare le posizioni della coda." + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "Voce rimossa `%(track)s` aggiunta da `%(user)s`" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "Voce rimossa `%(track)s`" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "Salta o vota per saltare la canzone in riproduzione.\n" +"I membri con autorizzazione InstaSkip possono usare il parametro force per ignorare la votazione.\n" +"Se l'opzione LegacySkip è abilitata, il parametro force può essere ignorato.\n" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Impossibile saltare! Il giocatore non sta giocando!" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "La prossima canzone `%(track)s` è in download, si prega di attendere." + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "La prossima canzone verrà riprodotta a breve. Attendere prego." + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Qualcosa di strano sta accadendo.\n" +"Potresti voler riavviare il bot se non inizia a funzionare." + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Sta accadendo qualcosa di strano.\n" +"Potresti voler riavviare il bot se non inizia a funzionare." + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "Non hai il permesso di forzare un brano in loop." + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "Forza saltata `%(track)s`." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "Non hai il permesso di forzare il salto." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "Non hai il permesso di saltare una canzone in loop." + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "Il tuo salto per `%(track)s` è stato riconosciuto.\n" +"Il voto da saltare è stato passato.%(next_up)s" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr " Prossima canzone in arrivo!" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "Il tuo salto per `%(track)s` è stato riconosciuto.\n" +"Hai bisogno di **%(votes)s** più voto(i) per saltare questa canzone." + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "Impostare il livello di volume di uscita di MusicBot da 1 a 100. Il parametro\n" +"del volume consente un leader + o - per le relative regolazioni.\n" +"L'impostazione del volume viene mantenuta fino al riavvio di MusicBot.\n" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "Volume attuale: `%(volume)s%%`" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` non è un numero valido" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "Volume aggiornato da **%(old)d** a **%(new)d" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Variazione di volume irragionevole fornita: %(old_volume)s%(adjustment)s è %(new_volume)s.\n" +"Il volume può essere impostato solo da 1 a 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Volume irragionevole fornito: %(volume)s. Fornire un valore compreso tra 1 e 100." + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "Cambia la velocità di riproduzione solo della traccia in riproduzione.\n" +"La velocità deve essere compresa tra 0.5 e 100. a causa dei limiti di ffmpeg. La riproduzione in streaming\n" +"non supporta le regolazioni della velocità.\n" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "Nessuna traccia in riproduzione, non è possibile impostare la velocità.\n" +"Utilizzare il comando di configurazione per impostare una velocità di riproduzione predefinita." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "La velocità non può essere applicata ai media in streaming." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Devi fornire una velocità da impostare." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "La velocità fornita non è valida. Usa un numero compreso tra 0.5 e 100." + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "Impostazione della velocità di riproduzione su `%(speed).3f` per la traccia corrente." + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr " Aggiungi un nuovo alias con argomenti opzionali.\n" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr " Rimuovi un alias con il nome specificato." + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr " Ricarica o salva gli alias da/al file di configurazione." + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "Consente la gestione degli alias dalla discordia. Per vedere gli alias usare il comando aiuto." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Opzione non valida per il comando: `%(option)s`" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "Alias ricaricato dal file di configurazione." + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "Alias salvati nel file di configurazione." + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Impossibile salvare gli alias a causa di errore:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Devi fornire un alias e un comando all'alias" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "Nuovo alias aggiunto. `%(alias)s` è ora un alias di `%(command)s`" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Devi fornire un nome alias da rimuovere." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "L'alias `%(alias)s` non esiste." + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "Alias `%(alias)s` è stato rimosso." + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr " Mostra il testo di aiuto su tutte le opzioni di configurazione mancanti.\n" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr " Elenca i nomi delle opzioni che sono state modificate dal caricamento del file di configurazione.\n" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr " Elenca le opzioni di configurazione disponibili e le loro sezioni.\n" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr " Ricarica il file options.ini dal disco.\n" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr " Mostra il testo di aiuto per un'opzione specifica.\n" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr " Mostra il valore corrente dell'opzione.\n" + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr " Salva il valore corrente nel file delle opzioni.\n" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr " Convalida l'opzione e imposta la configurazione per la sessione, ma non per il file.\n" + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr " Reimposta l'opzione al valore predefinito.\n" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "Gestisci la configurazione options.ini all'interno di Discord." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "La configurazione non può usare le menzioni del canale e dell'utente allo stesso tempo." + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "**Opzione mancante:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Il valore predefinito è impostato a: %(default)s```\n" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "*Tutte le opzioni di configurazione sono presenti e contabilizzate!*" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "Nessuna opzione di configurazione sembra essere cambiata." + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "**Opzioni Modificate:**\n" +"%(changed)s" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "## Opzioni Disponibili:\n" +"**Opzioni Modificabili:**\n" +"%(editable)s\n" +"**Modifica Manuale Solamente:**\n" +"%(manual)s" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "Opzioni di configurazione ricaricate dal file con successo!" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Impossibile ricaricare la configurazione a causa del seguente errore:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Impossibile risolvere il nome della sezione dal nome dell'opzione. Si prega di fornire una sezione e un nome di opzione validi." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "L'opzione data è ambigua, si prega di fornire un nome di sezione." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Devi fornire un nome di sezione e un nome di opzione per questo comando." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "La sezione `%(section)s` non è disponibile.\n" +"Le sezioni disponibili sono: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "L'opzione `%(option)s` non è disponibile." + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "Questa opzione può essere impostata solo modificando il file di configurazione." + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "Per impostazione predefinita questa opzione è impostata a: %(default)s" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Opzione:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "L'opzione `%(option)s` non è modificabile. Impossibile salvare sul disco." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Impossibile salvare l'opzione: `%(option)s`" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "Opzione salvata con successo: `%(config)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "L'opzione `%(option)s` non è modificabile, il valore non può essere visualizzato." + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Opzione:** `%(config)s`\n" +"Valore Attuale: `%(loaded)s`\n" +"INI Valore Del File: `%(ini)s`" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "L'opzione `%(option)s` non è modificabile. Impossibile aggiornare l'impostazione." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Devi fornire una sezione, un'opzione e un valore per questo sottocomando." + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "L'opzione `%(option)s` non è stata aggiornata!" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "L'opzione `%(config)s` è stata aggiornata per questa sessione.\n" +"Per salvare il cambiamento usa `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "L'opzione `%(option)s` non è modificabile. Impossibile ripristinare il valore predefinito." + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "L'opzione `%(option)s` non è stata ripristinata al predefinito!" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "L'opzione `%(config)s` è stata ripristinata al suo valore predefinito `%(default)s`.\n" +"Per salvare la modifica usa `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "Comando obsoleto, usa invece il comando di configurazione." + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "Il comando opzione è deprecato, utilizza invece il comando di configurazione." + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "Visualizza le informazioni sulla cache o sulla cache pulita in base ai limiti configurati.\n" +"Usando l'opzione di aggiornamento scansionerà la cache per modifiche esterne prima di visualizzare i dettagli." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Opzione specificata non valida, usa: info, aggiornamento o cancella" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "Disabilitato" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "Abilitato" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "%(time)s giorni" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "Illimitato" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "La cache è stata cancellata." + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Non riuscito** per eliminare la cache, controlla i log per ulteriori informazioni..." + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "Nessuna cache trovata da cancellare." + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "Visualizza informazioni sulla coda di riproduttore corrente.\n" +"Numero di pagina opzionale mostra le voci successive nella coda.\n" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "L'argomento pagina coda deve essere un numero intero." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "Il numero di pagina richiesto è fuori dai limiti.\n" +"Ci sono ** pagine%(total)s**." + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "(durata sconosciuta)" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "Attualmente in riproduzione: `%(title)s`\n" +"Aggiunto da: `%(user)s`\n" +"Progresso: `[%(progress)s/%(total)s]`\n" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "**Voce #%(index)s:**Titolo: `%(title)s`\n" +"Aggiunto da: `%(user)s\n\n" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "%(progress)sCi sono `%(total)s` voci nella coda.\n" +"Ecco le prossime canzoni %(per_page)s , a partire dalla canzone #%(start)s\n\n" +"%(tracks)s" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "Brani in coda" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Riprova. MusicBot non ha potuto fare o ottenere un riferimento al messaggio di coda.\n" +"Se il problema persiste, file una segnalazione di bug." + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "Cerca e rimuovi i messaggi e i comandi del bot dal canale di testo della chiamata.\n" +"Facoltativamente fornisce un numero di messaggi da ricercare, 50 per impostazione predefinita 500 max.\n" +"Questo comando può essere lento se vengono forniti intervalli più grandi.\n" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "Parametri non validi. Si prega di fornire un numero di messaggi da cercare." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Impossibile usare lo spurgo sul canale DM privato." + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "Ripuliti %(number)s messaggio." + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "Il bot non ha i permessi per gestire i messaggi." + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr "Ricarica i singoli URL di una scaletta su un file." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "L'URL fornito non era un URL valido." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Impossibile estrarre le informazioni dall'url di input\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "Questa non sembra essere una playlist." + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "Ecco il dump della playlist per: %(url)s" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "Visualizza il tuo ID utente Discord, o l'ID di un utente menzionato.\n" +"Questo comando è deprecato a favore della Modalità Sviluppatore nei client Discord.\n" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "Il tuo ID utente è `%(id)s`" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "L'ID utente per `%(username)s` è `%(id)s`" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "Elenca gli ID Discord per la categoria selezionata.\n" +"Restituisce tutti i dati ID per impostazione predefinita, ma una o più categorie possono essere selezionate.\n" +"Questo comando è deprecato a favore dell'utilizzo della modalità Sviluppatore nei client Discord.\n" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "Categorie valide: %(cats)s" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "Ecco gli ID che hai richiesto:" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permissions of the mentioned user." +msgstr "Ottieni un elenco dei tuoi permessi, o i permessi dell'utente menzionato." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "ID utente o soprannome del server non validi, si prega di ricontrollare l'ID e riprovare." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Impossibile determinare l'utente discord. Riprova." + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "I tuoi permessi di comando in %(server)s sono:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "I permessi di comando per %(username)s in %(server)s sono:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr " Mostra le opzioni dei permessi dei gruppi caricati e dell'elenco.\n" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr " Ricarica i permessi dal file permissions.ini.\n" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr " Aggiungi un nuovo gruppo con valori predefiniti.\n" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr " Rimuovi gruppo esistente.\n" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr " Mostra il testo di aiuto per l'opzione di autorizzazione.\n" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr " Mostra il valore dei permessi per un determinato gruppo e permesso.\n" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr " Salva gruppo di autorizzazioni su file.\n" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr " Imposta il valore di autorizzazione per il gruppo.\n" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "Gestisci la configurazione permissions.ini dall'interno di discord." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Le autorizzazioni non possono usare le menzioni del canale e dell'utente allo stesso tempo." + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "Permessi ricaricati dal file con successo!" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Impossibile ricaricare i permessi a causa di un errore:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "## Gruppi Disponibili:\n" +"%(groups)s\n" +"## Opzioni Disponibili:\n" +"%(options)s\n" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Devi fornire un nome di gruppo o di opzione per questo comando." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Devi fornire un gruppo, un'opzione e un valore da impostare per questo comando." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "Il sottocomando %(option)s richiede un nome di gruppo e di permesso." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "Il gruppo `%(group)s` non è disponibile.\n" +"I gruppi disponibili sono: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "Il permesso `%(option)s` non è disponibile." + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "Questa autorizzazione può essere impostata solo modificando il file dei permessi." + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "Per impostazione predefinita questa autorizzazione è impostata a: `%(value)s`" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Permesso:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Impossibile aggiungere il gruppo `%(group)s` che esiste già." + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "Nuovo gruppo aggiunto con successo: `%(group)s`\n" +"Ora puoi personalizzare i permessi con: `setperms set %(group)s`\n" +"Assicurati di salvare il nuovo gruppo con: `setperms save %(group)s`" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Impossibile rimuovere il gruppo integrato." + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "Gruppo rimosso con successo: `%(group)s`\n" +"Assicurati di salvare questa modifica con: `setperms save %(group)s`" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "Il gruppo proprietario non è modificabile." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Impossibile salvare il gruppo: `%(group)s`" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "Salvato con successo il gruppo: `%(group)s`" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Permesso:** `%(permission)s`\n" +"Valore Attuale: `%(loaded)s`\n" +"INI Valore Del File: `%(ini)s`" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Il permesso `%(option)s` non è stato aggiornato!" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "Il permesso `%(permission)s` è stato aggiornato per questa sessione.\n" +"Per salvare il cambiamento usa `setperms save %(section)s %(option)s`" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "Cambia il nome utente del bot su discord.\n" +"Nota: l'API può limitare le modifiche del nome a due volte all'ora." + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Impossibile modificare il nome utente. Hai cambiato i nomi troppe volte?\n" +"Ricorda che i cambiamenti di nome sono limitati a due volte all'ora.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Impossibile modificare il nome utente a causa di errore: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "Imposta il nome utente del bot su `%(name)s`" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "Cambia il soprannome di MusicBot." + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Impossibile cambiare il soprannome: nessun permesso." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Impossibile impostare il soprannome a causa di errore: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "Imposta il nickname del bot su `%(nick)s`" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr " Imposta un prefisso di comando per server." + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr " Pulisce il prefisso del comando per server." + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "Sovrascrivi il prefisso predefinito del comando nel server.\n" +"L'opzione AbilitaPrefixPerGuild deve essere abilitata prima." + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Le emoji personalizzate devono provenire da questo server per essere utilizzate come prefisso." + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "Il prefisso del comando del server è cancellato." + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "Il prefisso del comando del server è ora: %(prefix)s" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Prefisso per server non è abilitato!\n" +"Usa il comando di configurazione per aggiornare il prefisso." + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "Cambia l'avatar di MusicBot.\n" +"Allegare un file e omettere il parametro url funziona.\n" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "È necessario fornire un URL o allegare un file." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Impossibile cambiare l'avatar a causa dell'errore: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "Cambiato l'avatar del bot." + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "Forza MusicBot a disconnettersi dal server discord." + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "Disconnesso dal server `%(guild)s`" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "Disconnesso un client vocale senza lettore? [BUG]" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Attualmente non connesso al server `%(guild)s`" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr " Tentativo di ricaricare senza riavviare il processo. L'opzione predefinita.\n" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr " Tentativo di riavviare l'intero processo MusicBot, ricaricando tutto.\n" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr " Riavvio completo, ma tenta di aggiornare i pacchetti pip prima del riavvio.\n" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr " Riavvio completo, ma aggiorna il codice sorgente di MusicBot con git prima.\n" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr " Tentativo di aggiornare tutte le dipendenze e il codice sorgente prima di riavviare completamente.\n" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "Tentativi di riavviare MusicBot in diversi modi.\n" +"Con nessuna opzione fornita, è implicito un riavvio `soft`.\n" +"Può essere usato per aggiornare da remoto un'installazione di MusicBot, ma dovrebbe essere usato con cura.\n" +"Se hai un service manager, ti consigliamo di usarlo invece di questo comando per il riavvio.\n" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Opzione fornita non valida, usa una di: soft, full, upgrade, uppip, or upgit" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "%(emoji)s Riavvio dell'istanza corrente..." + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "%(emoji)s Riavvio del processo robot..." + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "%(emoji)s Cercherà di aggiornare i pacchetti pip richiesti e riavviare il bot..." + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "%(emoji)s cercherà di aggiornare il codice bot con git e riavviare il bot..." + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "%(emoji)s Cercherà di aggiornare tutto e riavviare il bot..." + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "Disconnetti da tutti i canali vocali e chiudi il processo MusicBot." + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr " Lascia il server discord dato dal nome o dal server ID." + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "Forza MusicBot a lasciare il server Discord specificato. I nomi\n" +"sono sensibili all'uso di maiuscolo/minuscolo, quindi l'uso di un numero ID è più affidabile.\n" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Devi fornire un ID o un nome." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "Nessuna gilda trovata con l'ID o il nome `%(input)s`" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "Sconosciuto" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "Lasciato la gilda: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "Comando utilizzato per il test. Stampa un elenco di comandi che possono essere verificati da una suite di test." + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "Questo comando emette un log a livello CRITICA, ma non fa altro.\n" +"Può essere usato per individuare manualmente gli eventi nel file di registro di MusicBot.\n" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "Breakpoint loggato con ID: %(uuid)s" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr " Visualizza i tipi più comuni riportati da objgraph.\n" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr " Visualizza output objgraph.show_growth() limitato.\n" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr " Visualizza i tipi più comuni di oggetti fuoriusciti.\n" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr " Visualizza i tipestat degli oggetti fuoriusciti.\n" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr " Valuta la funzione e gli argomenti dati su objgraph.\n" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "Interagire con objgraph, se installato, per ottenere informazioni sull'utilizzo della memoria.\n" +"È possibile passare un metodo arbitrario con argomenti (ma non spazi!) che è un membro di objgraph.\n" +"Poiché questo metodo valuta il codice arbitrario, è considerato pericoloso come il comando di debug.\n" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Impossibile importare `objgraph`, è installato?" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "Questo comando eseguirà il codice python arbitrario nel campo di applicazione del comando.\n" +"Primo eval() è tentato, se le eccezioni vengono lanciate exec() viene provato successivamente.\n" +"Se eval ha successo, viene visualizzato il valore restituito.\n" +"Se exec ha successo, un valore può essere impostato sulla variabile locale `result` e quel valore sarà restituito.\n\n" +"Il codice multi-riga può essere eseguito se avvolto in un blocco di codice.\n" +"Altrimenti può essere eseguita solo una singola riga.\n\n" +"Questo comando può essere rimosso in una versione futura, ed è utilizzato dagli sviluppatori per debug del comportamento di MusicBot.\n" +"Il pericolo di questo comando non può essere sottostimato. Non usarlo o dargli accesso se non capisci i rischi!\n" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Esecuzione del codice di debug non riuscita:\n" +"%(py_code)s\n" +"Eccezione: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "Crea 'markdown' per opzioni, permessi o comandi dal codice.\n" +"L'output viene utilizzato per aggiornare le pagine di GitHub ed è quindi inadatto per un uso di riferimento normale." + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "Il sottocomando deve essere uno di: %(options)s" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "Rende i file INI predefiniti." + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "Salvato il file INI richiesto su disco. Vai a controllarlo" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "Visualizza la versione attuale del bot e controlla gli aggiornamenti di MusicBot o dipendenze.\n" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Impossibile individuare git eseguibile." + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "Nessun aggiornamento nel ramo `%(branch)s` remoto." + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "Nuovi commit sono disponibili in `%(branch)s` branch remote." + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "Errore durante il controllo, vedere i registri per i dettagli." + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "Aggiorna per `%(name)s` alla versione: `%(version)s`\n" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "Nessun aggiornamento per le dipendenze trovate." + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "Ci sono aggiornamenti per MusicBot disponibili per il download." + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "MusicBot è completamente aggiornato!" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "%(status)s\n\n" +"**Aggiornamenti Codice Sorgente:**\n" +"%(git_status)s\n\n" +"**Aggiornamenti Dipendenza:**\n" +"%(pip_status)s" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "Mostra l' uptime di MusicBot o il tempo dall' ultimo avvio / riavvio." + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "%(name)s è stato online per `%(time)s`" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "Visualizza le informazioni sulla latenza per le API Discord e tutti i client vocali connessi." + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) nella regione: `%(region)s`\n" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "Nessun client vocale connesso.\n" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "Mostra latenza API e latenza vocale se MusicBot è connesso." + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "auto" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) nella regione `%(region)s`" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "**API Latency:** `%(delay).0f ms`%(voice)s" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "Mostra il numero di versione di MusicBot nella chat." + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "https://github.com/Just-Some-Bots/MusicBot\n" +"Versione attuale: `%(version)s`" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr " Aggiornare il file cookies.txt utilizzando un allegato cookies.txt." + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr " Abilita o disabilita il file cookies.txt senza eliminarlo." + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "Consente la gestione della funzione cookie in yt-dlp.\n" +"Quando si aggiornano i cookie, è necessario caricare un file con nome cookie. xt\n" +"Se i cookie sono disabilitati, il caricamento attiverà la funzione.\n" +"Uploads eliminerà i cookie esistenti, incluso il file dei cookie disabilitati.\n\n" +"ATTENZIONE:\n" +" La copia dei cookie può rischiare di esporre i tuoi dati personali o account,\n" +" e può causare divieti di conto o furto se non stai attento.\n" +" Non è raccomandato a causa di questi rischi, e non si dovrebbe utilizzare questa funzione\n" +" se non si capisce come evitare i rischi." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookie già abilitati." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "I cookie devono essere caricati per essere abilitati. (File dei cookie)." + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Impossibile abilitare i cookie a causa di errore: %(raw_error)s" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "I cookie sono stati abilitati." + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Impossibile rinominare il file cookie a causa di errore: %(raw_error)s\n" +"I cookie sono temporaneamente disabilitati e saranno riattivati al prossimo riavvio." + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "I cookie sono stati disabilitati." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "Non sono stati trovati caricamenti allegati, riprova durante il caricamento di un file di cookie." + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Errore nel scaricare il file dei cookie da discord: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Impossibile salvare i cookie sul disco: %(raw_error)s" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "Cookie caricati e abilitati." + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "Non puoi usare questo bot in messaggi privati." + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Questo comando non è consentito per il tuo gruppo di permessi: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Questo comando richiede di essere in un canale vocale." + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "**Comando:** %(name)s" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "Errore Di Eccezione" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "**Esempio con prefisso:**\n" +"%(prefix)s`%(command)s ...`\n" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "Nessuna descrizione fornita.\n" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "Nessun utilizzo dato." + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "**Esempio di utilizzo:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Descrizione:**\n" +"%(desc)s" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "Lasciare il canale vocale %(channel)s a causa di inattività." + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "Left `%(guild)s` a causa del proprietario del bot che non viene trovato in esso." + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "Imposta la verbosità del log di MusicBot. Normalmente questo dovrebbe essere impostato su INFO.\n" +"Può essere impostato su una delle seguenti:\n" +" CRITICA, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, o TUTTO" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "Token di autenticazione del bot Discord per il tuo Bot.\n" +"Visita Discord Developer Portal per creare un bot App e generare il tuo Token.\n" +"Non pubblicare mai il tuo bot token!" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "Fornisci il tuo ID Client Spotify per consentire a MusicBot di interagire con le API di Spotify.\n" +"MusicBot cercherà di utilizzare l'API web player (modalità ospiti) se non è impostato niente qui.\n" +"L'utilizzo delle tue credenziali API garantisce limiti di utilizzo più elevati rispetto alla modalità ospite." + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "Fornisci il tuo client Spotify Secret per consentire a MusicBot di interagire con le API di Spotify.\n" +"Questo è necessario se si imposta l'opzione Spotify_ClientID sopra." + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "Fornire un numero di ID utente Discord per impostare il proprietario di questo bot.\n" +"La parola 'auto' o numero 0 imposterà il proprietario in base alle informazioni dell'app.\n" +"Qui può essere impostato un solo ID proprietario. Generalmente, si consiglia di impostare 'auto'." + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "Un elenco di ID utente Discord che possono usare i comandi dev-only.\n" +"Attenzione: i comandi dev-only possono consentire l'esecuzione arbitraria di codice remoto.\n" +"Usa spazi per separare più ID.\n" +"La maggior parte degli utenti dovrebbe lasciare vuota questa impostazione." + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "Id Discord Member per altri bot che MusicBot non dovrebbe ignorare.\n" +"Usa spazi per separare ID multipli.\n" +"Tutti i bot vengono ignorati per impostazione predefinita." + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "Il prefisso dei comandi è come tutti i comandi MusicBot devono essere avviati nei messaggi Discord.\n" +"Ad esempio, se impostate questo su * il comando di riproduzione è attivato da *play ..." + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "Abilita usando i comandi con @[YourBotNameHere]\n" +"Il CommandPrefix è ancora disponibile, ma può essere sostituito con @ mention." + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "Numeri ID per canali di testo che MusicBot dovrebbe usare esclusivamente per i comandi.\n" +"Questo può contenere ID per canali in più server.\n" +"Usa spazi per separare ID multipli.\n" +"Tutti i canali sono utilizzati se non è impostato." + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "Consenti risposte in tutti i canali mentre nessun canale specifico è impostato per un server.\n" +"Usato solo quando BindToChannels manca un ID per un server." + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "Un elenco di ID canale vocale che MusicBot dovrebbe automaticamente unirsi all'avvio.\n" +"Usa spazi per separare più ID." + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "MusicBot cercherà di inviare avvisi di riproduzione ora direttamente al membro che ha richiesto la canzone invece di pubblicare in un canale server." + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "Disabilita ora la riproduzione dei messaggi per i brani riprodotti tramite playlist automatica." + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "Forza MusicBot ad usare un canale specifico per inviare messaggi in riproduzione.\n" +"È possibile utilizzare un solo ID di canale di testo per server." + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "MusicBot eliminerà automaticamente i messaggi in riproduzione." + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "Imposta il livello di volume predefinito MusicBot riprodurrà brani a.\n" +"Puoi usare qualsiasi valore da 0 a 1, o da 0% a 100% volume." + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "Imposta la velocità predefinita MusicBot riprodurrà brani a.\n" +"Deve essere un valore da 0.5 a 100.0 per ffmpeg per usarlo.\n" +"Un valore di 1 è la normale velocità di riproduzione.\n" +"Nota: il supporto in streaming non supporta le regolazioni della velocità." + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "Numero di voti dei membri del canale necessari per saltare una canzone.\n" +"agisce come minimo quando SkipRatio richiederebbe più voti." + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "Questa percentuale di ascoltatori nella voce deve votare per saltare.\n" +"Se SkipsRequired è inferiore al valore calcolato, verrà usato invece.\n" +"È possibile impostare questo da 0 a 1, o 0% a 100%." + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "Permetti a MusicBot di mantenere i media scaricati o eliminarli subito." + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "Se SaveVideos è abilitato, imposta un limite a quanto spazio di archiviazione dovrebbe essere utilizzato." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "Se SaveVideos è abilitato, impostare un limite per quanto tempo i file dovrebbero essere mantenuti." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "Se SaveVideos è abilitato, non elimina mai brani di playlist automatica dalla cache indipendentemente dai limiti." + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "Menziona l'utente che ha aggiunto il brano quando viene riprodotto." + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "Unisciti automaticamente al proprietario se sono in un canale vocale accessibile all'avvio del bot." + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "Abilita MusicBot per riprodurre automaticamente musica dalla playlist automatica quando la coda è vuota." + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "Mischia le tracce della scaletta automatica prima di riprodurle." + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "Abilita il salto automatico dei brani della playlist automatica quando un utente riproduce una nuova canzone.\n" +"Questo vale solo per il brano in riproduzione corrente se è stato aggiunto dalla scaletta automatica." + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song block list." +msgstr "Rimuovere i brani dalla playlist automatica se sono trovati nell'elenco dei brani." + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "Permetti a MusicBot di eliminare automaticamente i messaggi che invia, dopo un ritardo. Il periodo di ritardo\n" +"è controllato da DeleteDelayShort e DeleteDelayLong." + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "Eliminare automaticamente i comandi validi dopo un ritardo." + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "Imposta il breve periodo di secondi prima di eliminare i messaggi.\n" +"Questo periodo è usato dai messaggi che non richiedono ulteriori interazioni." + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "Imposta il periodo di ritardo lungo prima di eliminare i messaggi.\n" +"Questo periodo è usato da messaggi interattivi o a lunga scadenza, come ricerca e aiuto." + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "Permetti a MusicBot di salvare la coda dei brani, in modo che i brani in coda sopravvivano ai riavvii." + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "Abilita MusicBot per scaricare il brano successivo nella coda mentre un brano è in riproduzione.\n" +"Attualmente questa opzione non si applica alla playlist automatica o ai brani aggiunti a una coda vuota." + +#: musicbot/config.py:550 +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "Specifica un messaggio personalizzato da usare come stato del bot. Se lasciato vuoto, il bot\n" +"visualizzerà informazioni dinamiche sulla musica attualmente in riproduzione nel suo stato.\n" +"I messaggi di stato possono anche utilizzare le seguenti variabili:\n" +" {n_playing} = Numero di lettori musicali attualmente in riproduzione.\n" +" {n_paused} = Numero di lettori musicali attualmente in pausa.\n" +" {n_connected} = Numero di lettori musicali collegati, in qualsiasi stato di riproduzione.\n\n" +"Le seguenti variabili danno accesso alle informazioni sul giocatore e sulla traccia.\n" +"Queste variabili potrebbero non essere accurate nei bot multi-gilda:\n" +" {p0_length} = La durata totale della traccia, se disponibile. Ex: [2:34]\n" +" {p0_title} = Il titolo della traccia per la traccia in riproduzione.\n" +" {p0_url} = L'URL della traccia per la traccia in riproduzione." + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "Se abilitata, i messaggi di stato segnaleranno informazioni sui giocatori in pausa." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "Se abilitata, MusicBot salverà il titolo della traccia in: data/[Server ID]/current.txt" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "Permetti al membro che ha richiesto la canzone di saltarla, aggirando i voti." + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "Cerca di usare ffmpeg per ottenere opzioni di normalizzazione del volume per l'uso in riproduzione.\n" +"Questa opzione può causare ritardi tra la riproduzione dei brani, poiché l'intera traccia deve essere elaborata." + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr "Permetti a MusicBot di formattare i suoi messaggi come incorporati." + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "Il numero di voci da mostrare per pagina quando si usa il comando q per elencare la coda." + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." +msgstr "Abilita MusicBot per rimuovere automaticamente le voci non riproducibili dalla scaletta automatica." + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "Visualizza le impostazioni di configurazione di MusicBot nei log all'avvio." + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "Abilita gli utenti con il permesso InstaSkip per bypassare il voto saltato e salti forza." + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "Se abilitata, MusicBot lascerà i server se il proprietario non è nella loro lista di membri." + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "Se abilitato, MusicBot permetterà ai comandi di avere più nomi utilizzando i dati in: config/aliases.json" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "Sostituisci il nome/la versione di MusicBot nel piè di pagina incorporato con testo personalizzato.\n" +"Applicato solo quando UseEmbeds è abilitato e non è vuoto." + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "Rimuovere completamente il piè di pagina dagli incorporati." + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "MusicBot si assorderà automaticamente quando si entra in un canale vocale." + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "Se abilitata, MusicBot lascerà un canale vocale quando nessun utente sta ascoltando,\n" +"dopo aver aspettato un periodo impostato nell'opzione LeaveInactiveVCTimeOut.\n" +"Gli ascoltatori sono membri del canale, esclusi i bot, che non sono assordati." + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "Imposta un periodo di tempo da attendere prima di lasciare un canale vocale inattivo.\n" +"È possibile impostare questo a un numero di secondi o frase come: 4 ore" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "Se abilitata, MusicBot lascerà il canale immediatamente quando la coda del brano è vuota." + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "Quando si è in pausa o non si gioca, attendere questa quantità di tempo poi lasciare la voce.\n" +"È possibile impostare questo a un certo numero di secondi di frase come: 15 minuti\n" +"Impostarlo a 0 per disabilitare la partenza in questo modo." + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "Se abilitato, gli utenti devono indicare le scelte dei risultati della ricerca inviando un messaggio invece di usare le reazioni." + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "Imposta il numero predefinito di risultati di ricerca da recuperare quando si utilizza il comando di ricerca senza un numero specifico." + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "Consenti a MusicBot di salvare un prefisso di comando per server, e abilita il comando setprefix." + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "Se abilitato e più membri aggiungono canzoni, MusicBot organizzerà la riproduzione per un brano per membro." + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "Consenti a MusicBot di utilizzare i ping temporizzati per rilevare l'interruzione della rete e la disponibilità.\n" +"Questo può essere utile se si mantiene il bot unito a un canale o riprodurre musica 24/7.\n" +"MusicBot deve essere riavviato per abilitare il test di rete.\n" +"Per impostazione predefinita questo è disabilitato." + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "Abilita il salvataggio di tutti i brani riprodotti da MusicBot in un file di playlist globale: %(filename)s\n" +"Questo conterrà tutti i brani da tutti i server." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "Abilita il salvataggio dei brani riprodotti per server su un file di playlist: %(basename)s[Server ID]%(ext)s" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "Abilita la riproduzione di file multimediali locali usando il comando di riproduzione.\n" +"Quando abilitato, gli utenti possono usare: `play file://path/to/file. xt`\n" +"per riprodurre i file dal percorso locale MediaFileDirectory." + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "Permetti a MusicBot di smettere automaticamente quando vengono utilizzati i comandi di riproduzione." + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "Impostazioni sperimentali, HTTP/HTTPS proxy da utilizzare con il download di file multimediali ytdlp.\n" +"Il valore impostato qui viene passato al controllo dell'intestazione `ytdlp --proxy` e aiohttp.\n" +"Lascia vuoto per disabilitare." + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "Opzione sperimentale per impostare un'intestazione statica User-Agent in yt-dlp.\n" +"In genere non è raccomandato da yt-dlp per cambiare la stringa UA.\n" +"Per esempi di ciò che potresti mettere qui, controlla i seguenti due link:\n" +" https://developer. ozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Lascia vuoto per usare le stringhe UA predefinite generate dinamicamente." + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "Opzione sperimentale per abilitare yt-dlp per utilizzare un account YouTube tramite OAuth2.\n" +"Se abilitato, è necessario utilizzare l'URL generato e il codice per autorizzare un account.\n" +"Il token di autorizzazione viene quindi memorizzato nel file `%(oauthfile)s`.\n" +"Questa opzione non deve essere utilizzata quando i cookie sono abilitati.\n" +"L'utilizzo di un account personale potrebbe non essere raccomandato.\n" +"Imposta sì per abilitare o no per disabilitare." + +#: musicbot/config.py:920 +msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "URL video di YouTube opzionale utilizzato all'avvio per attivare l'autorizzazione OAuth2.\n" +"Questo avvia il prompt OAuth2 presto, piuttosto che aspettare una richiesta di canzone.\n" +"L'URL impostato qui dovrebbe essere un URL video di YouTube accessibile. L'autorizzazione\n" +"deve essere completata prima che l'avvio continui quando è impostato." + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "Attiva/disattiva la funzione lista blocchi utente, senza svuotare la lista blocchi." + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "Un percorso opzionale di un file di testo che elenca gli ID utente Discord, uno per riga." + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "Abilita la funzione della lista dei brani, senza svuotare la lista dei blocchi." + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "Un percorso di file opzionale a un file di testo che elenca URL, parole o frasi una per riga.\n" +"Qualsiasi titolo del brano o URL che contiene qualsiasi riga nella lista sarà bloccato." + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "Un percorso opzionale a una directory contenente file di scaletta automatica.\n" +"Ogni file deve contenere un elenco di URL o termini riproducibili, una traccia per riga." + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "Un percorso opzionale di directory dove possono essere memorizzati i file multimediali riproducibili.\n" +"Tutti i file e le sottodirectory possono essere consultati usando 'file://' come protocollo.\n" +"Esempio: file://some/folder/name/file.ext\n" +"Mappe a: %(path)s/some/folder/name/file.ext" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "Un percorso opzionale della directory in cui MusicBot memorizzerà la cache a lungo e breve termine per la riproduzione." + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "Configura la rotazione automatica del file di registro al riavvio e limita il numero di file conservati.\n" +"Quando disabilitato, viene conservato un solo registro e il suo contenuto viene sostituito ogni esecuzione.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "Configura il formato della data del file di registro usato quando LogsMaxKept è abilitato.\n" +"Se lasciato vuoto, viene registrato un avviso e verrà utilizzato il valore predefinito.\n" +"Scopri di più sui codici di formato orario dalle tabelle e dai dati qui:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "Potenzialmente riduce l'utilizzo della CPU, ma disabilita i controlli di volume e velocità.\n" +"Questa opzione disabiliterà anche l'opzione UseExperimentalEqualization." + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Errore durante la lettura della configurazione.\n\n" +"Problema:\n" +" Mancano una o più sezioni di opzioni di configurazione richieste.\n" +" Le sezioni mancanti sono: Soluzione\n" +" %(sections)s\n\n" +":\n" +" Riparare il file delle opzioni di configurazione.\n" +" Ogni [Section] deve apparire una sola volta, senza nessun altro testo sulla stessa riga.\n" +" Ogni sezione deve avere almeno un'opzione.\n" +" Utilizzare le opzioni di esempio come modello o copiarlo dal repository." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Errore durante la convalida delle opzioni di configurazione.\n\n" +"Problema:\n" +" Opzione di configurazione AudioCachePath non è una directory.\n\n" +"Soluzione:\n" +" Assicurati che il percorso configurato sia un percorso per una cartella / directory." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Errore durante la convalida delle opzioni di configurazione.\n\n" +"Problema: l'opzione di configurazione\n" +" AudioCachePath non può essere impostata a causa di un errore:\n" +" %(raw_error)s\n\n" +"Soluzione:\n" +" Doppio controllo l'impostazione è valida, percorso directory accessibile." + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Errore durante la lettura delle opzioni di configurazione.\n\n" +"Problema:\n" +" Nessun bot Token è stato specificato nelle opzioni di configurazione o ambiente.\n\n" +"Soluzione:\n" +" Imposta l'opzione di configurazione Token o imposta la variabile di ambiente %(env_var)s con un token App." + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Errore durante il recupero automatico di 'OwnerID'.\n\n" +"Problema:\n" +" Le informazioni Discord App non sono disponibili.\n" +" Potrebbe trattarsi di un'interruzione temporanea delle API o di un bug. Soluzione\n\n" +":\n" +" Imposta manualmente l'opzione di configurazione 'OwnerID' o riprova più tardi." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Errore nella convalida delle opzioni di configurazione.\n\n" +"Problema:\n" +" La configurazione 'OwnerID' è la stessa del tuo Bot / ID app.\n\n" +"Soluzione:\n" +" Non utilizzare il Bot o l'App ID nel campo 'OwnerID'." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Errore nella localizzazione della configurazione.\n\n" +"Problema:\n" +" Impossibile trovare o creare un file di configurazione a causa di un errore:\n" +" %(raw_error)s\n\n" +"Soluzione:\n" +" Verifica che la cartella di configurazione e i file esistano e possono essere letti da MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Errore nel caricamento della configurazione.\n\n" +"Problema:\n" +" MusicBot non ha potuto leggere il file di configurazione a causa di un errore:\n" +" %(raw_error)s\n\n" +"Soluzione:\n" +" Assicurarsi che il file sia accessibile e privo di errori.\n" +" Copiare il file di esempio dal repo se tutto il resto fallisce." + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Errore nel caricamento del valore di configurazione.\n\n" +"Problema:\n" +" L'ID proprietario in [%(section)s] > %(option)s non è valido.\n\n" +"Soluzione:\n" +" Imposta %(option)s su un ID numerico o impostalo su `auto` o `0` per il binding automatico del proprietario." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Errore nel caricamento del valore di configurazione.\n\n" +"Problema:\n" +" L'opzione di configurazione [%(section)s] > %(option)s non è una posizione valida del file.\n\n" +"Soluzione:\n" +" Controlla l'impostazione del percorso e assicurati che il file esista ed sia accessibile a MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Errore nel caricamento del valore di configurazione.\n\n" +"Problema:\n" +" Uno degli ID nell'opzione [%(section)s] > %(option)s non è valido.\n\n" +"Soluzione:\n" +" Assicurati che tutti gli ID siano numerici e separati solo da spazi o virgole." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD sembra non avere intestazioni..." + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "L'estrazione di informazioni brano non ha restituito dati." + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Impossibile continuare l'estrazione, il ciclo dell'evento è chiuso." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "Spotify URL non è valido o non supportato." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Errore in yt-dlp durante il download dei dati: %(raw_error)s" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Impossibile trasmettere un URL non valido." + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "Impossibile trovare il file multimediale locale." + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Impossibile scaricare i collegamenti di Spotify, errore di elaborazione con il tipo: %(type)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Il download non è stato completato a causa di un errore: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Download fallito a causa di un errore yt-dlp: %(raw_error)s" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Download fallito a causa di un'eccezione non gestita: %(raw_error)s" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Estrazione dei dati per il supporto richiesto non riuscita." + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "Elenco di nomi di comando consentiti per l'uso, separati da spazi. L'accesso al sottocomando\n" +"può essere controllato aggiungendo _ e il nome del sottocomando.\n" +"Questo è `config_set` concede solo il sottocomando `set` del comando di configurazione.\n" +"Questa opzione sovrascrive CommandBlacklist se impostato.\n" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "Elenco dei nomi dei comandi negati dall'uso, separati da spazi.\n" +"non funzionerà se CommandWhitelist è impostato!" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "Quando abilitato, CommandBlacklist e CommandWhitelist sono usati insieme.\n" +"Solo i comandi nella whitelist sono permessi, tuttavia i sottocomandi possono essere negati dalla blacklist.\n" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "Elenco dei nomi dei comandi che possono essere usati solo nello stesso canale vocale di MusicBot.\n" +"Alcuni comandi richiederanno sempre che l'utente sia nella voce, indipendentemente da questa lista. I nomi dei comandi\n" +"dovrebbero essere separati da spazi." + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "Elenco degli ID del ruolo del server Discord a cui è concesso questo gruppo di autorizzazioni.\n" +"Questa opzione viene ignorata se UserList è impostata." + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "Elenco degli ID membri di Discord a cui sono concesse le autorizzazioni in questo gruppo.\n" +"Questa opzione sostituisce GrantToRoles." + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "Numero massimo di brani che un utente può mettere in coda.\n" +"Un valore di 0 significa illimitato." + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "Lunghezza massima di un brano in secondi. Un valore di 0 significa illimitato.\n" +"Questa autorizzazione potrebbe non essere applicata se la durata del brano non è disponibile." + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "Numero massimo di brani che una scaletta può avere quando è in coda.\n" +"Un valore di 0 significa illimitato." + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "Il numero massimo di elementi che possono essere restituiti in una ricerca." + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "Consenti agli utenti di mettere in coda le playlist, o più brani contemporaneamente." + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "Consenti agli utenti di saltare senza voto, se l'opzione LegacySkip config è abilitata." + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "Consente all'utente di saltare un brano in loop." + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "Consente all'utente di rimuovere qualsiasi brano dalla coda.\n" +"non rimuove o salta i brani correntemente in riproduzione." + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "Salta le canzoni aggiunte dagli utenti che non sono in voce quando la loro canzone viene riprodotta." + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "Consente all'utente di aggiungere brani alla coda quando la modalità Karaoke è abilitata." + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "Chiamata automatica al canale vocale utente quando si usano i comandi di riproduzione, se il bot non è già nella voce.\n" +"Il comando summon deve essere ancora consentito per questo gruppo!" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "Specifica i nomi degli estrattori yt-dlp, separati da spazi, che possono essere usati.\n" +"Quando vengono usati valori predefiniti vuoti e codificati in modo rigido. I valori predefiniti sono mostrati sopra, ma possono cambiare tra le versioni.\n" +"Per consentire a tutti gli estrattori, aggiungi `%(allow_all)s` senza virgolette alla lista.\n\n" +"Services/extractors supportati da yt-dlp sono elencati qui:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites. d \n\n" +"MusicBot fornisce anche un servizio personalizzato `spotify:musicbot` per abilitare o disabilitare l'estrazione delle API di Spotify.\n" +"AVVISO: MusicBot potrebbe non supportare tutti i servizi disponibili per yt-dlp!\n" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "Non hai il permesso di riprodurre il supporto richiesto.\n" +"L'estrattore yt-dlp `%(extractor)s` non è permesso nel tuo gruppo." + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Impossibile estrarre le informazioni" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "Questa è una playlist." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Tipo di contenuto non valido `%(type)s` per URL: %(url)s" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "nessun dato di durata" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "nessun dato di durata nella voce corrente" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Track_data non valido, deve essere di tipo `track` ottenuto `%(type)s`" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Lo stato della risposta non va bene: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "La risposta JSON non ha decodificato un detto!" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Impossibile rendere GET all'URL: %(url)s Motivo: %(raw_error)s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Impossibile rendere POST all'URL: %(url)s Motivo: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Impossibile ottenere un token ospite da Spotify, si prega di provare a specificare l'ID client e il segreto client" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "La risposta API non contiene i dati attesi. Chiave mancante: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "La risposta API conteneva dati inattesi.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Richiesto un token da Spotify, non è finito per ottenere uno" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "Lo stato della risposta API non va bene: [%(status)s] %(reason)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Solo il proprietario può usare questo comando." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Solo gli utenti dev possono usare questo comando." + diff --git a/i18n/ja_JP/LC_MESSAGES/musicbot_logs.mo b/i18n/ja_JP/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..e0c333950a4ebd4cc568c4b9f61c64fe18bbd510 GIT binary patch literal 114638 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 %(aliases)s" +msgstr "エイリアスは存在しないコマンドでスキップされました: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "エイリアスが無効なエイリアスデータに対してスキップされました: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "エイリアス `%(alias)s` はコマンド %(command)s で既に存在するようスキップされました。" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "自動プレイリストファイルの読み込みエラー: %s" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "プレイリストから再生できない曲を削除しています。 %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "プレイリストから曲を削除しています。 %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "プレイリストURLの削除に関する情報を記録できませんでした。" + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "プレイリストファイルを更新しています..." + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "プレイリストファイルの保存に失敗しました: %s" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "プレイリスト %sのURLは既に無視されています" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "プレイリストに新しいURLを追加しています。 %(playlist)s: %(track)s" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "MusicBot %s の初期化中" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "ループが閉じられています。次のタスクを作成できません: %r" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "タスクの未処理例外: %r" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "タスクの未処理例外: %(task)r -- %(raw_error)s" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "Spotifyはトークンを提供していません。無効にしています。" + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "クライアント ID とシークレットを使用して Spotify で正常に認証されました。" + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "Spotifyクライアントを起動できませんでした。クライアントIDと秘密情報は正しいですか?詳細: %s。とにかく5秒後に続行します..." + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "設定にはSpotifyアプリの資格情報がありませんでした。ゲストモードを使用しようとしています。" + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "ゲストモードで Spotify で正常に認証されました。" + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "ゲストモードでSpotifyクライアントを起動できませんでした。詳細: %s." + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "実験的な Yt-dlp OAuth2 プラグインが有効になっています。これはいつでも壊れる可能性があります!" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "初期化されました。今すぐDiscordに接続しています。" + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "ネットワーク接続テストは設定で無効になっています。" + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "ネットワーク接続テストは終了しています。" + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "ターゲットを解決できませんでした。" + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "ネットワーク接続テストがキャンセルされました。" + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "HTTP経由のネットワークテストには、借りるセッションがありません。" + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "環境で `ping` 実行ファイルが見つかりませんでした。" + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "MusicBot が検出されたネットワークは再び利用可能です。" + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "VoiceClientが接続されていません。MusicPlayerの再開を待機しています..." + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "プレーヤーの再生再開: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "MusicBotはネットワーク停止を検出しました。" + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "ネットワークの空き状況によりMusicPlayerを一時停止: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "ギルドで所有者を探しています: %(guild)s (必須音声: %(required)s) と得点: %(owner)s" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "自動参加または再開するチャンネルを確認しています..." + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "ギルドが利用できません。自動参加できません: %(id)s/%(name)s" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "再開可能なボイスチャンネルが見つかりました:ギルド内の %(channel)s : %(guild)s" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "自動接続チャンネルの代わりに音声セッションを再開してみます: %s" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "音声チャンネルの所有者が見つかりました: %s" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "再開可能なチャネルを無視して、チャンネル内の所有者へのAutoSummon : %s" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "自動参加チャンネルを無視しました。チャンネルの所有者に自動召喚: %s" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "既にチャンネルに接続されています: ギルド内の %(channel)s : %(guild)s" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "チャンネルへの参加を試みています: ギルドの %(channel)s : %(guild)s" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "MusicPlayerを破棄し、新しいMusicPlayerを作成しています..." + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "MusicBotが新しいMusicPlayerを作成します..." + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "%(guild)s/%(channel)sに参加していません。サポートされているボイスチャンネルではありません。" + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "設定されたチャンネルへの参加が終了しました。" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "メンバーは音声対応ではないため、このコマンドは使用できません。" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "ボイスチャンネルでない場合、このコマンドは使用できません。" + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "Botアプリケーション情報を取得しています。" + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "MusicBot にチャンネルへの接続権限がありません: %s" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBotにチャンネルで接続する権限がありません: `%(name)s`" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "MusicBot にチャンネル内で話す権限がありません: %s" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBotにチャンネルで話す権限がありません: `%(name)s`" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "ギルドからボットVoiceClientを再利用: %s" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "ギルド内の古いVoiceClientの切断を強制: %s" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "切断に失敗したか、キャンセルされましたか?" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "MusicBotは現在チャンネルに接続できません: %(channel)s" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot がチャンネルに接続できませんでした。\n" +"後でもう一度試すか、続行するとボットを再起動してください。" + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "MusicBotには現在VoiceClientがあります..." + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "接続中にタイムアウトエラー (%(attempt)s) の後に接続を再試行しています: %(channel)s" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "MusicBot VoiceClient 接続がキャンセルされました。再試行しません。" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "ボイスチャットへのMusicBot接続がキャンセルされました。これは奇妙です。再起動しますか?" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot には話す権限がありません。" + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "MusicBot は話すことができませんでした。" + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "ギルドでMusicPlayerを切断: %s" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "MusicPlayerを停止する前にVoiceClientを切断します。" + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "切断に失敗またはキャンセルされました。" + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "MusicBotにはVoiceClientではないVoiceProtocolがあります。とにかく接続を解除してください。" + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "ギルド内の不正なVoiceClientの接続を切断: %s" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "ギルド以外のVoiceClientの接続を切断..." + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "MusicBot.voice_clients リストに、VoiceClient 以外のオブジェクトが含まれていますか?\n" +"オブジェクトは実際は型です。 %s" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "ギルド内にMusicPlayerのrefがあります (%(guild_id)s): %(player)r" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "Guild (%(guild)s) はプレイヤー、任意の %(player)r を要求しています" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." +msgstr "[BUG] MusicPlayerにVoiceClientがありません。おそらく再起動してください。" + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "MusicPlayer に接続されていない VoiceClient があります。" + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "MusicPlayer obj: %r" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "VoiceClient obj: %r" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "ギルドでMusicPlayerを取得する: %(guild)s チャンネルで: %(channel)s 作成: %(create)s デシリアライズ: %(serial)s" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "ギルド %(guild_id)s の %(number)s エントリーでデシリアライゼーションを経由してプレイヤーを作成" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "ボットはボイスチャンネルに入っていません。\n" +"召喚コマンドを使ってボットをボイスチャンネルに連れてきてください。" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "問題が発生しました。VoiceClientを取得できませんでした。" + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "実行中のplayer_play" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "URL履歴を設定する ギルド %(guild_id)s == %(url)s" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "URLのエントリに設定されたサムネイルはありません: %s" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "メッセージを再生するチャンネルがありません" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "既に投稿されていたメッセージは無視されました。" + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "実行中のplayer_resume" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "player_pause実行中" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "実行中のplayer_stop" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "実行中の on_player_finished_playing" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "イベントループは閉じられています。ここで行うことは何もありません。" + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "このイベントを無視して進行中にログアウトします。" + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "VoiceClient は、接続されていない、ここでできることは何もありません。" + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "プレーヤーが終了し、キューが空です。ボイスチャンネルを残しています..." + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "不足している曲を削除するためにキューをループさせています..." + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "Author `%(user)s` 欠席、スキップされた(削除された)エントリ: %(song)s" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "ギルドの自動プレイリストに再生可能な曲がありません。" + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "現在の自動再生リストにはコンテンツがありません。新しい音楽で塗りつぶします..." + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "プレーヤーの自動再生リストの上にループしています..." + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "曲「%(url)s」の処理中にエラーが発生しました: %(raw_error)s" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "曲 \"%(url)s\" の抽出中にエラーが発生しました: %(raw_error)s" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr "MusicBotは自動プレイリストの抽出と保釈を停止する必要があります。" + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "MusicBotはプレイヤーの終了イベントで処理されていない例外を受け取りました。" + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "%s から抽出されたエントリで自動プレイリストを展開します" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "自動再生リストから曲を追加中にエラーが発生しました: %s" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "上記のエラーの例外データ:" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "自動プレイリストに再生可能な曲がありません。無効にします。" + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "実行中 on_player_entry_added" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "キューに入れられたエントリの自動プレイリストのエントリを自動的にスキップします。" + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "エントリの MusicPlayer 例外: %r" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "MusicPlayer例外です。" + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "自動プレイリストトラックを再生できませんでした: %r" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "状態更新イベントを無視して進行中のログアウトします。" + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "ボットのステータスを更新: %(status)s -- %(activity)r" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "キューを %sにシリアライズ中" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "%sのキューをデシリアライズしています" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "%s のために現在の曲を書き込み中" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "応答しないオブジェクトを送信できません: %r" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "無効なレスポンスオブジェクトを送信しようとしました。" + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "%s に埋め込みを送信中" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "%s にテキストを送信しています" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "\"%s\"にメッセージを送信できません。権限がありません" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "\"%s\"にメッセージを送信できません。無効または削除されたチャンネル" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "メッセージのサイズ制限を超えています(%s)" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "代わりにフォールバックチャンネルを送信してプライベートメッセージを送信できませんでした。" + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "レート制限されたメッセージを送信し、 %s 秒後に再試行します。" + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "キャンセルされたメッセージの再試行: %s" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "制限されたメッセージの送信を評価するが、再試行することはできません!" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "フォールバックチャンネルでメッセージを送信できませんでした。" + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "HTTPエラーのため送信に失敗しました。" + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "メッセージ「%s」を削除できません。権限がありません" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "メッセージ \"%s\" を削除できません。メッセージが見つかりません。" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "Rate limited message delete, retrying in %s seconds." + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "制限されたメッセージの削除を評価しますが、再試行できません!" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "メッセージの削除に失敗しました" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "HTTPExceptionがメッセージを削除しようとしています: %s" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "メッセージ \"%s\" を編集できません。メッセージが見つかりません。" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "代わりにメッセージを送信中" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "制限された編集メッセージを評価し、 %s 秒後に再試行します。" + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "%s へのメッセージ編集をキャンセルしました" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "メッセージの編集に失敗しました" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "HTTPExceptionがメッセージ %s を編集しようとしています: %s" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "メッセージの削除をキャンセルしました (ID: %(id)s): %(content)s" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "OSからの信号をキャッチしました: %s" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "MusicBotの接続を切断して閉じます..." + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "割込み信号の処理中に例外がスローされました!" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "MusicBot がシャットダウンステップを行っています..." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "ダウンロードスレッドが終了するのを待っています..." + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "Will wait for task: %(name)s (%(func)s)" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "タスクをキャンセルしようとします: %(name)s (%(func)s)" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "保留中のタスクを待機しています..." + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "HTTP コネクタを閉じています。" + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "aiohttp セッションを閉じています。" + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "ログアウトを呼び出しました。" + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "%(event)sの例外 :\n" +"%(error)s" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "%s の例外" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "MusicBotはdiscordとのセッションを再開しました。" + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "完了(_L)" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "ログイン中、MusicBot の準備中..." + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "クライアントユーザーは何らかの形ではありません。保釈する必要があります..." + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "所有者: %(id)s/%(name)s#%(desc)s\n" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "ギルド一覧:" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr " - %s" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "ボット所有者が見つからないため、 %s を退出しました" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "%s サーバーでのチェックが利用できません。" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "所有者は不明です。botはギルドにいません。" + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "Got None for bound channel with ID: %d" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "IDを持つメッセージ可能でないチャンネルにバインドできません: %d" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "Bound to text channels:" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr " - %(guild)s/%(channel)s" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "テキストチャンネルにバインドされていません" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "IDを持つ自動参加チャンネルにNoneを取得しました: %d" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "IDを持つプライベート/非ギルドチャンネルに自動的に参加できません: %d" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "IDを持つ非接続可能なチャンネルに自動的に参加できません: %d" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr "ボイスチャンネルの自動結合:" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "音声チャンネルに自動的に参加しません" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "イベントon_ready が %s 回発射しました" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "アプリケーション情報を取得しています。" + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "データフォルダが存在することを確認" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "設定を検証中" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "権限設定を検証中" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "無効" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "有効" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "オプション:" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr " コマンドプレフィックス: %s" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr " デフォルトボリューム: %d%%" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr " Skip threshold: %(num)d vote or %(percent).0f%%" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr " 現在@メンションを再生中: %s" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr " 自動召喚: %s" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr " 自動プレイリスト: %(status)s (注文: %(order)s)" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "random" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "シーケンシャル" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr " 自動停止: %s" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr " メッセージの削除: %s" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr " 呼び出しを削除: %s" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr " 今すぐプレイを削除: %s" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr " デバッグモード: %s" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr " ダウンロードした曲は %sになります" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr " %d 日間未使用の場合は削除" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr " サイズが %s を超えた場合は削除" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr " ステータスメッセージ: %s" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr " 現在の曲をファイルに書き込む: %s" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr " 著者インスタジオスキップ: %s" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr " Embeds: %s" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr " Spotify統合: %s" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr " 従来のスキップ: %s" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr " 所有者ではないまま: %s" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr " 非アクティブ状態のままVC: %s" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr " タイムアウト: %s 秒" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr " 曲の終了/空のキューを残す: %s" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr " プレイヤーがアイドル時に退出: %s" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr " タイムアウト: %d 秒" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr " セルフスピーカー: %s" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr " サーバー毎のコマンドプレフィックス: %s" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr " 検索リスト: %s" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr " ラウンドロビン隊列: %s" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "The requested song `%(subject)s` is blocked by the song block list." + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "Voice Channel を操作しようとしていますが、Botは音声に入っていません..." + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "ギルドで既に待機しているチャンネルアクティビティ: %s" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "チャンネルのアクティビティが %(time)d 秒でチャンネルを退出するまで待機しています: %(channel)s" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "%s のチャネルアクティビティタイマーの有効期限が切れました。切断してください。" + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "チャネルアクティビティのタイマーをキャンセルしました: %(channel)s の %(guild)s" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "自動参加チャンネルのプレイヤーの非アクティブを無視: %s" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "ギルド内で既に待機しているプレイヤーアクティビティタイマー: %s" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "%(time)d 秒でチャンネルを退出するのを待っているプレイヤーアクティビティタイマー: %(channel)s" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "%s のプレイヤーアクティビティタイマーの有効期限が切れています。切断してください。" + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "プレイヤーアクティビティのタイマーを %(channel)s でキャンセルしました: %(guild)s" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "プレイヤーアクティビティのタイマーがリセットされています。" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "そのようなコマンドはありません" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "ユーザーに言及するか、ID番号を入力してください。" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "無効なサブコマンドが与えられました。使用例には `help blockuser` を使用してください。" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBotは指定したユーザーを見つけることができませんでした。" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "オーナーをブロックリストに追加できません。" + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "ユーザーをブロックリストに追加していません。既にブロックされています: %(id)s/%(name)s" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "リストにないブロックリストからユーザーを削除していません: %(id)s/%(name)s" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "あなたがリストしたユーザーを追加することはできません、すでに追加されています。" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "現在再生中の曲がない場合は、曲の件名を指定する必要があります。" + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "無効なサブコマンドが与えられました。使用例には `help blocksong` を使用してください。" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "Subject `%(subject)s` はすでにソングブロックリストにあります。" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "件名はソングブロックリストにないため、削除できません。" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "無効なサブコマンドが与えられました。使用例には `help autoplaylist` を使用してください。" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "指定された曲のリンクは無効です" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "キューが空です。再生コマンドで曲を追加してください!" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "この曲はすでに自動プレイリストにあります。" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "この曲はまだ自動プレイリストに入っていません。" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "プレイリストファイル名を指定する必要があります。" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "プレイリストをリクエストする権限がありません" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "プレイリストのエントリが多すぎます(%(songs)s ですが、最大は %(max)s です)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "ネットワーク停止による自動停止を無視します。" + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "MusicPlayerにVoiceClientがないか、チャンネルデータがないか、自動停止処理できません。" + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "このイベントを無視して、すでに自動一時停止を処理しています。" + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "%sVoiceClient が接続されていないため、ギルド内の自動停止を処理する %s 秒待機しています: %s" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "自動一時停止はキャンセルされました。" + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "古い自動一時停止イベントを無視して、新しいMusicPlayerが接続されています。" + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "空のボイスチャンネルで再生します。ギルドの自動一時停止: %s" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "以前の自動一時停止中のプレイヤーはギルドの一時停止が解除されています: %s" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "何もプレイしていない場合はシークを使用できません。" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "現在のトラックでシークを使用することはできません、それは不明な期間を持っています。" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "Seeking is not supported for streams." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "再生を配置する時間がなければシークは使用できません。" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "`%(input)s`を秒単位で有効な時間に変換できませんでした。" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "`%(input)s/%(seconds)s`の長さのトラックの`%(progress)s `(` %(total)s`秒)をシークできません" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "無効なサブコマンドです。使用例には「ヘルプの繰り返し」コマンドを使用してください。" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "プレーヤーは現在ループしていません。" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "曲の位置は整数でなければなりません!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "プレイリストのサイズ以外の位置を指定しました!" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "プレイリストの再生を促すことができませんでした。リアクションを追加するメッセージがありません。" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "ローカルメディアの再生が有効になっていません。" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "SpotifyのURLが無効または現在サポートされていません。" + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Spotify の URL が検出されましたが、Spotify は有効ではありません。" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "キューに登録された曲の上限に達しました (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "カラオケモードが有効になっています。無効になったらもう一度お試しください!" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "extract_info() の問題: " + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "エラーのための情報の抽出に失敗しました:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "動画を再生できません。streamコマンドを使用してみてください。" + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "YouTubeの検索結果が %(url)sにはありませんでした" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "曲が追加されていません。すべての曲が最大時間(%(max)s 秒)を超えています。" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "抽出キーとして 'youtube:playlist' でエントリを抽出しました" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "曲の再生時間が制限を超えています(%(length)s > %(max)s)" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "%s位置に曲を追加しました" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "位置の再生までの時間を見積もることはできません: %d" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "ストリームリクエストからの情報の取得に失敗しました: %s" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "ストリーミングプレイリストはまだサポートされていません。" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "プレイリストアイテムの上限に達しました (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "検索クエリを指定してください。詳細は `ヘルプ検索` を使用してください。" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "%(max)s 以上の動画を検索することはできません" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "召喚ロックを待っています: %s" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "ロックを召喚: %s" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "音声に接続されていません。音声チャンネルに参加してみてください!" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "%(guild)s/%(channel)s に参加中" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot はサーバーのメンバーではないユーザーをフォローできません。" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "プレイヤーがプレイしていません。" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "削除するキューがありません!" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "`%(user)s`からのキューには何も見つかりませんでした。" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "キューからそのエントリを削除する権限がありません。\n" +"キューに登録した方、または即座にスキップ権限を持っている必要があります。" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "無効なエントリ番号です。キューの位置を見つけるには、キューコマンドを使用してください。" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "スキップできません!プレイヤーがプレイしていません!" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "ループされた曲をスキップする権限がありません。" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "スキップを強制する権限がありません。" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "ループ曲をスキップする権限がありません。" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "'%(new_volume)s' は有効な数字ではありません" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "不合理なボリューム変更が提供されました: %(old_volume)s%(adjustment)s は %(new_volume)sです。\n" +"ボリュームは1から100まで設定できます。" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "不合理なボリュームが提供されました: %(volume)s. 1から100までの値を入力してください。" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "トラックが再生されていないため、速度を設定できません。\n" +"デフォルトの再生速度を設定するにはconfigコマンドを使用してください。" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "ストリームメディアには速度を適用できません。" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "設定する速度を提供する必要があります。" + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "指定した速度が無効です。0.5 から 100までの数字を使用してください。" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "コマンドの無効なオプション: `%(option)s`" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "エラーのためエイリアスを保存できませんでした:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "エイリアスにエイリアスとコマンドを提供する必要があります" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "削除するにはエイリアス名を入力してください。" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "The alias `%(alias)s` does not exist." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "設定では、チャンネルとユーザーのメンションを同時に使用できません。" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "次のエラーのため設定を再読み込みできません:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "オプション名からセクション名を解決できませんでした。有効なセクション名とオプション名を入力してください。" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "与えられたオプションは曖昧です。セクション名を入力してください。" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "このコマンドのセクション名とオプション名を指定する必要があります。" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "The section `%(section)s` is not available.\n" +"The available section: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "オプション `%(option)s` は使用できません。" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "オプション `%(option)s` は編集できません。ディスクに保存できません。" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "オプションの保存に失敗しました: `%(option)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "Option `%(option)s` は編集できません。値を表示できません。" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "オプション `%(option)s` は編集できません。設定を更新できません。" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "このサブコマンドのセクション、オプション、値を指定する必要があります。" + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "%(config)s == %(value)s で設定する" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "Option `%(option)s` は更新されませんでした!" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "オプション `%(option)s` は編集できません。デフォルトにリセットできません。" + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "%(config)s を既定の %(value)s にリセット" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "Option `%(option)s` はデフォルトにリセットされませんでした!" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "option コマンドは推奨されません。config コマンドを使用してください。" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "無効なオプションが指定されました。情報、更新、またはクリアを使用してください。" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**キャッシュの削除に失敗しました。ログの詳細を確認してください。" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "キューページ引数は整数でなければなりません。" + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "曲がキューに追加されていません! playコマンドで何かをキューに追加します。" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "要求されたページ番号が範囲外です。\n" +"**%(total)s** ページがあります。" + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "現在のプレイリストのエントリをスキップしました。" + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "キューをページネーションするのに十分なエントリがありません。" + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "キューメッセージを投稿できませんでした。リアクションを追加するメッセージがありません。" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "もう一度お試しください。MusicBotはキューメッセージへの参照を作成できませんでした。\n" +"問題が解決しない場合は、バグレポートを送信してください。" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "プライベート DM チャンネルでパージを使用できません。" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "指定されたURLは有効なURLではありませんでした。" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "これはプレイリストではないようです。" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "無効なユーザーIDまたはサーバーニックネームです。IDを再確認してもう一度やり直してください。" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "discordユーザーを特定できませんでした。もう一度お試しください。" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "権限は同時にチャンネルとユーザーメンションを使用することはできません。" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "エラーが発生したため権限を再読み込みできません:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "このコマンドのグループまたはオプション名を指定する必要があります。" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "このコマンドに設定するには、グループ、オプション、値を指定する必要があります。" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "%(option)s サブコマンドにはグループ名と権限名が必要です。" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "The group `%(group)s` is not available.\n" +"The available groups is : %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "パーミッション`%(option)s`は利用できません。" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "グループを追加できません`%(group)s` が既に存在します。" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "組み込みグループを削除できません。" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "オーナーグループは編集できません。" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "グループの保存に失敗しました: `%(group)s`" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "%(option)s に値: %(value)s を設定する" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "パーミッション`%(option)s`は更新されませんでした!" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "ユーザー名の変更に失敗しました。名前の変更回数が多すぎましたか?\n" +"名前の変更は1時間に2回に制限されています。\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "エラーのためユーザー名を変更できませんでした: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "ニックネームを変更できません: 権限がありません。" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "エラーのためニックネームを設定できませんでした: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "プレフィックスとして使用するには、このサーバーからカスタム絵文字を使用する必要があります。" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "サーバーごとのプレフィックスが有効になっていません!\n" +"configコマンドを使用して、代わりにプレフィックスを更新してください。" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "URLを入力するか、ファイルを添付する必要があります。" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "エラーのためアバターを変更できません: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "MusicBotはギルドのない %s を見つけました!問題が発生する可能性があります。" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "現在サーバーに接続されていません `%(guild)s`" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "無効なオプションが与えられました。ソフト、フル、アップグレード、uppip、またはupgitのいずれかを使用してください" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "IDまたは名前を入力してください。" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "IDまたは名前のギルドが見つかりませんでした。`%(input)s`" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "デバッグブレークポイントIDをアクティベート中: %(uuid)s" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "`objgraph` をインポートできませんでした。インストールされていますか?" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "eval() で実行されたデバッグコード。" + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "exec()でデバッグコードを実行しました。" + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "デバッグコードの実行に失敗しました。" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "デバッグコードの実行に失敗しました:\n" +"%(py_code)s\n" +"例外: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "サブコマンドは次のいずれかでなければなりません: %(options)s" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "git 実行可能ファイルが見つかりませんでした。" + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "git コマンドで更新の確認に失敗しました。" + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "pipレポートにメタが見つからないパッケージ。" + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "エラーが発生したため、Pip の更新ステータスを取得できませんでした。" + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "変なボイスクライアントのエントリがあります。" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "クッキーは既に有効になっています。" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "クッキーを有効にするには、アップロードする必要があります。" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "エラーのためクッキーを有効にできませんでした: %(raw_error)s" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "エラーのためクッキーファイルの名前を変更できませんでした: %(raw_error)s\n" +"クッキーは一時的に無効化され、次回の再起動時に再度有効になります。" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "添付されたアップロードが見つかりませんでした。Cookie ファイルのアップロード中に再試行してください。" + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "古い無効化されたCookieファイルを削除できませんでした: %(raw_error)s" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "discordからCookieファイルをダウンロード中にエラーが発生しました: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "ディスクにクッキーを保存できませんでした: %(raw_error)s" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "チャンネルがないメッセージがあります。 %s" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "自分からのコマンドを無視しました (%s)" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "他のボットからコマンドを無視しました (%s)" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "%s のチャンネルからコマンドを無視しました" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "ブロックリストのユーザー: %(id)s/%(name)s tried command: %(command)s" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "%(id)s/%(name)sからのメッセージ : %(message)s" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "このコマンドは権限グループには許可されていません: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "このコマンドを使用するには、ボイスチャンネルに参加する必要があります。" + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "無効なコマンド使用法、パラメータの値がありません: %(params)r" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "%(command)sのエラー : %(err_name)s: %(err_text)s" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "コマンド処理中の例外: %(command)s" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "不足しているコマンドのヘルプを生成できません: %s" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "コマンドのヘルプデータがありません: %s" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "%s に音声チャンネル %s を退出しています。" + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "MusicBot が接続されました。" + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "MusicBotの接続が切断されました。" + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "ソケットイベントがあります: %s" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "VoiceState は、on_readyが終了する前に更新されました" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "%s の %s を無視しました。音声チャンネルです。" + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "%s は空として検出されました。処理のタイムアウト。" + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "ユーザーが %sに参加し、タイマーをキャンセルしました。" + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "ボットが移動され、音声チャンネル %s が空です。タイムアウトを処理します。" + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "ボットが移動され、音声チャンネル %s が空ではありません。" + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "ユーザー %sをフォローしていません" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "次のユーザー`%(user)s`チャンネル: %(channel)s" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "VoiceState disconnection.channel is None." + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "Discordによる音声から切断されました: %(guild)s/%(channel)s (コード: %(code)s) [S:%(state)s]" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "タイプの自動参加チャンネルは使用できません: ギルドの %(type)s : %(guild)s" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "自動参加チャンネルが見つかりません。削除されましたか? ギルド: %s" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "チャンネルのギルド自動参加に再接続中: %s" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "チャンネルに自動参加できません: %s" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "Botがギルドに追加されました: %s" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "ボット所有者が見つからないため、ギルド「%s」を退出しました。" + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "ギルド %sのデータフォルダを作成しています" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "Botがギルドから削除されました: %s" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "更新されたギルドリスト:" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "ギルド「%s」が利用可能になりました。" + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "空き状況により \"%s\" のプレイヤーを再開しています。" + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "ギルド「%s」は利用できなくなりました。" + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "「%s」でプレイヤーを一時停止しています。" + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "ギルド更新: %s" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "Guild 属性 %(attr)s が現在: %(new)s -- Was: %(old)s" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "チャンネル更新: %(channel)s -- %(changes)s" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "%s の作成" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "%s から設定を読み込んでいます" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "%s ログファイル以上を保存できません。オプションの LogsMaxKept は代わりに制限されます。" + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "ConfigオプションLogsDateFormatは空で、ログファイルのローテーションが壊れます。代わりにデフォルトを使用します。" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "AudioCachePath の検証中に例外がスローされました。" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "設定オプションの検証中にエラーが発生しました。\n\n" +"問題:\n" +" AudioCachePath 設定オプションはエラーが原因で設定できませんでした:\n" +" %(raw_error)s\n\n" +"ソリューション:\n" +" 設定が有効であることを再確認してください。 アクセス可能なディレクトリパス" + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "オーディオキャッシュは %sに保存されます" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "StatusMessage 設定オプションが長すぎます。128 文字に制限されます。" + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "デフォルトの再生速度は0.5から100.0の間でなければなりません。 %.3f のオプション値は制限されます。" + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "サービスデータを使用してオプションを検証しています..." + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "API経由で取得した所有者ID" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "" + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "MusicBotにユーザーインスタンスがありません。続行できません。" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "" + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "設定オプションファイルが見つかりません。選択肢を確認しています..." + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "%(ini_file)s を %(option_file)sにリネームするには、おそらくファイル拡張子を ON にする必要があります。" + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "既存のオプションファイルのコピー: %(example_file)s" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "新しい %(example_file)s を生成し、 %(option_file)sにコピーしました。" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "設定オプションファイルの検索中に問題が発生しました。" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "設定の場所を特定できませんでした。\n\n" +"問題:\n" +" エラーが原因で設定ファイルを見つけることができませんでした:\n" +" %(raw_error)s\n\n" +"ソリューション:\n" +" 設定フォルダとファイルが存在することを確認し、MusicBotによって読み込まれます。" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "Dev Bug! 設定オプションは利用できないゲッターがあります。" + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "Dev Bug! Config オプションは無効な型、getter とデフォルトは同じ型でなければなりません。" + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "オプションは以前に存在しませんでした。" + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "パースされた設定セクションに設定セクションがありません! ミス: %s" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "保存された設定オプション: %(config)s = %(value)s" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "設定を保存できませんでした: %s" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "オプション名はINIセクション間で一意ではありません! リゾルバーは無効です。" + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "デフォルトのINIファイルを %sに保存できませんでした" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "レベルに戻ります:%(value)s\"が無効です: %(fallback)s" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "オプション [%(section)s] > %(option)s は 100 %% (%(value)s) より大きい値を持ち、代わりに %(fallback)s に設定されます。" + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "INIファイルエントリの名前を変更 [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "名前を変更したオプション付き設定ファイルをアップグレード中..." + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "設定のアップグレードに失敗しました。手動でアップグレードする必要があります。" + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "ブロックリストファイルが見つかりません: %s" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "ファイルからブロックリストを読み込めませんでした: %s" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "ブロックリストファイルを更新できませんでした: %s" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr "%s エントリでユーザーブロックリストを読み込みました。" + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "レガシーブラックリストファイルを見つけました。名前は %sに変更されます。" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr "%s エントリでソングブロックリストをロードしました。" + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "ID0のギルドのデータをロードできません。コード内のバグでしょう!" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "ギルド %(id)s/%(name)s のファイルがありません" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "IDを持つギルドのギルドデータをロードしています: %(id)s/%(name)s" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "ギルドデータファイル %s の読み込みに失敗しました。" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "Guild %(id)s/%(name)s にカスタムコマンドプレフィックスがあります: %(prefix)s" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "ID 0のギルドのデータを保存できません。コード内のバグです!" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "OS エラーのため、ギルド固有のデータを保存できませんでした。" + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "無効なデータのため、ギルド固有のデータをシリアライズできませんでした。" + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "ユーザーエージェントの使用を強制する YTDLP : %s" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "MusicBotはyt-dlpにクッキーを使用します: %s" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "Yt-dlpは設定したプロキシサーバーを使用します。" + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "ヘッダがないみたいだな。" + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "タイムアウトのためメディアヘッダーの確認に失敗しました。" + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "%sへのヘッド要求に失敗しました" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "HEAD リクエストの例外: " + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "サニタイズYTDL抽出情報(JSONではありません):\n" +"%s" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "サニタイズYTDL抽出情報 (JSONではありません): %s" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "曲情報の抽出はデータを返しませんでした。" + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "extract_infoと呼ばれる: '%(subject)s', %(args)s, %(kws)s" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "抽出を実行できません。ループは閉じられています。(シャットダウン時は正常です)" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "抽出を続行できません。イベントループは閉じられています。" + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "SpotifyのURLが無効かサポートされていません。" + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "データのダウンロード中にyt-dlpでエラーが発生しました: %(raw_error)s" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "ストリームURLのダウンロードエラー" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "コンテンツがダイレクトストリームであると仮定する" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "無効なURLをストリーミングできません。" + +#: musicbot/downloader.py:517 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "NoSupportingHandlersをキャッチし、コロンをスペースに置き換えた後に再試行します。" + +#: musicbot/downloader.py:544 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "Extractorのyoutube:searchはシングルエントリ結果を返し、基本情報をエントリ情報に置き換えます。" + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "safe_extract_infoと呼ばれています: %(args)s, %(kws)s" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "ローカルメディアファイルが見つかりません。" + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "YtdlpResponseDictから__input_subjectがありません" + +#: musicbot/downloader.py:623 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "エントリは YtdlpResponseDict のリストではありません。 process=True に設定してこれを回避します。" + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "警告、期間エラー: %(url)s" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "'pymediainfo' モジュールが見つかりません。ffprobe に戻ります。" + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "%r のために未来を作成しました" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "%(entry)r の %(callback)r の先物を完成させました" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "_for_each_future コールバックで未処理の例外です。" + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "asyncio サブプロセス (%(process)s) をコマンド: %(run)s で開始" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "抽出はこのエントリの期間を提供しませんでした。\n" +"MusicBotはダウンロードされるまでキューの時間を推定できません。\n" +"エントリ名: %s" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "Entry data is missing version number, cannot deerialize." + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "Entry data has the wrong version number, cannot deerialize." + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "Deserialized URLPlaylistEntry cannot find channel with ID: %s" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "Deserialized URLPlaylistEntry has the wrong channel type: %s" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized URLPlaylistEntry cannot find author with ID: %s" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "%s を読み込めませんでした" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Spotifyのリンクをダウンロードできません。 %(type)s" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "エントリの準備をしています: %r" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "別の拡張機能でキャッシュをダウンロード..." + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "ローカルサイズとリモートサイズが異なります。再ダウンロード中..." + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "既にキャッシュされているダウンロード: %s" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "MusicBotはこのエントリの期間データを取得できませんでした。\n" +"このトラックがクリアされるまでキューの時間推定は利用できません。\n" +"エントリファイル: %s" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "ファイルの %(time)s 秒間の持続時間: %(file)s" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." +msgstr "おそらくFFmpegの奇妙な設置によって引き起こされるEQを解決するには問題があります。 これはBotの機能に影響を与えていませんが、トラックがイコライズされないことを意味します。" + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "エントリデータを確認中の例外" + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "pymediainfo経由で継続時間を取得しようとしています: %s" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "pymediainfo経由で継続時間を取得できませんでした。" + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "ffprobe 経由で継続時間を取得しようとしています: %s" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "パス内の ffprobe が見つかりませんでした!" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "FFプローブは使えないものを返しました" + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "何らかの理由でFFプローブを実行できなかった" + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "%s の平均音量を計算しています" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "パス上にffmpegが見つかりませんでした!" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr "jsonの正規化で「I」を解析できませんでした。" + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr "jsonの正規化で「LRA」を解析できませんでした。" + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr "jsonの正規化で「TP」を解析できませんでした。" + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr "json正規化で「しきい値」を解析できませんでした。" + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr "jsonの正規化で「オフセット」を解析できませんでした。" + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "ダウンロード開始: %r" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "ダウンロードの試み %s / 3..." + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "%(time).1f秒でダウンロードできません。理由: %(raw_error)s" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "ダウンロードに失敗しました。再試行できませんでした!理由: %(raw_error)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "エラーが発生したため、ダウンロードが完了しませんでした: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "yt-dlpエラーのためダウンロードに失敗しました: %(raw_error)s" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "抽出で処理されていない例外が発生しました。" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "未処理の例外のためダウンロードに失敗しました: %(raw_error)s" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "ダウンロードに失敗しました: %r" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "要求されたメディアのデータの抽出に失敗しました。" + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "ダウンロードが完了しました: %r" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "Deserialized StreamPlaylistEntry has the wrong channel type: %s" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized StreamPlaylistEntry cannot find author with ID: %s" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized StreamPlaylistEntry には作者IDがありますが、検索のためのチャンネルはありません!" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized LocalFilePlaylistEntry にはauthor IDがありますが、検索のためのチャンネルはありません!" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "ファイルの %(seconds)s 秒間の持続時間: %(file)s" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "キャッシュファイルの削除に失敗しました: %s" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "オーディオキャッシュディレクトリが削除されました。" + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "オーディオキャッシュディレクトリを削除または名前を変更できませんでした。" + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "オーディオキャッシュディレクトリを削除できませんでした。" + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "オーディオキャッシュに制限が設定されていません。削除するものはありません。" + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "オーディオキャッシュは %(number)s ファイルを削除しました。 %(size)s の合計が削除されました。" + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "自動プレイリストからのオーディオキャッシュ保持 %(number)s ファイル、 %(size)s の合計。" + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "オーディオキャッシュは %(size)s ファイルよりも %(number)s になりました。" + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "オーディオキャッシュディレクトリがありません。削除するものはありません。" + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "オーディオキャッシュファイルは自動プレイリストからですが、破損した場合は無視してマークされています。" + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "キャッシュレベルをクリアする必要があります。 %s" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr "自動プレイリストにキャッシュマップがありません。移動中です。" + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr "%s エントリで自動プレイリストキャッシュマップをロードしました。" + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr "自動プレイリストキャッシュマップの読み込みに失敗しました。" + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr "%s のエントリで自動プレイリストキャッシュマップを保存しました。" + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr "自動プレイリストキャッシュマップの保存に失敗しました。" + +#: musicbot/filecache.py:355 +#, python-format +msgid "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "キー: %(file)s 古い: %(old)s 新着: %(new)s" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "ラング引数エラー: %s" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "[%s] のいずれかのログ翻訳の読み込みに失敗しました: %s" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "いずれかの不和翻訳の読み込みに失敗しました: [%s] : %s" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "JSON ファイルの読み込み中: %s" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "%s を JSON として解析中にエラーが発生しました" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "JSON キーからデータを取得できませんでした: %s" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "ロガーの設定をスキップしています。既に設定されています" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "ログレベルは、オーバーライドを介して %sに設定されています" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "ログレベルを %sに変更しました" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr "MusicBotロガーがシャットダウンするように呼び出されました。" + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "パーミッションファイルが見つかりません。コピー元: %s" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "例のパーミッションファイルのコピーエラー: %s" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr "設定 'OwnerID' が auto に設定されており、後で正しく設定されます。" + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "権限を検証しています..." + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr "オーナー権限グループに自動的に 'OwnerID' を設定します。" + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "権限ファイルのグループを更新中: %s" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "権限ファイルからグループを削除しています: %s" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "権限ファイルに新しいグループを追加: %s" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "権限ファイルを保存中です。" + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "ConfigUpdater が権限ファイルを解析できませんでした!" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "重複したセクションがあります。権限ファイルを修正してください!" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "権限グループの保存に失敗しました: %s" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "Dev Bug! 権限には利用できない権限があります。" + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "開発バグ!権限が無効な型、getterとデフォルトは同じ型でなければなりません。" + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "最大検索項目は100より大きくすることはできません。100に設定してください。" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "リクエストされたメディアを再生する権限がありません。\n" +"yt-dlp extractor `%(extractor)s` はあなたのグループでは許可されていません。" + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "クリーンアップがオーディオソースに呼び出されました: %r" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "MusicPlayer.skip() が呼び出されました: %s" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "MusicPlayer.stop() が呼び出されました: %s" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "ギルドまたはネットワークが利用できません。再生を再開できません。" + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "MusicPlayer.resume() が呼び出されました: %s" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "MusicPlayer.pause() が呼び出されました: %s" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "MusicPlayer.kill() が呼び出されました: %s" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "再生は終了しましたが、_current_entry は None です。" + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "kill_current_player() から可能な警告" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "MusicPlayer.play() が呼び出されました: %s" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "MusicPlayerが動作しません。再生できません。" + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "ギルドまたはネットワークが利用できません。再生を開始できません。" + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "MusicPlayerは以前に一時停止していました。現在のプレーヤーを再開しています。" + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "MusicPlayerはすでに再生のためにロックされています。この呼び出しは無視されます。" + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "次のエントリを取得できませんでした。" + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "再生のためのエントリを処理できませんでした。" + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "オプションでプレイヤーを作成: ffmpeg %(before)s -i %(input)s %(after)s" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "%(source)r で %(client)r を再生中" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "'%s'の削除をスキップして、キューに曲を見つけました" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "ファイルを削除しています: %s" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "ファイルを削除しました: %s" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "ファイルを削除できません。現在使用中です。" + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr "パーミッションエラーのためファイルを削除できません。" + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "ファイルを削除できません。見つかりませんでした。" + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "ファイルの削除中にエラーが発生しました。" + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "ファイルを削除できませんでした。あきらめて次に進みます" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "MusicPlayerではないオブジェクトをデシリアライズして返されました: %s" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "プレイヤーのデシリアライズに失敗しました" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "ffmpegからのデータ: %s" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "ffmpegからのエラー: %s" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "ffmpegからの警告: %s" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "ffmpegからの不明なエラーデコードメッセージ" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "ffmpegからデータをデコードしました: %s" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "URLのストリームエントリを追加しています: %(url)s" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "情報を抽出できませんでした" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "これはプレイリストです。" + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "Entry info appears to be a stream, adding stream entry..." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "無効なコンテンツタイプ`%(type)s`の URL: %(url)s" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "content-typeについては text/html を取得しました。これはストリームかもしれません。" + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "疑問のあるコンテンツタイプ \"%(type)s\" for url: %(url)s" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "%(subject)s の URLPlaylistEntry を追加中" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "LocalFilePlaylistEntry の追加: %(subject)s" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "ID: %s との複合プレイリストリンクから無視されたビデオ" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "曲のブロックリストにあるエントリが許可されていません: %(title)s URL: %(url)s" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "「%s」のエントリ内の曲を無視しています。許可されている最大より長くなっています。" + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "プライベートまたは削除のマークがあるため、YouTube 動画を追加しません: %s" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "アイテムを追加できませんでした" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "アイテム: %s" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "%s 不良項目をスキップしました" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "エントリのループを順序変更します。" + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "次のトラックを事前ダウンロード: %r" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "持続時間データがありません" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "現在のエントリに期間データがありません" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "track_dataが無効です。%(type)s `が得られた`track`型でなければなりません。" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "%s のプレイリストでトラック以外のエントリが無視されました" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "Spotifyのアルバムの合計タック数: %(total)s 次のURL: %(url)s" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "Spotifyアルバムの次のURLを取得: %s" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Spotifyのアルバムオブジェクトが完了しない場合があります。 %(total)s トラックが期待されますが、 %(number)sが取得されました" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "Spotifyのアルバムは最初の合計より多くのトラックを持っています。" + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "Spotifyプレイリストの合計タック数: %(total)s 次のURL: %(url)s" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "Spotifyプレイリストを取得する 次のURL: %s" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Spotifyプレイリストオブジェクトが完了しない場合があります。 %(total)s トラックを想定していますが、 %(number)sを獲得しました" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "Spotifyのプレイリストは、最初の合計よりも多くのトラックを持っています。" + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "Spotifyプレイリストには、 %s 使用可能なトラックが含まれていました。" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "応答ステータスが正しくありません: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "Response JSON decode to a dict!" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "URLへのGETリクエストの作成に失敗しました: %s" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "URLにGETできませんでした: %(url)s 理由: %(raw_error)s" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "URLへのPOSTリクエストの作成に失敗しました: %s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "URLへのPOSTを作成できませんでした: %(url)s 理由: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Spotifyからゲスト トークンを取得できませんでした。クライアント IDとクライアント シークレットを指定してみてください" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "新しいゲストモードのアクセストークンを作成しました。" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "API応答に期待されるデータが含まれていませんでした。欠落キー: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "API応答に予期しないデータが含まれていました。\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Spotifyからトークンをリクエストしました。トークンを取得できませんでした" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "新しいクライアントモードアクセストークンを作成しました。" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "API レスポンスの状態が正しくありません: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "Spotifyゲストトークンの取得に失敗しました。" + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "ゲストトークンの取得に失敗しました: %(raw_error)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "このコマンドを使用できるのはオーナーのみです。" + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "このコマンドは開発者のみが使用できます。" + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr "voice_channel が None の場合はメンバーをカウントできません。" + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "Ytdlp oauth2トークンデータの保存に失敗しました: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr "YouTube TV OAuth2トークンデータを読み込んでいます。" + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "Ytdlp oauth2トークンデータの読み込みに失敗しました: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "YouTube TV OAuth2トークンデータの保存" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr "不正なOAuth2トークンデータです。" + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "アクセストークンの有効期限が切れました。更新しています" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "YouTubeクッキーが提供されていますが、OAuth2が使用されています。問題が発生した場合は、yt-dlpにYouTubeクッキーを提供するのをやめてください。" + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "YouTube TV oauth2トークンを更新中..." + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "%s\n" +"認証フローを再起動中..." + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "oauth2 フローを開始しています..." + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "この時点で閉じた場合、アプリケーションは承認の時間が切れるまでハングアップすることができます。これは正常です。" + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr "OAuth2トークンの待機中にタイムアウトしました。" + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "デバイス コードの有効期限が切れています。yt-dlp の認証フローを再起動します。" + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "Yt-dlp OAuth2の承認に成功しました。" + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "Yt-dlp IEにOAuth2プラグインを追加: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "デフォルトの Yt-dlp クライアント: %s" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "git 実行可能ファイルが見つかりませんでした。" + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "`git pull` を現在のパスにアップグレードしようとしています。" + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "git pullの結果: %s" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "アップグレードに失敗しました。手動で`git pull`を実行する必要があります。" + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "pipを実行できません。" + +#: run.py:180 +msgid "Error using -m method" +msgstr "-m メソッドの使用エラー" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "サブプロセスの呼び出し中にPIPが失敗しました。" + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr "パーミッションエラーのため、PIP が失敗しました。" + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "Python実行中にPIPが失敗しましたか? (%s)" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "OSError のため、PIP が失敗しました。" + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "PIP更新レポートJSONをデコードできませんでした。" + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "Pythonが見つからないか、実行できません -m pip" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "現在のパスで`%s`でアップグレードしようとしています..." + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "Pip アップグレードの結果:\n" +"%s" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "pip アップグレードの結果終了コード: %s" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "アップグレードの実行に失敗したか、出力を理解できませんでした" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "`%s`を手動で実行する必要があります。" + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "続行するにはEnterキーを押します. . . . . . ." + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "健全性チェックを開始中" + +#: run.py:361 +msgid "Required checks passed." +msgstr "必要なチェックが完了しました。" + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "更新の確認をスキップしました。" + +#: run.py:376 +msgid "Optional checks passed." +msgstr "オプションのチェックが完了しました。" + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "Python 3.8以上を確認しています" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "Python 3.8+ が必要です。このバージョンは %s です。" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "Python 3.8 を見つけようとしています..." + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "py.exe が見つかりませんでした" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "`py.exe -3.8` を実行できませんでした " + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "Python 3 が見つかりました。botを起動中..." + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "\"python3.8\"を試しています" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "パス上で python3.8 が見つかりませんでした。" + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "\n" +"Python 3.8 が見つかりました。ボットの再起動: %s run.py\n" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "Python 3.8 以上を見つけることができませんでした。Python 3.8 を使用してボットを実行してください" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "適切な環境であることを確認する" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "失敗した環境チェック、 %s" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "Current working directory does not be writable" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "Botを書き込み可能なフォルダに移動してください" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "検出されたFFmpegがインストールされています: %s" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "ffmpegにローカルのbins/フォルダ環境PATHを追加する" + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "MusicBotがあなたの環境でFFmpegバイナリを見つけることができませんでした。\n" +"PATH変数で利用できるようにFFmpegをインストールしてください。" + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "Windowsでは、コンパイル済みEXEをMusicBot `bin`フォルダに追加できます。\n" +"またはWinGetを使用してFFmpegシステム全体をインストールするか、またはインストールを実行することができます。 ファイルに" + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "MacOSでは、Homebrew経由でFFmpegをインストールすることができます。\n" +"そうでなければ、公式FFmpegサイトでビルドまたはインストール手順を確認してください。" + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "Linuxの場合、多くのdistrosはシステムパッケージマネージャを介してFFmpegを利用可能にします。\n" +"システムパッケージマネージャでffmpegを確認するか、ソースからビルドします。" + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "%sMB 未満の空き容量がこのデバイスに残っています" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "\n" +"MusicBotのアップデートや依存関係の確認..." + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "`git`コマンドで利用可能なMusicBotのアップデートはありません。" + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "`git` コマンドを使用してアップデートを確認できませんでした。手動で確認する必要があります。" + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "以下のパッケージを更新できます:\n" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr " %s からバージョン: %s\n" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "`pip`コマンドで利用可能な依存関係の更新はありません。" + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "`pip`コマンドを使用してアップデートを確認できませんでした。手動で確認する必要があります。" + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "\n" +" %s ./update.py コマンドを使用してガイド付き更新を実行できます。" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "値は最大限を超えています。" + +#: run.py:638 +msgid "Value must not be negative." +msgstr "値は負であってはなりません。" + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "保持される最大ログの値は0から %sまでの数値でなければなりません" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "ログレベル「%s」は利用できません。" + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "ログレベルは次のいずれかでなければなりません: %s" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "discord.py、youtubeDL、ffmpegを使用して構築されたDiscordボットを再生している音楽を起動します。" + +#: run.py:669 +msgid "Available via Github:" +msgstr "Github で利用可能:" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "このボットでより多くの助けとサポートが得られるように、私たちのdiscordに参加してください。" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "このソフトウェアはMITライセンスの下で提供されています。" + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "詳細については、 `LICENSE` テキストファイルを参照してください。" + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "MusicBotのすべてのテキストのデフォルト/システム検出言語を上書きします。" + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "MusicBotからのすべてのサーバーサイドログメッセージにこの言語を使用します。" + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "MusicBotからDiscordに送信されたすべてのメッセージにこの言語を使用してください。\n" +"ギルド毎の言語の選択を防ぐことはできません。" + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "MusicBot のバージョン情報を印刷して終了します。" + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "アップデートチェックを含む、オプションの起動チェックをすべてスキップします。" + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "起動時にディスク容量の確認だけをスキップします。" + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "起動時にアップデートの確認だけをスキップします。" + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "MusicBot が依存関係をインポートできない場合のインストールを無効にします。" + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "保存するログ ファイルの数を指定します。0 から %s までです。(デフォルト: %s)" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "設定で設定されたログレベルの設定を上書きします。以下のいずれかにする必要があります: %s" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "ログファイルを回転させるときに使用されるデフォルトの日付書式を上書きします。これは、strftime() と互換性のある値を含む必要があります。(デフォルト: '%s')" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "バージョン: %s" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "新しいMusicBotインスタンスを開きました。この端末は安全に閉じることができます!" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "MusicBot のバージョンを読み込み中: %s" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "ログを開きました: %s" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "Python version: %s" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "作業ディレクトリの変更: %s" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "ボットを起動できません!`run.py`を間違ったディレクトリから起動したため、`musicbot`と`が見つかりませんでした。 新しいディレクトリの場所を確認するためのフォルダです。" + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "MusicBotをクローンしたフォルダから、`run.py`を起動してください。\n" +"リポジトリのクローンにgit を使用していない場合は、強くお勧めします。" + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "Certificate error is not a verification error not trying certifi and exiting." + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "ここに正確なエラーがあり、バグがある可能性があります。" + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "デフォルトのトラストストアから発行者証明書を取得できませんでした。代わりに証明書を試してみてください。" + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "構文エラー(変更が検出されました。コードを編集しましたか?)" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "構文エラー(これはバグであり、障害ではありません)" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "" + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "MusicBot依存パッケージを自動的にインストールしようとしています...\n" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "OK、依存関係のインストールがうまくいったことを願っています!" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "MusicBot がパッケージをインストールしようとしてImportError を受け取りました。MusicBot は終了する必要があります..." + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "上記のエラーを引き起こした例外: " + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "MusicBot がソフトな再起動を行っています..." + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "MusicBot が完全な再起動処理を行っています..." + +#: run.py:1169 +msgid "Error starting bot" +msgstr "ボット起動時のエラー" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "イベントループを閉じています。" + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "%s 秒後に再起動中..." + +#: run.py:1183 +msgid "All done." +msgstr "すべて完了です。" + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "OK、閉店中です!" + diff --git a/i18n/ja_JP/LC_MESSAGES/musicbot_messages.mo b/i18n/ja_JP/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..d21073bc5f9fad794ff1a7700dd782800eceb252 GIT binary patch literal 89526 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 %(max)s)" +msgstr "曲の再生時間が制限を超えています(%(length)s > %(max)s)" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "次にプレイ!" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "%(position)s - 再生までの推定時間: `%(eta)s`" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "%(position)s - プレイするまでの時間を見積もることはできません。" + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "ストリーミングプレイリストはまだサポートされていません。" + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "トラックをストリーミング中 `%(track)s`" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr " 検索クエリで多数の結果をサービスで検索します。\n" + +#: musicbot/bot.py:4432 +msgid " Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr " YouTubeでクエリを検索しますが、カスタムの結果数を取得します。\n" +" 注意: この場合はダブルクォートが必要です。\n" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "プレイリストアイテムの上限に達しました (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "検索クエリを指定してください。詳細は `ヘルプ検索` を使用してください。" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "%(max)s 以上の動画を検索することはできません" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "動画を検索しています..." + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "エラーのため検索に失敗しました: %(error)s" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "動画が見つかりません。" + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "曲を選択するには、対応する番号を入力します。" + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "%(service)s からの検索結果 :" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "**%(index)s**. **%(track)s** | %(length)s" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "\n" +"**0** . キャンセル" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "曲を選択" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "曲[%(track)s](%(url)s) をキューに追加しました。" + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "結果 %(number)s of %(total)s: %(url)s" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "よし、すぐに来るぞ!" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "現在プレイ中の情報を表示します。" + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "[autoplaylist]" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "再生中" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "現在ストリーミング中:" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "現在プレイ中:" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "追加者:" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "`%(user)s`" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "進行状況:" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "曲がキューに追加されていません! playコマンドで何かをキューに追加します。" + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "あなたのチャンネルに参加するようMusicBotに伝えてください。" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "音声に接続されていません。音声チャンネルに参加してみてください!" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "`%(channel)s に接続しました`" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "MusicBotがサーバー内のチャンネルを変更したときにユーザーに従うようにします。\n" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "もうユーザーをフォローしていません `%(user)s`" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "ボイスチャンネル間のユーザー`%(user)s`をフォローしました。" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot はサーバーのメンバーではないユーザーをフォローできません。" + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "ボイスチャンネル間のユーザー`%(user)s`に従います。" + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "トラックが再生中の場合、再生を一時停止します。" + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "音楽を一時停止しました`%(channel)s`" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "プレイヤーがプレイしていません。" + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "プレーヤーが以前に一時停止していた場合、再生を再開します。" + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "音楽を%(channel)s で再開しました" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "再開された音楽キュー" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "プレイヤーは一時停止されていません。" + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "キュー内の現在のトラックをすべてシャッフルします。" + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "キュー内のすべての曲をシャッフルしました。" + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "現在キュー内のすべての曲を削除します。" + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "キューからすべての曲を消去しました。" + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "削除するキューがありません!" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "削除された`%(track)s` によって追加された`%(user)s`" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "`%(user)s`からのキューには何も見つかりませんでした。" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "キューからそのエントリを削除する権限がありません。\n" +"キューに登録した方、または即座にスキップ権限を持っている必要があります。" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "無効なエントリ番号です。キューの位置を見つけるには、キューコマンドを使用してください。" + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "削除された項目 `%(track)s`" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "スキップできません!プレイヤーがプレイしていません!" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "次の曲「%(track)s」がダウンロードされています。お待ちください。" + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "次の曲はまもなく再生されます。しばらくお待ちください。" + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "奇妙なことが起きています。\n" +"動作し始めない場合は再起動してください。" + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "奇妙なことが起きています。\n" +"動き始めない場合は再起動してください。" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "ループされた曲をスキップする権限がありません。" + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "`%(track)s`を強制スキップしました。" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "スキップを強制する権限がありません。" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "ループ曲をスキップする権限がありません。" + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "`%(track)s`へのスキップが確認されました。\n" +"スキップへの投票が完了しました。%(next_up)s" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr " 次の曲が登場!" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "`%(track)s`へのスキップが承認されました。\n" +"この曲をスキップするには**%(votes)s**以上の投票が必要です。" + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "現在のボリューム: `%(volume)s%%`" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "'%(new_volume)s' は有効な数字ではありません" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "**%(old)d**から**%(new)d **までの音量を更新しました **" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "不合理なボリューム変更が提供されました: %(old_volume)s%(adjustment)s は %(new_volume)sです。\n" +"ボリュームは1から100まで設定できます。" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "不合理なボリュームが提供されました: %(volume)s. 1から100までの値を入力してください。" + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "トラックが再生されていないため、速度を設定できません。\n" +"デフォルトの再生速度を設定するにはconfigコマンドを使用してください。" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "ストリームメディアには速度を適用できません。" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "設定する速度を提供する必要があります。" + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "指定した速度が無効です。0.5 から 100までの数字を使用してください。" + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "現在のトラックの再生速度を「%(speed).3f」に設定しました。" + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr " オプション引数を持つ新しいエイリアスを追加します。\n" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr " 指定された名前のエイリアスを削除します" + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr " 設定ファイルからエイリアスをリロードまたは保存します。" + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "ディスコードからエイリアスを管理できます。エイリアスを表示するにはヘルプコマンドを使用します。" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "コマンドの無効なオプション: `%(option)s`" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "エイリアスが設定ファイルからリロードされました。" + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "エイリアスを設定ファイルに保存しました。" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "エラーのためエイリアスを保存できませんでした:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "エイリアスにエイリアスとコマンドを提供する必要があります" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "新しいエイリアスが追加されました。`%(alias)s`は`%(command)s`のエイリアスになりました。" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "削除するにはエイリアス名を入力してください。" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "The alias `%(alias)s` does not exist." + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "エイリアス`%(alias)s`は削除されました。" + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr " 不足している設定オプションについてヘルプテキストを表示します。\n" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr " 設定ファイルの読み込み時に変更されたオプションの名前を一覧表示します。\n" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr " 利用可能な設定オプションとそのセクションを一覧表示します。\n" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr "" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr " 特定のオプションのヘルプテキストを表示します。\n" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr " オプションの現在の値を表示します。\n" + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr " 現在の値をオプションファイルに保存します。\n" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr " オプションを検証し、セッションの設定をファイルではなく設定します。\n" + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr " オプションをデフォルト値にリセットします。\n" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "Discord内で options.ini の設定を管理します。" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "設定では、チャンネルとユーザーのメンションを同時に使用できません。" + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to %(default)s```\n" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "*すべての設定オプションが存在し、考慮されています!*" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "設定オプションは変更されていません。" + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "**変更されたオプション:**\n" +"%(changed)s" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "## 利用可能なオプション:\n" +"**編集可能なオプション:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "設定オプションが正常にファイルから再読み込みされました!" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "次のエラーのため設定を再読み込みできません:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "オプション名からセクション名を解決できませんでした。有効なセクション名とオプション名を入力してください。" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "与えられたオプションは曖昧です。セクション名を入力してください。" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "このコマンドのセクション名とオプション名を指定する必要があります。" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "The section `%(section)s` is not available.\n" +"The available section: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "オプション `%(option)s` は使用できません。" + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "このオプションは設定ファイルを編集することでのみ設定できます。" + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "デフォルトでは、このオプションは %(default)s に設定されています" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "オプション `%(option)s` は編集できません。ディスクに保存できません。" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "オプションの保存に失敗しました: `%(option)s`" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "正常にオプションを保存しました: `%(config)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "Option `%(option)s` は編集できません。値を表示できません。" + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "オプション `%(option)s` は編集できません。設定を更新できません。" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "このサブコマンドのセクション、オプション、値を指定する必要があります。" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "Option `%(option)s` は更新されませんでした!" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "オプション `%(option)s` は編集できません。デフォルトにリセットできません。" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "Option `%(option)s` はデフォルトにリセットされませんでした!" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "オプション `%(config)s` はデフォルト値の `%(default)s` にリセットされました。\n" +"変更を保存するには、 `config save %(section)s %(option)s ` を使用してください" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "非推奨のコマンドは、configコマンドを使用してください。" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "option コマンドは推奨されません。config コマンドを使用してください。" + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "設定された制限に従ってキャッシュストレージまたはキャッシュクリアに関する情報を表示します。\n" +"updateオプションを使用すると、詳細を表示する前に外部の変更のキャッシュをスキャンします。" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "無効なオプションが指定されました。情報、更新、またはクリアを使用してください。" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "無効" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "有効" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "%(time)s 日" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "無制限です" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "**ビデオキャッシュ:** *%(state)s*\n" +"**ストレージ制限:** *%(size)s*\n" +"**タイム制限:** *%(time)s*\n\n" +"**キャッシュされた: %(used)s in %(files)s file(s)." + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "キャッシュがクリアされました。" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**キャッシュの削除に失敗しました。ログの詳細を確認してください。" + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "クリアするキャッシュが見つかりません。" + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "現在のプレイヤーキューについての情報を表示します。\n" +"オプションのページ番号は、キューの後のエントリを表示します。\n" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "キューページ引数は整数でなければなりません。" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "要求されたページ番号が範囲外です。\n" +"**%(total)s** ページがあります。" + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "(不明な期間)" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "現在プレイ中: `%(title)s`\n" +"追加: `%(user)s`\n" +"進捗: `[%(progress)s/%(total)s]`\n" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "**エントリ #%(index)s:**タイトル: `%(title)s`\n" +"によって追加されました: `%(user)s\n\n" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "%(progress)s%(total)s`エントリーがキューにあります。\n" +"次回の %(per_page)s 曲は、曲 #%(start)s\n\n" +"%(tracks)s から始まります。" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "キュー内の曲" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "もう一度お試しください。MusicBotはキューメッセージへの参照を作成できませんでした。\n" +"問題が解決しない場合は、バグレポートを送信してください。" + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "無効なパラメータです。検索するために、多数のメッセージを入力してください。" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "プライベート DM チャンネルでパージを使用できません。" + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "%(number)s メッセージをクリーンアップしました。" + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "Botにメッセージを管理する権限がありません。" + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr "プレイリストの個々の URL をファイルにダンプします。" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "指定されたURLは有効なURLではありませんでした。" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "これはプレイリストではないようです。" + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "次のプレイリストダンプがあります: %(url)s" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "DiscordユーザーID、またはメンションユーザーのIDを表示します。\n" +"このコマンドはDiscordクライアントの開発者モードを支持して非推奨です。\n" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "あなたのユーザーIDは `%(id)s`" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "`%(username)s`のユーザーIDは`%(id)s`です" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "有効なカテゴリ: %(cats)s" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "要求されたIDは次のとおりです:" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permissions of the mentioned user." +msgstr "アクセス権の一覧、またはメンションされたユーザーの権限を取得します。" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "無効なユーザーIDまたはサーバーニックネームです。IDを再確認してもう一度やり直してください。" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "discordユーザーを特定できませんでした。もう一度お試しください。" + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "%(server)s のコマンドパーミッションは以下の通りです:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "%(username)s の %(server)s のコマンドパーミッションは:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr " ロードされたグループと権限オプションを表示します。\n" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr " パーミッション.ini ファイルからパーミッションを再読み込みします。\n" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr " 新しいグループをデフォルトで追加します。\n" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr " 既存のグループを削除します。\n" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr " 権限オプションのヘルプテキストを表示します。\n" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr " 指定されたグループと権限の権限値を表示します。\n" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr " 権限グループをファイルに保存します。\n" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr " グループの権限値を設定します。\n" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "discord内からpermissions.iniの設定を管理します。" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "権限は同時にチャンネルとユーザーメンションを使用することはできません。" + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "権限がファイルから正常に再読み込みされました!" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "エラーが発生したため権限を再読み込みできません:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "## 利用可能なグループ:\n" +"%(groups)s\n" +"## 利用可能なオプション:\n" +"%(options)s\n" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "このコマンドのグループまたはオプション名を指定する必要があります。" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "このコマンドに設定するには、グループ、オプション、値を指定する必要があります。" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "%(option)s サブコマンドにはグループ名と権限名が必要です。" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "The group `%(group)s` is not available.\n" +"The available groups is : %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "パーミッション`%(option)s`は利用できません。" + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "この権限は権限ファイルを編集することでのみ設定できます。" + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "デフォルトでは、この権限は次に設定されています: `%(value)s`" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**権限:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "グループを追加できません`%(group)s` が既に存在します。" + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "組み込みグループを削除できません。" + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "オーナーグループは編集できません。" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "グループの保存に失敗しました: `%(group)s`" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "グループを正常に保存しました: `%(group)s`" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "パーミッション`%(option)s`は更新されませんでした!" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "パーミッション`%(permission)s` が更新されました。\n" +"変更を保存するには、 `setperms save %(section)s %(option)s ` を使います。" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "discord上のボットのユーザー名を変更します。\n" +"注意: APIは名前の変更を1時間に2回まで制限する場合があります。" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "ユーザー名の変更に失敗しました。名前の変更回数が多すぎましたか?\n" +"名前の変更は1時間に2回に制限されています。\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "エラーのためユーザー名を変更できませんでした: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "ボットのユーザー名を `%(name)s` に設定します。" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "MusicBotのニックネームを変更します。" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "ニックネームを変更できません: 権限がありません。" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "エラーのためニックネームを設定できませんでした: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "ボットのニックネームを `%(nick)s` に設定しました" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr " サーバー毎のコマンドプレフィックスを設定します。" + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr " サーバー毎のコマンドプレフィックスをクリアします。" + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "サーバーのデフォルトのコマンドプレフィックスを上書きします。\n" +"オプションEnablePrefixPerGuildが最初に有効になっている必要があります。" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "プレフィックスとして使用するには、このサーバーからカスタム絵文字を使用する必要があります。" + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "サーバーのコマンドプレフィックスがクリアされました。" + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "サーバーのコマンドプレフィックスは現在: %(prefix)s" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "サーバーごとのプレフィックスが有効になっていません!\n" +"configコマンドを使用して、代わりにプレフィックスを更新してください。" + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "MusicBotのアバターを変更します。\n" +"ファイルを添付してURLパラメータを省略することもできます。\n" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "URLを入力するか、ファイルを添付する必要があります。" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "エラーのためアバターを変更できません: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "ボットのアバターを変更しました。" + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "MusicBotを強制的にDiscordサーバーから切断します。" + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "サーバーから切断されました`%(guild)s`" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "現在サーバーに接続されていません `%(guild)s`" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr " プロセスを再起動せずに再読み込みしようとします。デフォルトのオプションです。\n" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr "" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr " 完全な再起動ですが、再起動前に pip パッケージを更新しようとします。\n" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr " 完全に再起動しますが、最初にGitでMusicBotのソースコードをアップデートしてください。\n" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr " 完全に再起動する前に、すべての依存関係とソースコードを更新しようとしています。\n" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "無効なオプションが与えられました。ソフト、フル、アップグレード、uppip、またはupgitのいずれかを使用してください" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "%(emoji)s 現在のインスタンスを再起動中..." + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "%(emoji)s ボットを再起動中..." + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "%(emoji)s 必要な pip パッケージのアップグレードを試み、ボットを再起動します..." + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "%(emoji)s git でボットコードを更新しようとし、ボットを再起動します..." + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "%(emoji)s はすべてをアップグレードしてボットを再起動します..." + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "すべてのボイスチャンネルから切断し、MusicBotプロセスを閉じます。" + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr " Discordサーバー名またはサーバーIDを指定したままにしてください。" + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "MusicBotに指定したDiscordサーバーから強制的に退出させます。\n" +"名前は大文字と小文字を区別しますので、ID番号を使用する方が信頼性が高くなります。\n" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "IDまたは名前を入力してください。" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "IDまたは名前のギルドが見つかりませんでした。`%(input)s`" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "不明" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "ギルドを退出: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "テストに使用されるコマンド。テストスイートで確認できるコマンドの一覧を表示します。" + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "このコマンドはレベルCRITICALでログを発行しますが、それ以外は何もしません。\n" +"MusicBotログファイルのイベントを手動で特定するために使用できます。\n" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "IDでログインしたブレークポイント: %(uuid)s" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr " Objgraphによって報告された最も一般的なタイプを表示します。\n" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr " 制限付きobjgraph.show_growth() 出力を表示します。\n" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr " 漏洩オブジェクトの最も一般的なタイプを表示します。\n" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr " 漏れたオブジェクトの型番を表示します。\n" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr " objgraphで与えられた関数と引数を評価します。\n" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "`objgraph` をインポートできませんでした。インストールされていますか?" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "デバッグコードの実行に失敗しました:\n" +"%(py_code)s\n" +"例外: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "コードからオプション、権限、またはコマンドの 'markdown' を作成します。\n" +"出力は GitHub Pages の更新に使用されるため、通常の参照使用には適していません。" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "サブコマンドは次のいずれかでなければなりません: %(options)s" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "デフォルトのINIファイルを作成します。" + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "要求されたINIファイルをディスクに保存しました。確認してください" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "現在のボットバージョンを表示し、MusicBotまたは依存関係の更新を確認します。\n" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "git 実行可能ファイルが見つかりませんでした。" + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "ブランチにアップデートはありません。`%(branch)s`リモコン。" + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "新しいコミットは、`%(branch)s`ブランチリモコンで利用できます。" + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "チェック中にエラーが発生しました。詳細はログを参照してください。" + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "Update for `%(name)s` to version: `%(version)s`\n" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "依存関係の更新は見つかりません。" + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "MusicBotのアップデートがダウンロードできます。" + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "MusicBotは完全に最新です!" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "%(status)s\n\n" +"**ソースコードの更新:**\n" +"%(git_status)s\n\n" +"**依存性の更新:**\n" +"%(pip_status)s" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "MusicBotの起動時間、または前回の起動/再起動からの時間を表示します。" + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "%(name)s は `%(time)s` のオンラインになりました" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "Discord APIと接続しているすべてのボイスクライアントのレイテンシー情報を表示します。" + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "音声クライアントが接続されていません。\n" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "MusicBotが接続されている場合は、APIレイテンシーと音声レイテンシーを表示します。" + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "自動" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "**API Latency:** `%(delay).0f ms`%(voice)s" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "チャットで MusicBot のバージョン番号を表示します。" + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "https://github.com/Just-Some-Bots/MusicBot\n" +"現在のバージョン: `%(version)s`" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr " cookies.txt 添付ファイルを使用して、cookies.txt ファイルを更新します。" + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr " cookies.txt ファイルを削除せずに有効または無効にします。" + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "クッキーは既に有効になっています。" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "クッキーを有効にするには、アップロードする必要があります。" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "エラーのためクッキーを有効にできませんでした: %(raw_error)s" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "クッキーが有効になりました。" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "エラーのためクッキーファイルの名前を変更できませんでした: %(raw_error)s\n" +"クッキーは一時的に無効化され、次回の再起動時に再度有効になります。" + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "Cookieは無効になっています。" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "添付されたアップロードが見つかりませんでした。Cookie ファイルのアップロード中に再試行してください。" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "discordからCookieファイルをダウンロード中にエラーが発生しました: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "ディスクにクッキーを保存できませんでした: %(raw_error)s" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "Cookieがアップロードされ有効になりました。" + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "このボットはプライベートメッセージでは使用できません。" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "このコマンドは権限グループには許可されていません: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "このコマンドを使用するには、ボイスチャンネルに参加する必要があります。" + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "**コマンド:** %(name)s" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "例外エラー" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "**接頭辞付き例:**\n" +"%(prefix)s`%(command)s ...`\n" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "説明がありません。\n" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "使用されていません。" + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "**使用例:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**説明:**\n" +"%(desc)s" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "音声チャンネル %(channel)s を離れています。" + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "Botの所有者が見つからなかったため、%(guild)sを残しました。" + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "MusicBotのログ詳細度を設定します。通常、これはINFOに設定する必要があります。\n" +"以下のいずれかに設定できます:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDUG, FFMPEG, NOISY," + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "BotのDiscord認証トークン\n" +"Discord開発者ポータルにアクセスしてBotアプリを作成し、トークンを生成してください。\n" +"Botトークンを公開しないでください!" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "" + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "MusicBotがSpotify APIとやり取りできるようにするには、Spotifyはクライアントシークレットを提供してください。\n" +"上記のSpotify_ClientIDオプションを設定している場合に必要です。" + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "" + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "" + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "MusicBotが無視すべきでない他のボットのDiscordメンバーID。\n" +"複数のIDを区切るにはスペースを使用してください。\n" +"デフォルトではすべてのボットは無視されます。" + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "コマンドプレフィックスは、MusicBotのすべてのコマンドをDiscordメッセージで開始する必要がある方法です。\n" +"例えば、これを * に設定すると、再生コマンドは *play によってトリガーされます。" + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "" + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "" + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "特定のチャンネルがサーバーに設定されていない間、すべてのチャンネルでのレスポンスを許可します。\n" +"BindToChannels にサーバーの ID がない場合にのみ使用されます。" + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "MusicBotが起動時に自動的に参加するボイスチャンネルIDの一覧です。\n" +"複数のIDを区切るにはスペースを使用してください。" + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "MusicBot は Now Playing の通知をサーバーチャンネルに投稿する代わりに、曲をリクエストしたメンバーに直接送信しようとします。" + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "自動プレイリスト経由で再生された曲のメッセージを無効にします。" + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "MusicBot が特定のチャンネルを使用してメッセージを送信するよう強制します。\n" +"サーバーごとに使用できるテキストチャンネル ID は 1 つだけです。" + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "MusicBotは自動的に「再生中」メッセージを削除します。" + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "MusicBotが曲を再生するデフォルトの音量レベルを設定します。\n" +"00から1までの任意の値、または0named@@1までのボリュームを使用できます。" + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "MusicBot が曲を再生するデフォルトの速度を設定します。format@@0 ffmpegを使用するには0.5〜100.0の値である必要があります。\n\n" +"1の値は通常の再生速度です。\n" +"注: ストリーミングメディアはスピード調整をサポートしていません。" + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "曲をスキップするために必要なチャンネルメンバーの投票数です。\n" +"SkipRatioがより多くの票を必要とする場合、最低限の使用をします。" + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "" + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "MusicBot がダウンロードしたメディアを保存したり、すぐに削除したりできます。" + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "SaveVideoが有効になっている場合は、使用するストレージ容量の上限を設定します。" + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "SaveVideoが有効になっている場合、ファイルの保持時間の制限を設定します。" + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "SaveVideoが有効になっている場合、制限に関係なく自動プレイリスト曲をキャッシュから削除することはありません。" + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "再生時に曲を追加したユーザーに言及します。" + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "ボットの起動時にアクセス可能な音声チャンネルにいる場合は、所有者に自動的に参加します。" + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "キューが空の場合、自動プレイリストから音楽を自動再生するには、MusicBotを有効にします。" + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "再生する前に自動プレイリストトラックをシャッフルします。" + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "ユーザーが新しい曲を再生したときに自動プレイリストの曲を自動スキップするようにします。\n" +"自動プレイリストで追加された場合にのみ、現在再生中の曲に適用されます。" + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song block list." +msgstr "曲のブロックリストから曲が見つかった場合は、自動プレイリストから曲を削除します。" + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "Allow MusicBot to automatically delete messages sends, after a delay.\n" +"Delay period is control by DeleteDelayShort and DeleteDelayLong." + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "遅延後に有効なコマンドを自動的に削除します。" + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "メッセージを削除するまでの短い秒数を設定します。\n" +"この期間は、それ以上の相互作用を必要としないメッセージで使用されます。" + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "メッセージを削除する前の長い遅延期間を設定します。\n" +"この期間は、検索やヘルプなどのインタラクティブまたは長巻きのメッセージで使用されます。" + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "MusicBotが曲のキューを保存できるようにします。キューに入った曲は再起動できます。" + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "MusicBotを有効にすると、曲の再生中に次の曲をキューにダウンロードできます。\n" +"現在、このオプションは、空のキューに追加された自動プレイリストや曲には適用されません。" + +#: musicbot/config.py:550 +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "" + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "有効にすると、ステータスメッセージは一時停止中のプレイヤーに情報を報告します。" + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "有効にすると、MusicBotはトラックタイトルをdata/[Server ID]/current.txt に保存します。" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "投票を無視して曲をスキップするように要求したメンバーを許可します。" + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "ffmpegを使用して、再生時に使用するボリューム正規化オプションを取得しようとします。\n" +"トラック全体を処理する必要があるため、このオプションは曲を再生する間の遅延を引き起こす可能性があります。" + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr "MusicBot がメッセージを埋め込み形式にすることを許可します。" + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "キューを一覧表示するために q コマンドを使用するときに、ページごとに表示するエントリ数です。" + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." +msgstr "自動再生リストから再生できないエントリを自動的に削除するには、MusicBotを有効にします。" + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "起動時にログに MusicBot の設定を表示します。" + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "InstaSkip権限を持つユーザーを有効にして、スキップ投票とスキップをバイパスします。" + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "有効にすると、オーナーがメンバーリストに登録されていない場合、MusicBotはサーバーから退出します。" + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "有効にすると、MusicBotはデータを使用して複数の名前を持つコマンドを許可します。config/aliases.json" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "埋め込みフッターのMusicBot名/バージョンをカスタムテキストに置き換えます。\n" +"UseEmbedsが有効で空白でない場合にのみ適用されます。" + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "埋め込みからフッターを完全に削除します。" + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "MusicBot は音声チャンネルに入ると自動的に聴覚障害を発生します。" + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "" + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "非アクティブなボイスチャンネルを離れる前に待機する期間を設定します。\n" +"次のような秒数またはフレーズに設定できます: 4時間" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "有効にすると、MusicBotは曲のキューが空の場合、すぐにチャンネルから退出します。" + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "一時停止または再生を停止した場合、この時間を待ってから音声を離れます。\n" +"次のようなフレーズの秒数に設定できます: 15 minutes\n" +"この方法で残りを無効にするには、0に設定します。" + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "有効にした場合、ユーザーはリアクションを使用する代わりにメッセージを送信することによって検索結果の選択を示す必要があります。" + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "検索コマンドを特定の番号なしで使用する場合に取得する検索結果のデフォルトの数を設定します。" + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "MusicBot がサーバー毎のコマンドプレフィックスを保存できるようにし、setprefix コマンドを有効にします。" + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "有効にして複数のメンバーが曲を追加している場合、MusicBotはメンバーごとに1曲の再生を整理します。" + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "" + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "MusicBotで再生されたすべての曲をグローバルプレイリストファイルに保存することを有効にします: %(filename)s\n" +"すべてのサーバーのすべての曲が含まれます。" + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "" + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "再生コマンドを使用すると、MusicBotが自動的に一時停止を解除できるようになります。" + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "ytdlp メディアダウンローダーで使用する、HTTP/HTTPS プロキシ設定を実験的に行います。\n" +"ここで設定された値は `ytdlp --proxy` と aiohttp ヘッダーチェックに渡されます。\n" +"無効にするには空白のままにします。" + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "" + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "" + +#: musicbot/config.py:920 +msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "" + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "ブロックリストを空にせずに、ユーザーのブロックリスト機能を切り替えます。" + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "DiscordユーザーIDを一行に1つリストするテキストファイルへのオプションのファイルパスです。" + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "ブロックリストを空にせずに、ソングブロックリスト機能を有効にします。" + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "URL、単語、またはフレーズを一行に一覧表示するテキストファイルへのオプションのファイルパス。\n" +"リスト内の任意の行を含む曲名やURLはブロックされます。" + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "自動プレイリストファイルを含むディレクトリへのオプションのパス。\n" +"各ファイルには、プレイ可能な URL または用語のリストが含まれている必要があります。" + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "MusicBotが長く短いキャッシュを保存するオプションのディレクトリパスです。" + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "" + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "潜在的にCPU使用率を低下させますが、音量と速度制御を無効にします。\n" +"このオプションは、UseExperimentalEqualization オプションも無効にします。" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "設定オプションの検証中にエラーが発生しました。\n\n" +"問題:\n" +" AudioCachePath 設定オプションはエラーが原因で設定できませんでした:\n" +" %(raw_error)s\n\n" +"ソリューション:\n" +" 設定が有効であることを再確認してください。 アクセス可能なディレクトリパス" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "設定の場所を特定できませんでした。\n\n" +"問題:\n" +" エラーが原因で設定ファイルを見つけることができませんでした:\n" +" %(raw_error)s\n\n" +"ソリューション:\n" +" 設定フォルダとファイルが存在することを確認し、MusicBotによって読み込まれます。" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "ヘッダがないみたいだな。" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "曲情報の抽出はデータを返しませんでした。" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "抽出を続行できません。イベントループは閉じられています。" + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "SpotifyのURLが無効かサポートされていません。" + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "データのダウンロード中にyt-dlpでエラーが発生しました: %(raw_error)s" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "無効なURLをストリーミングできません。" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "ローカルメディアファイルが見つかりません。" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Spotifyのリンクをダウンロードできません。 %(type)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "エラーが発生したため、ダウンロードが完了しませんでした: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "yt-dlpエラーのためダウンロードに失敗しました: %(raw_error)s" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "未処理の例外のためダウンロードに失敗しました: %(raw_error)s" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "要求されたメディアのデータの抽出に失敗しました。" + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "空白で区切られた使用から拒否されたコマンド名のリスト。\n" +"コマンドホワイトリストが設定されている場合は動作しません!" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "有効にすると、CommandBlacklistとCommandWhitelistが一緒に使用されます。\n" +"ホワイトリスト内のコマンドのみが許可されますが、サブコマンドはブラックリストによって拒否される可能性があります。\n" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "MusicBotと同じ音声チャンネルでのみ使用できるコマンド名のリスト。\n" +"いくつかのコマンドは、このリストにかかわらず、常にユーザーが音声になっている必要があります。\n" +"コマンド名はスペースで区切られている必要があります。" + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "この権限グループに付与されたDiscordサーバーのロールIDの一覧。\n" +"UserListが設定されている場合、このオプションは無視されます。" + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "このグループの権限を付与されたDiscordメンバーIDの一覧。\n" +"このオプションはGrantToRolesを上書きします。" + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "ユーザーがキューに登録できる曲の最大数。\n" +"0の値は無制限を意味します。" + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "曲の最大長を秒単位で指定します。0 の値は無制限を意味します。\n" +"曲の継続時間が利用できない場合、この権限は強制されないことがあります。" + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "\n" +"Aformat@@1 0の値は無制限を意味します。" + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "検索で返されるアイテムの最大数。" + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "ユーザーが一度にプレイリストまたは複数の曲をキューに入れることを許可します。" + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "LegacySkip config オプションが有効になっている場合、ユーザーは投票せずにスキップできます。" + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "ループ曲をスキップすることをユーザーに許可します。" + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "ユーザーがキューから任意の曲を削除することを許可します。\n" +"現在再生中の曲を削除またはスキップしません。" + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "曲が再生されたときに音声に入っていないユーザーが追加した曲をスキップします。" + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "カラオケモードが有効な場合、ユーザーがキューに曲を追加できるようにします。" + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "Botがすでに音声に入っていない場合、再生コマンドを使用して音声チャンネルをユーザーに自動的に召喚します。\n" +"このグループの召喚コマンドはまだ許可されていなければなりません!" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "リクエストされたメディアを再生する権限がありません。\n" +"yt-dlp extractor `%(extractor)s` はあなたのグループでは許可されていません。" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "情報を抽出できませんでした" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "これはプレイリストです。" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "無効なコンテンツタイプ`%(type)s`の URL: %(url)s" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "持続時間データがありません" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "現在のエントリに期間データがありません" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "track_dataが無効です。%(type)s `が得られた`track`型でなければなりません。" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "応答ステータスが正しくありません: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "Response JSON decode to a dict!" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "URLにGETできませんでした: %(url)s 理由: %(raw_error)s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "URLへのPOSTを作成できませんでした: %(url)s 理由: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Spotifyからゲスト トークンを取得できませんでした。クライアント IDとクライアント シークレットを指定してみてください" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "API応答に期待されるデータが含まれていませんでした。欠落キー: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "API応答に予期しないデータが含まれていました。\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Spotifyからトークンをリクエストしました。トークンを取得できませんでした" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "API レスポンスの状態が正しくありません: [%(status)s] %(reason)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "このコマンドを使用できるのはオーナーのみです。" + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "このコマンドは開発者のみが使用できます。" + diff --git a/i18n/ko_KR/LC_MESSAGES/musicbot_logs.mo b/i18n/ko_KR/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..93ece8bc1146a666de498ca9c04581a014d726c4 GIT binary patch literal 508 zcmZ8eOHTqZ5Z1&~kDfjB;L%}QSYfk-i#!qnL_${Mjg+OV)ur9ET^~QhzvWNxw>S&( za+1k(rr&(?`nkOLIzu@}y+XaN9F&`_+1PLVgvy^<^CD9Z!zDaQ>y*(k)yA(&r_zP- zWF`w^JxpAtmT*^Q4iXbnGQCfrYo+j*06pPlOzW&30_VU&%A%Ox0*e?!Ak5^Os)+yN znv{oegOjmv9uh0G%Y`=<*~da>rN|^CQmkV-GFVCPqcMFo^U;h_Q zbsgTO+h>Qh$rH|R-Z2RVD#vQUO2|O*NC&&!&2y8vT7gSE#lo %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "" + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "" + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "" + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "" + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "" + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "" + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "" + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "" + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "" + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "" + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "" + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "" + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "" + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "" + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "" + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "" + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "" + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "" + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "" + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "" + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "" + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "" + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "" + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "" + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "" + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "" + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "" + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "" + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "" + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "" + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "" + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient some how. You should probably restart the bot." +msgstr "" + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "" + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "" + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with url: %s" +msgstr "" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "" + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "" + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "" + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "" + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "" + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "" + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "" + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "" + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "" + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the autoplaylist extraction and bail." +msgstr "" + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "" + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "" + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "" + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "" + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "" + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-reponse object: %r" +msgstr "" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "" + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "" + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "" + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "" + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "" + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "" + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "" + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "" + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "" + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "" + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "" + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "" + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "" + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "" + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr "" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "" + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non-messagable channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for autojoin channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot autojoin a Private/Non-Guild channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot autojoin to non-connectable channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2451 +msgid "Autojoining voice channels:" +msgstr "" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not autojoining any voice channels" +msgstr "" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "" + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr "" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr "" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr "" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr "" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr "" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr "" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr "" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Nowplaying: %s" +msgstr "" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr "" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr "" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr "" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr "" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr "" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr "" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr "" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr "" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr "" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr "" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr "" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr "" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr "" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr "" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr "" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr "" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr "" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr "" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr "" + +#: musicbot/bot.py:2695 +#, python-brace-format +msgid "The requested song `{subject}` is blocked by the song blocklist." +msgstr "" + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "" + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "" + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from blocklist, not listed: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "" + +#: musicbot/bot.py:3152 +msgid "Ivalid sub-command given. Use `help blocksong` for usage examples." +msgstr "" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "" + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "" + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "" + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "" + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "" + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "" + +#: musicbot/bot.py:4159 +msgid "Detected a spotify URL, but spotify is not enabled." +msgstr "" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "" + +#: musicbot/bot.py:4191 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "" + +#: musicbot/bot.py:4208 +#, python-format +msgid "Youtube search returned no results for: %(url)s" +msgstr "" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with youtube:playlist as extractor key" +msgstr "" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "" + +#: musicbot/bot.py:4396 +#, python-format +msgid "Failed to exctract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "" + +#: musicbot/bot.py:5413 +msgid "The speed you proivded is invalid. Use a number between 0.5 and 100." +msgstr "" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "" + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "" + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "" + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "" + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double check the ID and try again." +msgstr "" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an errror:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "" + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "" + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "" + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "" + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "" + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "" + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "" + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "" + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "" + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "" + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "" + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "" + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "" + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "" + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "" + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "" + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "" + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "" + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "" + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "" + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "" + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "" + +#: musicbot/bot.py:8636 +#, python-brace-format +msgid "Guild attribute {name} is now: {a_val} -- Was: {b_val}" +msgstr "" + +#: musicbot/bot.py:8667 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config optoins file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "" + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "" + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "" + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "" + +#: musicbot/config.py:1240 +msgid "Acquired owner id via API" +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching OwnerID automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the OwnerID config option or try again later." +msgstr "" + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The OwnerID config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the OwnerID field." +msgstr "" + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "" + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "" + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "" + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "" + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "" + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "" + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "" + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "" + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "" + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "" + +#: musicbot/config.py:2551 +#, python-format +msgid "Blocklist file not found: %s" +msgstr "" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the blocklist file: %s" +msgstr "" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Blocklist with %s entires." +msgstr "" + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Blocklist with %s entries." +msgstr "" + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "" + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "" + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "" + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "" + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "" + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "" + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "" + +#: musicbot/downloader.py:436 +#, python-brace-format +msgid "Called extract_info with: '{song_subject}', {args}, {kwargs}" +msgstr "" + +#: musicbot/downloader.py:442 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "" + +#: musicbot/downloader.py:444 +msgid "Cannot continue extraction, event loop is closed." +msgstr "" + +#: musicbot/downloader.py:453 +msgid "Spotify URL is invalid or not supported." +msgstr "" + +#: musicbot/downloader.py:486 musicbot/downloader.py:507 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:490 +msgid "Download Error with stream URL" +msgstr "" + +#: musicbot/downloader.py:495 +msgid "Assuming content is a direct stream" +msgstr "" + +#: musicbot/downloader.py:503 +msgid "Cannot stream an invalid URL." +msgstr "" + +#: musicbot/downloader.py:514 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "" + +#: musicbot/downloader.py:541 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "" + +#: musicbot/downloader.py:557 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "" + +#: musicbot/downloader.py:577 +msgid "The local media file could not be found." +msgstr "" + +#: musicbot/downloader.py:615 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "" + +#: musicbot/downloader.py:620 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "" + +#: musicbot/downloader.py:849 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "" + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "" + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "" + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "" + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "" + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "" + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalised." +msgstr "" + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "" + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "" + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "" + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "" + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse I in normalise json." +msgstr "" + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse LRA in normalise json." +msgstr "" + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse TP in normalise json." +msgstr "" + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse thresh in normalise json." +msgstr "" + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse offset in normalise json." +msgstr "" + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "" + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "" + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "" + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "" + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "" + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "" + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "" + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "" + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "" + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "" + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "" + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "" + +#: musicbot/filecache.py:302 +msgid "Autoplaylist has no cache map, moving on." +msgstr "" + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded autoplaylist cache map with %s entries." +msgstr "" + +#: musicbot/filecache.py:314 +msgid "Failed to load autoplaylist cache map." +msgstr "" + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved autoplaylist cache map with %s entries." +msgstr "" + +#: musicbot/filecache.py:337 +msgid "Failed to save autoplaylist cache map." +msgstr "" + +#: musicbot/filecache.py:355 +#, python-format +msgid "Autoplaylist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Args Error: %s" +msgstr "" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/json.py:14 +#, python-format +msgid "Init JSON obj from file: %s" +msgstr "" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "" + +#: musicbot/logs.py:158 +msgid "Skipping logger setup, already set up" +msgstr "" + +#: musicbot/logs.py:314 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "" + +#: musicbot/logs.py:323 +#, python-format +msgid "Changing log level to: %s" +msgstr "" + +#: musicbot/logs.py:352 +msgid "MusicBot loggers have been called to shutdown." +msgstr "" + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:165 +msgid "OwnerID is set auto, will set correctly later." +msgstr "" + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "" + +#: musicbot/permissions.py:184 +msgid "Setting auto OwnerID for owner permissions group." +msgstr "" + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permssions file: %s" +msgstr "" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "" + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "" + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "" + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "" + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "" + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "" + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "" + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "" + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "" + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "" + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "" + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "" + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permissions error." +msgstr "" + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "" + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "" + +#: musicbot/player.py:521 +msgid "[Config:SaveVideos] Could not delete file, giving up and moving on" +msgstr "" + +#: musicbot/player.py:583 +#, python-format +msgid "Deserialize returned a non-MusicPlayer: %s" +msgstr "" + +#: musicbot/player.py:588 +msgid "Failed to deserialize player" +msgstr "" + +#: musicbot/player.py:650 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:660 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:668 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:697 +msgid "Unknown error decoding message from ffmpeg" +msgstr "" + +#: musicbot/player.py:701 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "" + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "" + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "" + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding youtube video because it is marked private or deleted: %s" +msgstr "" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "" + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spofity Album Next URL: %s" +msgstr "" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "" + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spofity Playlist Next URL: %s" +msgstr "" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "" + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client id and client secret" +msgstr "" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "" + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "" + +#: musicbot/utils.py:175 +msgid "Only the owner can use this command." +msgstr "" + +#: musicbot/utils.py:195 +msgid "Only dev users can use this command." +msgstr "" + +#: musicbot/utils.py:281 musicbot/utils.py:323 +msgid "Cannot count members when voice_channel is None." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading Youtube TV OAuth2 token data." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing Youtube TV OAuth2 token data" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:127 +msgid "validate ytdlp token..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:137 +msgid "init oauth for ytdlp" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:141 +msgid "Invalid cached OAuth2 token data." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:156 +msgid "Access token expired, refreshing" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:167 +msgid "handling oauth2" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:178 +msgid "Youtube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing Youtube cookies to yt-dlp." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:196 +msgid "refreshing oauth2 token" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:214 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:232 +msgid "Starting oauth2 flow..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:251 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:260 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:266 +msgid "Timed out while waiting for OAuth2 token." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:294 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:300 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:330 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:352 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "" + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "" + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "" + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "" + +#: run.py:180 +msgid "Error using -m method" +msgstr "" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "" + +#: run.py:229 +msgid "PIP failed due to Permissions Error." +msgstr "" + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "" + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "" + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "" + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "" + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "" + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "" + +#: run.py:361 +msgid "Required checks passed." +msgstr "" + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "" + +#: run.py:376 +msgid "Optional checks passed." +msgstr "" + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "" + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "" + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "" + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "" + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "" + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "" + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "" + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "" + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "" + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "" + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "" + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "" + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr "" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "" + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "" + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "" + +#: run.py:638 +msgid "Value must not be negative." +msgstr "" + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "" + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "" + +#: run.py:669 +msgid "Available via Github:" +msgstr "" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "" + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "" + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "" + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "" + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "" + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "" + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "" + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "" + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "" + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "" + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "" + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "" + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "" + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "" + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "" + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "" + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "" + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "" + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "" + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "" + +#: run.py:1169 +msgid "Error starting bot" +msgstr "" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "" + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "" + +#: run.py:1183 +msgid "All done." +msgstr "" + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "" + diff --git a/i18n/ko_KR/LC_MESSAGES/musicbot_messages.mo b/i18n/ko_KR/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..707130469e8369b5ce82701d711c615ca73792d3 GIT binary patch literal 512 zcmZ8eOHTqZ5XQt)kDfjB;L%}QSY@+>i#!qnL_${Mjg+OV)!lZ}79T&vKjshcw>S&( za+1k(rr&(?`nfp&s-c{rUZP%A4$Ae`Z0t9FLgi1bd6B7y;SwIDb;{_NYU7KwQ|ZEZ zGLxmT9wshROSoHS4iXbnGQCfrYo+j*06pPlOdG5b0_VU&%A%Ox0E-wyAk5^Os)+yN zZYdArCMRRzJS0|VmkVz!vX6z%)*_RTNKwReWU!LnM`QYG=A#*z3@80V)4a||*Jv*_ zl6{ugke44mD0887o2JjgI_WzP$pE4Qt}42c7Wz6hOQo}zMhoT1G+$eh!@$_W;X2BV z>pHwmx6cl1lP8?tykim!RF2hxm5_nrkq&mdn-|hKoWj*hT;wSphCSR^bQImqTupZr V{=3iVQ4U=D^C4ZU88Y4?wO^WLoKye+ literal 0 HcmV?d00001 diff --git a/i18n/ko_KR/LC_MESSAGES/musicbot_messages.po b/i18n/ko_KR/LC_MESSAGES/musicbot_messages.po new file mode 100644 index 000000000..58f5531b2 --- /dev/null +++ b/i18n/ko_KR/LC_MESSAGES/musicbot_messages.po @@ -0,0 +1,2868 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-04 08:15-0800\n" +"PO-Revision-Date: 2024-11-06 14:31\n" +"Last-Translator: \n" +"Language-Team: Korean\n" +"Language: ko_KR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: ko\n" +"X-Crowdin-File: /fae/i18n/musicbot_messages.pot\n" +"X-Crowdin-File-ID: 28\n" + +#: musicbot/aliases.py:56 +msgid "Error while loading alises.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" + +#: musicbot/bot.py:840 +msgid "MusicBot does not have permission to speak." +msgstr "" + +#: musicbot/bot.py:844 +msgid "MusicBot could not request to speak." +msgstr "" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "" + +#: musicbot/bot.py:1084 +#, python-format +msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" +msgstr "" + +#: musicbot/bot.py:1102 +#, python-format +msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" +msgstr "" + +#: musicbot/bot.py:1111 +#, python-format +msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" +msgstr "" + +#: musicbot/bot.py:1122 +#, python-format +msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" +msgstr "" + +#: musicbot/bot.py:1333 +#, python-format +msgid "Skipping songs added by %(user)s as they are not in voice!" +msgstr "" + +#: musicbot/bot.py:1555 +#, python-format +msgid "Playback failed for song `%(song)s` due to an error:\n" +"```\n" +"%(error)s```" +msgstr "" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "" + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2695 +#, python-brace-format +msgid "The requested song `{subject}` is blocked by the song blocklist." +msgstr "" + +#: musicbot/bot.py:2831 +msgid "Reset the auto playlist queue by copying it back into player memory.\n" +"This command will be removed in a future version, replaced by the autoplaylist command(s)." +msgstr "" + +#: musicbot/bot.py:2846 +msgid "\\N{OK HAND SIGN}" +msgstr "" + +#: musicbot/bot.py:2853 +msgid "Show usage and description of a command, or list all available commands.\n" +msgstr "" + +#: musicbot/bot.py:2888 +msgid "**Aliases for this command:**\n" +msgstr "" + +#: musicbot/bot.py:2891 +#, python-format +msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" +msgstr "" + +#: musicbot/bot.py:2924 +#, python-format +msgid "**Alias of command:**\n" +" `%(command)s`\n" +msgstr "" + +#. TRANSLATORS: template string for command-specific help output. +#: musicbot/bot.py:2931 +#, python-format +msgid "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" +msgstr "" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "" + +#: musicbot/bot.py:2959 +#, python-format +msgid "The list above shows only commands permitted for your use.\n" +"For a list of all commands, run: %(example_all)s\n" +msgstr "" + +#: musicbot/bot.py:2965 +#, python-format +msgid "**Commands by name:** *(without prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Command Prefix:** %(prefix)s\n\n" +"For help with a particular command, run: %(example_command)s\n" +"%(all_note)s" +msgstr "" + +#: musicbot/bot.py:2984 +msgid " Block a mentioned user." +msgstr "" + +#: musicbot/bot.py:2987 +msgid " Unblock a mentioned user." +msgstr "" + +#: musicbot/bot.py:2990 +msgid " Show the block status of a mentioned user." +msgstr "" + +#: musicbot/bot.py:2994 +msgid "Manage the users in the user block list.\n" +"Blocked users are forbidden from using all bot commands.\n" +msgstr "" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "" + +#: musicbot/bot.py:3059 +msgid "User block list is currently enabled." +msgstr "" + +#: musicbot/bot.py:3061 +msgid "User block list is currently disabled." +msgstr "" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "" + +#: musicbot/bot.py:3078 +#, python-format +msgid "%(number)s user(s) have been added to the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3089 +msgid "None of those users are in the blacklist." +msgstr "" + +#: musicbot/bot.py:3094 +#, python-format +msgid "User: `%(user)s` is not blocked.\n" +msgstr "" + +#: musicbot/bot.py:3096 +#, python-format +msgid "User: `%(user)s` is blocked.\n" +msgstr "" + +#: musicbot/bot.py:3099 +#, python-format +msgid "**Block list status:**\n" +"%(status)s\n" +"%(users)s" +msgstr "" + +#: musicbot/bot.py:3109 +#, python-format +msgid "%(number)s user(s) have been removed from the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3118 +msgid "Manage a block list applied to song requests and extracted song data.\n" +"A subject may be a song URL or a word or phrase found in the track title.\n" +"If subject is omitted, any currently playing track URL will be added instead.\n\n" +"The song block list matches loosely, but is case-sensitive.\n" +"This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" +msgstr "" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "" + +#: musicbot/bot.py:3152 +msgid "Ivalid sub-command given. Use `help blocksong` for usage examples." +msgstr "" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "" + +#: musicbot/bot.py:3187 +#, python-format +msgid "Added subject `%(subject)s` to the song block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "" + +#: musicbot/bot.py:3204 +#, python-format +msgid "Subject `%(subject)s` has been removed from the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3214 +msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" +msgstr "" + +#: musicbot/bot.py:3217 +msgid " Adds the entire queue to the guilds playlist.\n" +msgstr "" + +#: musicbot/bot.py:3220 +msgid " Show a list of existing playlist files.\n" +msgstr "" + +#: musicbot/bot.py:3223 +msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" +msgstr "" + +#: musicbot/bot.py:3226 +msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" +msgstr "" + +#: musicbot/bot.py:3229 +msgid "Manage auto playlist files and per-guild settings." +msgstr "" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "" + +#: musicbot/bot.py:3273 +msgid "All songs in the queue are already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3277 +#, python-format +msgid "Added %(number)d songs to the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3287 +#, python-format +msgid "Added `%(url)s` to the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3304 +#, python-format +msgid "Removed `%(url)s` from the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3316 +#, python-format +msgid "Loaded a fresh copy of the playlist: `%(file)s`" +msgstr "" + +#: musicbot/bot.py:3327 +#, python-format +msgid "**Available Playlists:**\n" +"%(names)s" +msgstr "" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "" + +#: musicbot/bot.py:3357 +msgid "\n" +"This playlist is new, you must add songs to save it to disk!" +msgstr "" + +#: musicbot/bot.py:3362 +#, python-format +msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" +msgstr "" + +#: musicbot/bot.py:3373 +msgid "Generate an invite link that can be used to add this bot to another server." +msgstr "" + +#: musicbot/bot.py:3385 +#, python-format +msgid "Click here to add me to a discord server:\n" +"%(url)s" +msgstr "" + +#: musicbot/bot.py:3391 +msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" +"Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" +msgstr "" + +#: musicbot/bot.py:3403 +msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." +msgstr "" + +#: musicbot/bot.py:3405 +msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." +msgstr "" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3580 +msgid "Bot was previously paused, resuming playback now." +msgstr "" + +#: musicbot/bot.py:3589 +msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" +"You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" +"Playlist links will be extracted into multiple links and added to the queue.\n" +"If you enter a non-URL, the input will be used as search criteria on youtube and the first result played.\n" +"MusicBot also supports Spotify URIs and URLs, but audio is fetched from youtube regardless.\n" +msgstr "" + +#: musicbot/bot.py:3628 +msgid "Play command that shuffles playlist entries before adding them to the queue.\n" +msgstr "" + +#: musicbot/bot.py:3665 +#, python-format +msgid "Shuffled playlist items into the queue from `%(request)s`" +msgstr "" + +#: musicbot/bot.py:3672 +msgid "A play command that adds the song as the next to play rather than last.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" + +#: musicbot/bot.py:3707 +msgid "A play command which skips any current song and plays immediately.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" + +#: musicbot/bot.py:3744 +msgid "Restarts the current song at the given time.\n" +"If time starts with + or - seek will be relative to current playback time.\n" +"Time should be given in seconds, fractional seconds are accepted.\n" +"Due to codec specifics in ffmpeg, this may not be accurate.\n" +msgstr "" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "" + +#: musicbot/bot.py:3840 +#, python-format +msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." +msgstr "" + +#: musicbot/bot.py:3852 +msgid "Toggles playlist or song looping.\n" +"If no option is provided the current song will be repeated.\n" +"If no option is provided and the song is already repeating, repeating will be turned off.\n" +msgstr "" + +#: musicbot/bot.py:3870 +msgid "No songs are currently playing. Play something with a play command." +msgstr "" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" + +#: musicbot/bot.py:3883 musicbot/bot.py:3920 +msgid "Playlist is now repeating." +msgstr "" + +#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +msgid "Playlist is no longer repeating." +msgstr "" + +#: musicbot/bot.py:3892 musicbot/bot.py:3901 +msgid "Player will now loop the current song." +msgstr "" + +#: musicbot/bot.py:3894 musicbot/bot.py:3908 +msgid "Player will no longer loop the current song." +msgstr "" + +#: musicbot/bot.py:3898 +msgid "Player is already looping a song!" +msgstr "" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "" + +#: musicbot/bot.py:3926 +msgid "Song is no longer repeating." +msgstr "" + +#: musicbot/bot.py:3930 +msgid "Song is now repeating." +msgstr "" + +#: musicbot/bot.py:3938 +msgid " Move song at position FROM to position TO.\n" +msgstr "" + +#: musicbot/bot.py:3942 +msgid "Swap existing songs in the queue using their position numbers.\n" +"Use the queue command to find track position numbers.\n" +msgstr "" + +#: musicbot/bot.py:3961 +msgid "There are no songs queued. Play something with a play command." +msgstr "" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "" + +#: musicbot/bot.py:3984 +#, python-format +msgid "Successfully moved song from positon %(from)s in queue to position %(to)s!" +msgstr "" + +#: musicbot/bot.py:4072 +#, python-format +msgid "This link contains a Playlist ID:\n" +"`%(url)s`\n\n" +"Do you want to queue the playlist too?" +msgstr "" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "" + +#: musicbot/bot.py:4159 +msgid "Detected a spotify URL, but spotify is not enabled." +msgstr "" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "" + +#: musicbot/bot.py:4191 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "" + +#: musicbot/bot.py:4208 +#, python-format +msgid "Youtube search returned no results for: %(url)s" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" + +#: musicbot/bot.py:4254 +#, python-format +msgid "Enqueued **%(number)s** songs to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "" + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "" + +#: musicbot/bot.py:4396 +#, python-format +msgid "Failed to exctract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "" + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr "" + +#: musicbot/bot.py:4432 +msgid " Search youtube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr "" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "" + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "" + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "" + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "" + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "" + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "" + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "" + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "" + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "" + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "" + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "" + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "" + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "" + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "" + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "" + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "" + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "" + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "" + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "" + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "" + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr "" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "" + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "" + +#: musicbot/bot.py:5413 +msgid "The speed you proivded is invalid. Use a number between 0.5 and 100." +msgstr "" + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "" + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr "" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr "" + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr "" + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "" + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "" + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr "" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr "" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr "" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr "" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr "" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr "" + +#: musicbot/bot.py:5546 +msgid " Saves the current current value to the options file.\n" +msgstr "" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr "" + +#: musicbot/bot.py:5552 +msgid " Reset the option to it's default value.\n" +msgstr "" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "" + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "" + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "" + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "" + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "" + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "" + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "" + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "" + +#: musicbot/bot.py:6231 +msgid "Dump the individual urls of a playlist to a file." +msgstr "" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "" + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permisions of the mentioned user." +msgstr "" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double check the ID and try again." +msgstr "" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "" + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr "" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr "" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr "" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr "" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr "" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr "" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr "" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr "" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an errror:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "" + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customizse the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "" + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.Note: The API may limit name changes to twice per hour." +msgstr "" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr "" + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr "" + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "" + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "" + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "" + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "" + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr "" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr "" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr "" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr "" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr "" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "" + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "" + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "" + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr "" + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "" + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pin-point events in the MusicBot log file.\n" +msgstr "" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr "" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and args on objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update github pages and is thus unsuitable for normal reference use." +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "" + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "" + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "" + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "" + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "" + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "" + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "" + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "" + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "" + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "" + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f} ms` Avg.) in region `%(region)s`" +msgstr "" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "" + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr "" + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr "" + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "" + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "" + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "" + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "" + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "" + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "" + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "" + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "" + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "" + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "" + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "" + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "" + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "" + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "" + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "" + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "" + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "" + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "" + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "" + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "" + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "" + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "" + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "" + +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "" + +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "" + +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "" + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "" + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "" + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "" + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "" + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "" + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song blocklist." +msgstr "" + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "" + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "" + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "" + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "" + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "" + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "" + +#: musicbot/config.py:550 +#, python-brace-format +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track url for the currently playing track." +msgstr "" + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "" + +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "" + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "" + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format it's messages as embeds." +msgstr "" + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "" + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from tha auto playlist." +msgstr "" + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "" + +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "" + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "" + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "" + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "" + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "" + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "" + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "" + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "" + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "" + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "" + +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "" + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "" + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "" + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "" + +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "" + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "" + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "" + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "" + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "" + +#: musicbot/config.py:920 +msgid "Optional youtube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible youtube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "" + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "" + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "" + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "" + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "" + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "" + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "" + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "" + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config optoins file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching OwnerID automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the OwnerID config option or try again later." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The OwnerID config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the OwnerID field." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "" + +#: musicbot/downloader.py:444 +msgid "Cannot continue extraction, event loop is closed." +msgstr "" + +#: musicbot/downloader.py:453 +msgid "Spotify URL is invalid or not supported." +msgstr "" + +#: musicbot/downloader.py:486 musicbot/downloader.py:507 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:503 +msgid "Cannot stream an invalid URL." +msgstr "" + +#: musicbot/downloader.py:577 +msgid "The local media file could not be found." +msgstr "" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "" + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "" + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "" + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "" + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "" + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "" + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "" + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "" + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "" + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "" + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "" + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "" + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client id and client secret" +msgstr "" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/utils.py:175 +msgid "Only the owner can use this command." +msgstr "" + +#: musicbot/utils.py:195 +msgid "Only dev users can use this command." +msgstr "" + diff --git a/i18n/lang.py b/i18n/lang.py new file mode 100644 index 000000000..5d2c7cdfc --- /dev/null +++ b/i18n/lang.py @@ -0,0 +1,311 @@ +#!/usr/bin/env python3 + +import argparse +import difflib +import os +import pathlib +import re +import subprocess +import sys + + +class LangTool: + def __init__(self, args, basedir): + """ + Container for common i18n related tasks. + Most tasks depend only on the bundled pygettext and msgfmt scripts. + """ + self.args = args + self.basedir = basedir + self.workdir = basedir.parent + + os.chdir(self.workdir) + + self._logs_pot_path = basedir.joinpath("musicbot_logs.pot") + self._msgs_pot_path = basedir.joinpath("musicbot_messages.pot") + self._logs_diff_path = basedir.joinpath("musicbot_logs.diff.pot") + self._msgs_diff_path = basedir.joinpath("musicbot_messages.diff.pot") + self._xx_lang_path = basedir.joinpath("xx").joinpath("LC_MESSAGES") + self._gettext_path = basedir.joinpath("pygettext.py") + self._msgfmt_path = basedir.joinpath("msgfmt.py") + self._do_diff = False + + try: + # Get the last release tag, number of commits since, and g{commit_id} as string. + self.version = ( + subprocess.check_output(["git", "describe", "--tags", "--always"]) + .decode("ascii") + .strip() + ) + except Exception: # pylint: disable=broad-exception-caught + print("Failed to get version info from git!") + self.version = "unknown" + + def _check_polib(self): + """Test-load polib and fail softly.""" + try: + import polib + + print(f"Loaded polib version {polib.__version__}") + except Exception: # pylint: disable=broad-exception-caught + print("Fatal error, could not load the 'polib' module.") + print("Install polib with pip or via your system package manager first.") + sys.exit(2) + + def compile(self): + """ + Compiles all existing .po files into .mo files. + """ + self._check_polib() + import polib + + print("Compiling existing PO files to MO...") + for po_file in self.basedir.glob("*/LC_MESSAGES/*.po"): + print(po_file) + mo_file = po_file.with_suffix(".mo") + po = polib.pofile(po_file) + po.save_as_mofile(mo_file) + + print("Done.") + + def extract(self): + """ + Extract strings from source files to create the POT domain files. + """ + # universal list for shared domain keywords. + shared_keywords = [ + # Cross domain keywords. + "--keyword=_X", + # MusicbotException and children are all shared. + "--keyword=MusicbotException", + "--keyword=CommandError", + "--keyword=ExtractionError", + "--keyword=InvalidDataError", + "--keyword=WrongEntryTypeError", + "--keyword=FFmpegError", + "--keyword=FFmpegWarning", + "--keyword=SpotifyError", + "--keyword=PermissionsError", + "--keyword=HelpfulError", + "--keyword=HelpfulWarning", + ] + + print("Extracting strings for logs domain...") + if self._do_diff: + logsout = self._logs_diff_path + else: + logsout = self._logs_pot_path + subprocess.check_output( + [ + sys.executable, + self._gettext_path, + "-v", + "-K", + "--add-comments=TRANSLATORS:", + "--package-name=Just-Some-Bots/MusicBot", + f"--package-version={self.version}", + "--keyword=_L", + "--keyword=_Ln", + "--keyword=debug", + "--keyword=info", + "--keyword=warning", + "--keyword=error", + "--keyword=critical", + "--keyword=exception", + "--keyword=everything", + "--keyword=voicedebug", + "--keyword=ffmpeg", + "--keyword=noise", + *shared_keywords, + f"--output={logsout}", + "run.py", + "musicbot/*.py", + ] + ) + print("Extracting strings for messages domain...") + if self._do_diff: + msgsout = self._msgs_diff_path + else: + msgsout = self._msgs_pot_path + subprocess.check_output( + [ + sys.executable, + self._gettext_path, + "-v", + "-K", + "--add-comments=TRANSLATORS:", + "--package-name=Just-Some-Bots/MusicBot", + f"--package-version={self.version}", + "--keyword=_D", + "--keyword=_Dn", + "--keyword=_Dd", + *shared_keywords, + f"--output={msgsout}", + "musicbot/*.py", + ] + ) + print("Extraction finished.") + + def diff(self, short=False): + """ + Display a short or long diff of changes in the POT file. + Short simply excludes the file:line comments from the diff output. + """ + print("Preparing diff for source strings...") + self._do_diff = True + self.extract() + + print("Diff for logs domain:") + a = self._logs_pot_path.read_text().split("\n") + b = self._logs_diff_path.read_text().split("\n") + for line in difflib.unified_diff( + a, b, fromfile="old", tofile="new", n=0, lineterm="" + ): + if short and line.startswith("#:"): + continue + print(line) + print("") + + print("Diff for messages domain:") + a = self._msgs_pot_path.read_text().split("\n") + b = self._msgs_diff_path.read_text().split("\n") + for line in difflib.unified_diff( + a, b, fromfile="old", tofile="new", n=0, lineterm="" + ): + if short and line.startswith("#:"): + continue + print(line) + print("") + + self._logs_diff_path.unlink() + self._msgs_diff_path.unlink() + print("Done.") + + def mktestlang(self): + """ + Reads in an existing POT file and creates the 'xx' test language. + Directories and the .po / .mo files are updated by this method. + """ + self._check_polib() + import polib + + self._xx_lang_path.mkdir(parents=True, exist_ok=True) + + subs = re.compile(r"([a-z]+|f[0-9]+\.)(\)[a-z\._]+\()?%") + + def reverse_msgid_as_msgstr(po): + for entry in po: + # reverse the msgid + newstr = entry.msgid[::-1] + # un-reverse placeholders. + matchiter = subs.finditer(newstr) + for match in matchiter: + group = match.group(0) + newstr = newstr.replace(group, group[::-1]) + # set translation to the reversed string. + entry.msgstr = newstr + + if self._logs_pot_path.is_file(): + print("Making lang xx musicbot_logs.po/.mo") + p1 = polib.pofile(self._logs_pot_path) + reverse_msgid_as_msgstr(p1) + p1.metadata["Language"] = "xx" + p1.metadata["Content-Type"] = "text/plain; charset=UTF-8" + p1.save(self._xx_lang_path.joinpath("musicbot_logs.po")) + p1.save_as_mofile(self._xx_lang_path.joinpath("musicbot_logs.mo")) + else: + print("Skipped logs domain, no musicbot_logs.pot file found.") + + if self._msgs_pot_path.is_file(): + print("Making lang xx musicbot_messagess.po/.mo") + p2 = polib.pofile(self._msgs_pot_path) + reverse_msgid_as_msgstr(p2) + p2.metadata["Language"] = "xx" + p2.metadata["Content-Type"] = "text/plain; charset=UTF-8" + p2.save(self._xx_lang_path.joinpath("musicbot_messages.po")) + p2.save_as_mofile(self._xx_lang_path.joinpath("musicbot_messages.mo")) + else: + print("Skipped messages domain, no musicbot_messages.pot file found.") + + +def main(): + """MusicBot i18n tool entry point.""" + ap = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description=("Helper tool for i18n tasks in MusicBot."), + epilog=( + "For more help and support with this bot, join our discord:" + "\n https://discord.gg/bots\n\n" + "This software is provided under the MIT License." + "\n" + "See the `LICENSE` text file for complete details." + ), + ) + + ap.add_argument( + "-c", + dest="do_compile", + action="store_true", + help="Compile existing PO files into MO files.", + ) + + ap.add_argument( + "-e", + dest="do_extract", + action="store_true", + help="Extract strings to POT files.", + ) + + ap.add_argument( + "-d", + dest="do_diff_short", + action="store_true", + help="Diff new extractions to the existing POT file. Ignores location comment changes.", + ) + + ap.add_argument( + "-D", + dest="do_diff_long", + action="store_true", + help="Same as -d but show all changes.", + ) + + ap.add_argument( + "-t", + dest="do_testlang", + action="store_true", + help="Create or update the 'xx' test language.", + ) + + _args = ap.parse_args() + _basedir = pathlib.Path(__file__).parent.resolve() + + if _basedir.name != "i18n": + print("Script not inside the i18n directory.") + print("This cannot continue!") + sys.exit(1) + + if not _basedir.parent.joinpath("musicbot").is_dir(): + print("Script cannot locate musicbot source files.") + print("This cannot continue!") + sys.exit(1) + + langtool = LangTool(_args, _basedir) + + if _args.do_diff_short or _args.do_diff_long: + langtool.diff(short=not _args.do_diff_long) + sys.exit(0) + + if _args.do_testlang: + langtool.mktestlang() + sys.exit(0) + + if _args.do_extract: + langtool.extract() + + if _args.do_compile: + langtool.compile() + + +if __name__ == "__main__": + main() diff --git a/i18n/msgfmt.py b/i18n/msgfmt.py new file mode 100644 index 000000000..3cb858593 --- /dev/null +++ b/i18n/msgfmt.py @@ -0,0 +1,262 @@ +#! /usr/bin/env python3 +# Written by Martin v. Löwis + +"""Generate binary message catalog from textual translation description. + +This program converts a textual Uniforum-style message catalog (.po file) into +a binary GNU catalog (.mo file). This is essentially the same function as the +GNU msgfmt program, however, it is a simpler implementation. Currently it +does not handle plural forms but it does handle message contexts. + +Usage: msgfmt.py [OPTIONS] filename.po + +Options: + -o file + --output-file=file + Specify the output file to write to. If omitted, output will go to a + file named filename.mo (based off the input file name). + + -h + --help + Print this message and exit. + + -V + --version + Display version information and exit. +""" + +import array +import ast +import getopt +import os +import struct +import sys +from email.parser import HeaderParser + +__version__ = "1.2" + +MESSAGES = {} + + +def usage(code, msg=""): + """ + Display some usage text and exit. + Shows program usage if no msg text is given. + """ + print(__doc__, file=sys.stderr) + if msg: + print(msg, file=sys.stderr) + sys.exit(code) + + +def add(ctxt, msgid, msgstr, fuzzy): + "Add a non-fuzzy translation to the dictionary." + global MESSAGES # pylint: disable=global-variable-not-assigned + if not fuzzy and msgstr: + if ctxt is None: + MESSAGES[msgid] = msgstr + else: + MESSAGES[b"%b\x04%b" % (ctxt, msgid)] = msgstr + + +def generate(): + "Return the generated output." + global MESSAGES # pylint: disable=global-variable-not-assigned + # the keys are sorted in the .mo file + keys = sorted(MESSAGES.keys()) + offsets = [] + ids = strs = b"" + for msgid in keys: + # For each string, we need size and file offset. Each string is NUL + # terminated; the NUL does not count into the size. + offsets.append((len(ids), len(msgid), len(strs), len(MESSAGES[msgid]))) + ids += msgid + b"\0" + strs += MESSAGES[msgid] + b"\0" + output = "" + # The header is 7 32-bit unsigned integers. We don't use hash tables, so + # the keys start right after the index tables. + # translated string. + keystart = 7 * 4 + 16 * len(keys) + # and the values start after the keys + valuestart = keystart + len(ids) + koffsets = [] + voffsets = [] + # The string table first has the list of keys, then the list of values. + # Each entry has first the size of the string, then the file offset. + for o1, l1, o2, l2 in offsets: + koffsets += [l1, o1 + keystart] + voffsets += [l2, o2 + valuestart] + offsets = koffsets + voffsets + output = struct.pack( + "Iiiiiii", + 0x950412DE, # Magic + 0, # Version + len(keys), # # of entries + 7 * 4, # start of key index + 7 * 4 + len(keys) * 8, # start of value index + 0, + 0, + ) # size and offset of hash table + output += array.array("i", offsets).tobytes() + output += ids + output += strs + return output + + +def make(filename, outfile): + """Function to create a .mo from a given .po file.""" + ID = 1 # pylint: disable=invalid-name + STR = 2 # pylint: disable=invalid-name + CTXT = 3 # pylint: disable=invalid-name + + # Compute .mo name from .po name and arguments + if filename.endswith(".po"): + infile = filename + else: + infile = filename + ".po" + if outfile is None: + outfile = os.path.splitext(infile)[0] + ".mo" + + try: + with open(infile, "rb") as f: + lines = f.readlines() + except IOError as msg: + print(msg, file=sys.stderr) + sys.exit(1) + + section = msgctxt = None + fuzzy = 0 + + # Start off assuming Latin-1, so everything decodes without failure, + # until we know the exact encoding + encoding = "latin-1" + + # Parse the catalog + lno = 0 + for line in lines: + line = line.decode(encoding) + lno += 1 + msgid = msgstr = b"" + # If we get a comment line after a msgstr, this is a new entry + if line[0] == "#" and section == STR: + add(msgctxt, msgid, msgstr, fuzzy) + section = msgctxt = None + fuzzy = 0 + # Record a fuzzy mark + if line[:2] == "#," and "fuzzy" in line: + fuzzy = 1 + # Skip comments + if line[0] == "#": + continue + # Now we are in a msgid or msgctxt section, output previous section + if line.startswith("msgctxt"): + if section == STR: + add(msgctxt, msgid, msgstr, fuzzy) + section = CTXT + line = line[7:] + msgctxt = b"" + elif line.startswith("msgid") and not line.startswith("msgid_plural"): + if section == STR: + add(msgctxt, msgid, msgstr, fuzzy) + if not msgid: + # See whether there is an encoding declaration + p = HeaderParser() + charset = p.parsestr(msgstr.decode(encoding)).get_content_charset() + if charset: + encoding = charset + section = ID + line = line[5:] + msgid = msgstr = b"" + is_plural = False + # This is a message with plural forms + elif line.startswith("msgid_plural"): + if section != ID: + print( + f"msgid_plural not preceded by msgid on {infile}:{lno}", + file=sys.stderr, + ) + sys.exit(1) + line = line[12:] + msgid += b"\0" # separator of singular and plural + is_plural = True + # Now we are in a msgstr section + elif line.startswith("msgstr"): + section = STR + if line.startswith("msgstr["): + if not is_plural: + print( + f"plural without msgid_plural on {infile}:{lno}", + file=sys.stderr, + ) + sys.exit(1) + line = line.split("]", 1)[1] + if msgstr: + msgstr += b"\0" # Separator of the various plural forms + else: + if is_plural: + print( + f"indexed msgstr required for plural on {infile}:{lno}", + file=sys.stderr, + ) + sys.exit(1) + line = line[6:] + # Skip empty lines + line = line.strip() + if not line: + continue + line = ast.literal_eval(line) + if section == CTXT: + msgctxt += line.encode(encoding) + elif section == ID: + msgid += line.encode(encoding) + elif section == STR: + msgstr += line.encode(encoding) + else: + print(f"Syntax error on {infile}:{lno} before:", file=sys.stderr) + print(line, file=sys.stderr) + sys.exit(1) + # Add last entry + if section == STR: + add(msgctxt, msgid, msgstr, fuzzy) + + # Compute output + output = generate() + + try: + with open(outfile, "wb") as f: + f.write(output) + except IOError as msg: + print(msg, file=sys.stderr) + + +def main(): + """Program entry point.""" + try: + opts, args = getopt.getopt( + sys.argv[1:], "hVo:", ["help", "version", "output-file="] + ) + except getopt.error as msg: + usage(1, msg) + + outfile = None + # parse options + for opt, arg in opts: + if opt in ("-h", "--help"): + usage(0) + elif opt in ("-V", "--version"): + print("msgfmt.py", __version__) + sys.exit(0) + elif opt in ("-o", "--output-file"): + outfile = arg + # do it + if not args: + print("No input file given", file=sys.stderr) + print("Try `msgfmt --help' for more information.", file=sys.stderr) + return + + for filename in args: + make(filename, outfile) + + +if __name__ == "__main__": + main() diff --git a/i18n/musicbot_logs.pot b/i18n/musicbot_logs.pot new file mode 100644 index 000000000..d3d9756af --- /dev/null +++ b/i18n/musicbot_logs.pot @@ -0,0 +1,4016 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the Just-Some-Bots/MusicBot package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Just-Some-Bots/MusicBot release-250723-1002-g75b54054\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" + + +#: musicbot/aliases.py:52 +msgid "Aliases file not found, copying example_aliases.json" +msgstr "" + +#: musicbot/aliases.py:56 +msgid "" +"Error while loading aliases.\n" +"\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n" +"\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "" + +#: musicbot/aliases.py:80 +#, python-format +msgid "Failed to load aliases file: %s" +msgstr "" + +#: musicbot/aliases.py:88 +#, python-format +msgid "" +"Failed to parse aliases file: %s\n" +"Ensure the file contains valid JSON and restart the bot." +msgstr "" + +#: musicbot/aliases.py:114 +#, python-format +msgid "Aliases skipped for non-existent command: %(command)s -> %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "" + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "" + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "" + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "" + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "" + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "" + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "" + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "" + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "" + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "" + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "" + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "" + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "" + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "" + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "" + +#: musicbot/bot.py:475 +#, python-format +msgid "" +"MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:485 +#, python-format +msgid "" +"MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:495 +#, python-format +msgid "" +"Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "" + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "" + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "" + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "" + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "" + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "" + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "" + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "" + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "" + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "" + +#: musicbot/bot.py:806 +msgid "" +"MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "" + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "" + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "" + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "" + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "" + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "" + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "" + +#: musicbot/bot.py:934 +#, python-format +msgid "" +"MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." +msgstr "" + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "" + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "" + +#: musicbot/bot.py:1016 +msgid "" +"The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "" + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "" + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "" + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "" + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "" + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "" + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "" + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "" + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "" + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "" + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr "" + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "" + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "" + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "" + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "" + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "" + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "" + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "" + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "" + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "" + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "" + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "" + +#: musicbot/bot.py:2147 +msgid "" +"Failed Discord API Login!\n" +"\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n" +"\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "" + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "" + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "" + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "" + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "" + +#: musicbot/bot.py:2238 +#, python-format +msgid "" +"Exception in %(event)s:\n" +"%(error)s" +msgstr "" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "" + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "" + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "" + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr "" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "" + +#: musicbot/bot.py:2353 +#, python-format +msgid "" +"To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr "" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "" + +#: musicbot/bot.py:2475 +#, python-format +msgid "" +"Detected missing config options!\n" +"\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n" +"\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n" +"\n" +msgstr "" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "" + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr "" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr "" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr "" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr "" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr "" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr "" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr "" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr "" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr "" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr "" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr "" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr "" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr "" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr "" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr "" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr "" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr "" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr "" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr "" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr "" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr "" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr "" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr "" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr "" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr "" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr "" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr "" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "" + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "" + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "" + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "" + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "" + +#: musicbot/bot.py:3447 +#, python-format +msgid "" +"The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "" + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "" + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "" + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "" + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "" + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "" + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "" + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "" +"Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "" + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "" +"You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "" +"Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5391 +msgid "" +"No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "" + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "" +"Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:5673 +#, python-format +msgid "" +"Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "" + +#: musicbot/bot.py:5717 +#, python-format +msgid "" +"The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "" + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "" + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "" + +#: musicbot/bot.py:6013 +#, python-format +msgid "" +"Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "" + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "" + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "" + +#: musicbot/bot.py:6105 +msgid "" +"Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "" + +#: musicbot/bot.py:6257 +#, python-format +msgid "" +"Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:6538 +#, python-format +msgid "" +"Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "" +"The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6784 +msgid "" +"Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "" +"Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "" + +#: musicbot/bot.py:6820 +#, python-format +msgid "" +"Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "" + +#: musicbot/bot.py:6877 +msgid "" +"Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "" + +#: musicbot/bot.py:6915 +#, python-format +msgid "" +"Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "" + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "" + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "" +"Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "" + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "" + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "" + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "" + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "" +"Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "" + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "" + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "" + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "" + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "" + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "" + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "" + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "" + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "" + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "" + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "" + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "" + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "" + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "" + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "" + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "" +"Error while reading config.\n" +"\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n" +"\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "" + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "" + +#: musicbot/config.py:1132 +msgid "" +"Error while validating config options.\n" +"\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n" +"\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "" +"Error while validating config options.\n" +"\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "" +"Error while reading config options.\n" +"\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n" +"\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "" + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "" + +#: musicbot/config.py:1216 +msgid "" +"Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n" +"\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "" + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "" + +#: musicbot/config.py:1244 +msgid "" +"Error while fetching 'OwnerID' automatically.\n" +"\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n" +"\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "" + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "" + +#: musicbot/config.py:1262 +msgid "" +"Error validating config options.\n" +"\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n" +"\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "" + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "" + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "" + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "" +"Error locating config.\n" +"\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" + +#: musicbot/config.py:1345 +#, python-format +msgid "" +"Error loading config.\n" +"\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "" + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "" + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "" + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "" + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n" +"\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n" +"\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n" +"\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "" + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "" + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "" + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "" + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr "" + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr "" + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "" + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "" + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "" + +#: musicbot/downloader.py:134 +msgid "" +"Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "" + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "" + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "" + +#: musicbot/downloader.py:315 +#, python-format +msgid "" +"Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "" + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "" + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "" + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "" + +#: musicbot/downloader.py:517 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "" + +#: musicbot/downloader.py:544 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "" + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "" + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "" + +#: musicbot/downloader.py:623 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "" + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "" + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "" + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "" + +#: musicbot/entry.py:223 +#, python-format +msgid "" +"Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "" + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "" + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "" + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "" + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "" +"MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." +msgstr "" + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "" + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "" + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "" + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "" + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr "" + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr "" + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr "" + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr "" + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr "" + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "" + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "" + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "" + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "" + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "" + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "" + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "" + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "" + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "" + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "" + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "" + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr "" + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr "" + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr "" + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr "" + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr "" + +#: musicbot/filecache.py:355 +#, python-format +msgid "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr "" + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr "" + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "" + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr "" + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "" + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "" + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "" + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "" +"You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "" + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "" + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "" + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "" + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "" + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "" + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "" + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "" + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "" + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr "" + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "" + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "" + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "" + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "" + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "" + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "" + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "" + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "" + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "" +"API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "" + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "" + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "" + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "" +"Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "" +"\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "" + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "" + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "" + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "" + +#: run.py:180 +msgid "Error using -m method" +msgstr "" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "" + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr "" + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "" + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "" + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "" + +#: run.py:302 +#, python-format +msgid "" +"Result of pip upgrade:\n" +"%s" +msgstr "" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "" + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "" + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "" + +#: run.py:361 +msgid "Required checks passed." +msgstr "" + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "" + +#: run.py:376 +msgid "Optional checks passed." +msgstr "" + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "" + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "" + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "" + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "" + +#: run.py:435 +#, python-format +msgid "" +"\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "" + +#: run.py:530 +msgid "" +"MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "" + +#: run.py:535 +msgid "" +"On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "" + +#: run.py:540 +msgid "" +"On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "" + +#: run.py:545 +msgid "" +"On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "" + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "" + +#: run.py:567 +msgid "" +"\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "" + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "" + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "" + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr "" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "" + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "" + +#: run.py:618 +#, python-format +msgid "" +"You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "" + +#: run.py:638 +msgid "Value must not be negative." +msgstr "" + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "" + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "" + +#: run.py:669 +msgid "Available via Github:" +msgstr "" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "" + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "" + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "" + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "" + +#: run.py:707 +msgid "" +"Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "" + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "" + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "" + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "" + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "" + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "" + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "" + +#: run.py:964 +msgid "" +"For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "" + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "" + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "" + +#: run.py:1036 +msgid "" +"To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "" + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "" + +#: run.py:1066 +msgid "" +"Cannot start MusicBot due to an error!\n" +"\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n" +"\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "" + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "" + +#: run.py:1108 +#, python-format +msgid "" +"MusicBot dependencies may not be installed!\n" +"\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n" +"\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n" +"\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "" + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "" + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "" + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "" + +#: run.py:1169 +msgid "Error starting bot" +msgstr "" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "" + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "" + +#: run.py:1183 +msgid "All done." +msgstr "" + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "" + diff --git a/i18n/musicbot_messages.pot b/i18n/musicbot_messages.pot new file mode 100644 index 000000000..f29cf90f9 --- /dev/null +++ b/i18n/musicbot_messages.pot @@ -0,0 +1,3082 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the Just-Some-Bots/MusicBot package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Just-Some-Bots/MusicBot release-250723-1002-g75b54054\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" + + +#: musicbot/aliases.py:56 +msgid "" +"Error while loading aliases.\n" +"\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n" +"\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:806 +msgid "" +"MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" + +#: musicbot/bot.py:840 +msgid "MusicBot does not have permission to speak." +msgstr "" + +#: musicbot/bot.py:844 +msgid "MusicBot could not request to speak." +msgstr "" + +#: musicbot/bot.py:1016 +msgid "" +"The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "" + +#: musicbot/bot.py:1084 +#, python-format +msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" +msgstr "" + +#: musicbot/bot.py:1102 +#, python-format +msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" +msgstr "" + +#: musicbot/bot.py:1111 +#, python-format +msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" +msgstr "" + +#: musicbot/bot.py:1122 +#, python-format +msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" +msgstr "" + +#: musicbot/bot.py:1333 +#, python-format +msgid "Skipping songs added by %(user)s as they are not in voice!" +msgstr "" + +#: musicbot/bot.py:1555 +#, python-format +msgid "" +"Playback failed for song `%(song)s` due to an error:\n" +"```\n" +"%(error)s```" +msgstr "" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "" + +#: musicbot/bot.py:2147 +msgid "" +"Failed Discord API Login!\n" +"\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n" +"\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "" + +#: musicbot/bot.py:2831 +msgid "" +"Reset the auto playlist queue by copying it back into player memory.\n" +"This command will be removed in a future version, replaced by the autoplaylist command(s)." +msgstr "" + +#: musicbot/bot.py:2846 +msgid "\\N{OK HAND SIGN}" +msgstr "" + +#: musicbot/bot.py:2853 +msgid "Show usage and description of a command, or list all available commands.\n" +msgstr "" + +#: musicbot/bot.py:2888 +msgid "**Aliases for this command:**\n" +msgstr "" + +#: musicbot/bot.py:2891 +#, python-format +msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" +msgstr "" + +#: musicbot/bot.py:2924 +#, python-format +msgid "" +"**Alias of command:**\n" +" `%(command)s`\n" +msgstr "" + +#. TRANSLATORS: template string for command-specific help output. +#: musicbot/bot.py:2931 +#, python-format +msgid "" +"%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" +msgstr "" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "" + +#: musicbot/bot.py:2959 +#, python-format +msgid "" +"The list above shows only commands permitted for your use.\n" +"For a list of all commands, run: %(example_all)s\n" +msgstr "" + +#: musicbot/bot.py:2965 +#, python-format +msgid "" +"**Commands by name:** *(without prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Command Prefix:** %(prefix)s\n" +"\n" +"For help with a particular command, run: %(example_command)s\n" +"%(all_note)s" +msgstr "" + +#: musicbot/bot.py:2984 +msgid " Block a mentioned user." +msgstr "" + +#: musicbot/bot.py:2987 +msgid " Unblock a mentioned user." +msgstr "" + +#: musicbot/bot.py:2990 +msgid " Show the block status of a mentioned user." +msgstr "" + +#: musicbot/bot.py:2994 +msgid "" +"Manage the users in the user block list.\n" +"Blocked users are forbidden from using all bot commands.\n" +msgstr "" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "" + +#: musicbot/bot.py:3059 +msgid "User block list is currently enabled." +msgstr "" + +#: musicbot/bot.py:3061 +msgid "User block list is currently disabled." +msgstr "" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "" + +#: musicbot/bot.py:3078 +#, python-format +msgid "" +"%(number)s user(s) have been added to the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3089 +msgid "None of those users are in the blacklist." +msgstr "" + +#: musicbot/bot.py:3094 +#, python-format +msgid "User: `%(user)s` is not blocked.\n" +msgstr "" + +#: musicbot/bot.py:3096 +#, python-format +msgid "User: `%(user)s` is blocked.\n" +msgstr "" + +#: musicbot/bot.py:3099 +#, python-format +msgid "" +"**Block list status:**\n" +"%(status)s\n" +"%(users)s" +msgstr "" + +#: musicbot/bot.py:3109 +#, python-format +msgid "" +"%(number)s user(s) have been removed from the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3118 +msgid "" +"Manage a block list applied to song requests and extracted song data.\n" +"A subject may be a song URL or a word or phrase found in the track title.\n" +"If subject is omitted, any currently playing track URL will be added instead.\n" +"\n" +"The song block list matches loosely, but is case-sensitive.\n" +"This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" +msgstr "" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "" + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "" + +#: musicbot/bot.py:3187 +#, python-format +msgid "" +"Added subject `%(subject)s` to the song block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "" + +#: musicbot/bot.py:3204 +#, python-format +msgid "" +"Subject `%(subject)s` has been removed from the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3214 +msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" +msgstr "" + +#: musicbot/bot.py:3217 +msgid " Adds the entire queue to the guilds playlist.\n" +msgstr "" + +#: musicbot/bot.py:3220 +msgid " Show a list of existing playlist files.\n" +msgstr "" + +#: musicbot/bot.py:3223 +msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" +msgstr "" + +#: musicbot/bot.py:3226 +msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" +msgstr "" + +#: musicbot/bot.py:3229 +msgid "Manage auto playlist files and per-guild settings." +msgstr "" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "" + +#: musicbot/bot.py:3273 +msgid "All songs in the queue are already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3277 +#, python-format +msgid "Added %(number)d songs to the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3287 +#, python-format +msgid "Added `%(url)s` to the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3304 +#, python-format +msgid "Removed `%(url)s` from the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3316 +#, python-format +msgid "Loaded a fresh copy of the playlist: `%(file)s`" +msgstr "" + +#: musicbot/bot.py:3327 +#, python-format +msgid "" +"**Available Playlists:**\n" +"%(names)s" +msgstr "" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "" + +#: musicbot/bot.py:3357 +msgid "" +"\n" +"This playlist is new, you must add songs to save it to disk!" +msgstr "" + +#: musicbot/bot.py:3362 +#, python-format +msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" +msgstr "" + +#: musicbot/bot.py:3373 +msgid "Generate an invite link that can be used to add this bot to another server." +msgstr "" + +#: musicbot/bot.py:3385 +#, python-format +msgid "" +"Click here to add me to a discord server:\n" +"%(url)s" +msgstr "" + +#: musicbot/bot.py:3391 +msgid "" +"Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" +"Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" +msgstr "" + +#: musicbot/bot.py:3403 +msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." +msgstr "" + +#: musicbot/bot.py:3405 +msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." +msgstr "" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "" + +#: musicbot/bot.py:3447 +#, python-format +msgid "" +"The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3580 +msgid "Bot was previously paused, resuming playback now." +msgstr "" + +#: musicbot/bot.py:3589 +msgid "" +"Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n" +"\n" +"You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" +"Playlist links will be extracted into multiple links and added to the queue.\n" +"If you enter a non-URL, the input will be used as search criteria on YouTube and the first result played.\n" +"MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" +msgstr "" + +#: musicbot/bot.py:3628 +msgid "Play command that shuffles playlist entries before adding them to the queue.\n" +msgstr "" + +#: musicbot/bot.py:3665 +#, python-format +msgid "Shuffled playlist items into the queue from `%(request)s`" +msgstr "" + +#: musicbot/bot.py:3672 +msgid "" +"A play command that adds the song as the next to play rather than last.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" + +#: musicbot/bot.py:3707 +msgid "" +"A play command which skips any current song and plays immediately.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" + +#: musicbot/bot.py:3744 +msgid "" +"Restarts the current song at the given time.\n" +"If time starts with + or - seek will be relative to current playback time.\n" +"Time should be given in seconds, fractional seconds are accepted.\n" +"Due to codec specifics in ffmpeg, this may not be accurate.\n" +msgstr "" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "" + +#: musicbot/bot.py:3840 +#, python-format +msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." +msgstr "" + +#: musicbot/bot.py:3852 +msgid "" +"Toggles playlist or song looping.\n" +"If no option is provided the current song will be repeated.\n" +"If no option is provided and the song is already repeating, repeating will be turned off.\n" +msgstr "" + +#: musicbot/bot.py:3870 +msgid "No songs are currently playing. Play something with a play command." +msgstr "" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" + +#: musicbot/bot.py:3883 musicbot/bot.py:3920 +msgid "Playlist is now repeating." +msgstr "" + +#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +msgid "Playlist is no longer repeating." +msgstr "" + +#: musicbot/bot.py:3892 musicbot/bot.py:3901 +msgid "Player will now loop the current song." +msgstr "" + +#: musicbot/bot.py:3894 musicbot/bot.py:3908 +msgid "Player will no longer loop the current song." +msgstr "" + +#: musicbot/bot.py:3898 +msgid "Player is already looping a song!" +msgstr "" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "" + +#: musicbot/bot.py:3926 +msgid "Song is no longer repeating." +msgstr "" + +#: musicbot/bot.py:3930 +msgid "Song is now repeating." +msgstr "" + +#: musicbot/bot.py:3938 +msgid " Move song at position FROM to position TO.\n" +msgstr "" + +#: musicbot/bot.py:3942 +msgid "" +"Swap existing songs in the queue using their position numbers.\n" +"Use the queue command to find track position numbers.\n" +msgstr "" + +#: musicbot/bot.py:3961 +msgid "There are no songs queued. Play something with a play command." +msgstr "" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "" + +#: musicbot/bot.py:3984 +#, python-format +msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" +msgstr "" + +#: musicbot/bot.py:4072 +#, python-format +msgid "" +"This link contains a Playlist ID:\n" +"`%(url)s`\n" +"\n" +"Do you want to queue the playlist too?" +msgstr "" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "" + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "" + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "" +"Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "" + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" + +#: musicbot/bot.py:4254 +#, python-format +msgid "" +"Enqueued **%(number)s** songs to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "" + +#: musicbot/bot.py:4289 +#, python-format +msgid "" +"Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "" + +#: musicbot/bot.py:4346 +msgid "" +"Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "" + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr "" + +#: musicbot/bot.py:4432 +msgid "" +" Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr "" + +#: musicbot/bot.py:4438 +msgid "" +"Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "" + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "" + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "" + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "" + +#: musicbot/bot.py:4594 +msgid "" +"\n" +"**0**. Cancel" +msgstr "" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "" + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "" + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "" + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "" + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "" + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "" + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "" + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "" + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "" + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "" + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "" + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "" + +#: musicbot/bot.py:5033 +msgid "" +"Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "" +"You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "" + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "" + +#: musicbot/bot.py:5121 +msgid "" +"Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "" + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "" + +#: musicbot/bot.py:5166 +msgid "" +"Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5173 +msgid "" +"Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "" + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "" + +#: musicbot/bot.py:5269 +#, python-format +msgid "" +"Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr "" + +#: musicbot/bot.py:5293 +#, python-format +msgid "" +"Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "" + +#: musicbot/bot.py:5306 +msgid "" +"Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "" +"Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5374 +msgid "" +"Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "" + +#: musicbot/bot.py:5391 +msgid "" +"No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "" + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "" + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "" + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr "" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr "" + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr "" + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "" + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "" +"Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "" + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr "" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr "" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr "" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr "" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr "" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr "" + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr "" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr "" + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr "" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:5596 +#, python-format +msgid "" +"**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "" + +#: musicbot/bot.py:5627 +#, python-format +msgid "" +"**Changed Options:**\n" +"%(changed)s" +msgstr "" + +#: musicbot/bot.py:5647 +#, python-format +msgid "" +"## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "" + +#: musicbot/bot.py:5673 +#, python-format +msgid "" +"Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "" + +#: musicbot/bot.py:5717 +#, python-format +msgid "" +"The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "" + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "" + +#: musicbot/bot.py:5742 +#, python-format +msgid "" +"**Option:** `%(config)s`\n" +"%(comment)s\n" +"\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5784 +#, python-format +msgid "" +"**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5822 +#, python-format +msgid "" +"Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5857 +#, python-format +msgid "" +"Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5892 +msgid "" +"Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "" + +#: musicbot/bot.py:5933 +#, python-format +msgid "" +"**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n" +"\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "" + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "" + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "" + +#: musicbot/bot.py:5973 +msgid "" +"Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "" + +#: musicbot/bot.py:6013 +#, python-format +msgid "" +"Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "" + +#: musicbot/bot.py:6034 +#, python-format +msgid "" +"Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "" + +#: musicbot/bot.py:6064 +#, python-format +msgid "" +"**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n" +"\n" +msgstr "" + +#: musicbot/bot.py:6072 +#, python-format +msgid "" +"%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n" +"\n" +"%(tracks)s" +msgstr "" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "" + +#: musicbot/bot.py:6105 +msgid "" +"Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6156 +msgid "" +"Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "" + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "" + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "" + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr "" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "" + +#: musicbot/bot.py:6257 +#, python-format +msgid "" +"Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "" + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "" + +#: musicbot/bot.py:6292 +msgid "" +"Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6319 +msgid "" +"List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permissions of the mentioned user." +msgstr "" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "" + +#: musicbot/bot.py:6439 +#, python-format +msgid "" +"Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6448 +#, python-format +msgid "" +"The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr "" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr "" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr "" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr "" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr "" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr "" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr "" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr "" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "" + +#: musicbot/bot.py:6538 +#, python-format +msgid "" +"Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6558 +#, python-format +msgid "" +"## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "" +"The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "" + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "" + +#: musicbot/bot.py:6638 +#, python-format +msgid "" +"**Permission:** `%(option)s`\n" +"%(comment)s\n" +"\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6660 +#, python-format +msgid "" +"Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "" + +#: musicbot/bot.py:6677 +#, python-format +msgid "" +"Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6711 +#, python-format +msgid "" +"**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6748 +#, python-format +msgid "" +"Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:6765 +msgid "" +"Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "" + +#: musicbot/bot.py:6784 +msgid "" +"Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "" +"Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "" + +#: musicbot/bot.py:6820 +#, python-format +msgid "" +"Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr "" + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr "" + +#: musicbot/bot.py:6838 +msgid "" +"Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "" + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "" + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "" + +#: musicbot/bot.py:6877 +msgid "" +"Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" + +#: musicbot/bot.py:6885 +msgid "" +"Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "" + +#: musicbot/bot.py:6915 +#, python-format +msgid "" +"Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "" + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "" + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr "" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr "" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr "" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr "" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr "" + +#: musicbot/bot.py:6972 +msgid "" +"Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "" + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "" + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "" + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr "" + +#: musicbot/bot.py:7083 +msgid "" +"Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "" + +#: musicbot/bot.py:7162 +msgid "" +"This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr "" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7196 +msgid "" +"Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "" + +#: musicbot/bot.py:7249 +msgid "" +"This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n" +"\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n" +"\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "" +"Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7320 +msgid "" +"Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "" + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "" + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "" + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "" + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "" + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "" + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "" + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "" + +#: musicbot/bot.py:7536 +#, python-format +msgid "" +"%(status)s\n" +"\n" +"**Source Code Updates:**\n" +"%(git_status)s\n" +"\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "" + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "" + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "" + +#: musicbot/bot.py:7604 +#, python-format +msgid "" +"**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "" + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "" + +#: musicbot/bot.py:7630 +#, python-format +msgid "" +"\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "" + +#: musicbot/bot.py:7648 +#, python-format +msgid "" +"https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr "" + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr "" + +#: musicbot/bot.py:7667 +msgid "" +"Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n" +"\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "" +"Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "" + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "" + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "" + +#: musicbot/bot.py:8179 +#, python-format +msgid "" +"**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "" + +#: musicbot/bot.py:8220 +#, python-format +msgid "" +"**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "" + +#: musicbot/config.py:127 +msgid "" +"Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "" + +#: musicbot/config.py:149 +msgid "" +"Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "" + +#: musicbot/config.py:162 +msgid "" +"Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "" + +#: musicbot/config.py:174 +msgid "" +"Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "" + +#: musicbot/config.py:188 +msgid "" +"Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "" + +#: musicbot/config.py:201 +msgid "" +"A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "" + +#: musicbot/config.py:217 +msgid "" +"Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "" + +#: musicbot/config.py:230 +msgid "" +"Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "" + +#: musicbot/config.py:242 +msgid "" +"Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "" + +#: musicbot/config.py:253 +msgid "" +"ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "" + +#: musicbot/config.py:267 +msgid "" +"Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "" + +#: musicbot/config.py:278 +msgid "" +"A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "" + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "" + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "" + +#: musicbot/config.py:309 +msgid "" +"Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "" + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "" + +#: musicbot/config.py:329 +msgid "" +"Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "" + +#: musicbot/config.py:340 +msgid "" +"Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "" + +#: musicbot/config.py:354 +msgid "" +"Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "" + +#: musicbot/config.py:366 +msgid "" +"This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "" + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "" + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "" + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "" + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "" + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "" + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "" + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "" + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "" + +#: musicbot/config.py:457 +msgid "" +"Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "" + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song block list." +msgstr "" + +#: musicbot/config.py:488 +msgid "" +"Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "" + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "" + +#: musicbot/config.py:507 +msgid "" +"Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "" + +#: musicbot/config.py:518 +msgid "" +"Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "" + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "" + +#: musicbot/config.py:540 +msgid "" +"Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "" + +#: musicbot/config.py:550 +msgid "" +"Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n" +"\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "" + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "" + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "" + +#: musicbot/config.py:602 +msgid "" +"Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "" + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr "" + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "" + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." +msgstr "" + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "" + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "" + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "" + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "" + +#: musicbot/config.py:681 +msgid "" +"Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "" + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "" + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "" + +#: musicbot/config.py:711 +msgid "" +"If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "" + +#: musicbot/config.py:723 +msgid "" +"Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "" + +#: musicbot/config.py:744 +msgid "" +"When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "" + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "" + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "" + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "" + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "" + +#: musicbot/config.py:800 +msgid "" +"Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "" + +#: musicbot/config.py:814 +#, python-format +msgid "" +"Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "" + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "" + +#: musicbot/config.py:845 +msgid "" +"Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "" + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "" + +#: musicbot/config.py:877 +msgid "" +"Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "" + +#: musicbot/config.py:888 +msgid "" +"Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "" + +#: musicbot/config.py:903 +#, python-format +msgid "" +"Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "" + +#: musicbot/config.py:920 +msgid "" +"Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "" + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "" + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "" + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "" + +#: musicbot/config.py:971 +msgid "" +"An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "" + +#: musicbot/config.py:984 +msgid "" +"An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "" + +#: musicbot/config.py:996 +#, python-format +msgid "" +"An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "" + +#: musicbot/config.py:1026 +#, python-format +msgid "" +"Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "" + +#: musicbot/config.py:1039 +msgid "" +"Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "" + +#: musicbot/config.py:1053 +msgid "" +"Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "" +"Error while reading config.\n" +"\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n" +"\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1132 +msgid "" +"Error while validating config options.\n" +"\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n" +"\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "" +"Error while validating config options.\n" +"\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "" +"Error while reading config options.\n" +"\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n" +"\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1244 +msgid "" +"Error while fetching 'OwnerID' automatically.\n" +"\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n" +"\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "" + +#: musicbot/config.py:1262 +msgid "" +"Error validating config options.\n" +"\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n" +"\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "" +"Error locating config.\n" +"\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" + +#: musicbot/config.py:1345 +#, python-format +msgid "" +"Error loading config.\n" +"\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n" +"\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n" +"\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n" +"\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "" + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "" + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "" + +#: musicbot/permissions.py:328 +msgid "" +"List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "" + +#: musicbot/permissions.py:342 +msgid "" +"List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "" + +#: musicbot/permissions.py:354 +msgid "" +"When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "" + +#: musicbot/permissions.py:365 +msgid "" +"List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "" + +#: musicbot/permissions.py:378 +msgid "" +"List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "" + +#: musicbot/permissions.py:390 +msgid "" +"List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "" + +#: musicbot/permissions.py:402 +msgid "" +"Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:414 +msgid "" +"Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "" + +#: musicbot/permissions.py:426 +msgid "" +"Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "" + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "" + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "" + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "" + +#: musicbot/permissions.py:474 +msgid "" +"Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "" + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "" + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "" + +#: musicbot/permissions.py:505 +msgid "" +"Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "" + +#: musicbot/permissions.py:516 +#, python-format +msgid "" +"Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n" +"\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n" +"\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "" +"You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "" +"API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "" + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "" + diff --git a/i18n/pl_PL/LC_MESSAGES/musicbot_logs.mo b/i18n/pl_PL/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..cc1d7b7260a3c6ad1778a69568250e75f16216d1 GIT binary patch literal 114661 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 XU<0T7G1Hi{GakJC0*8Tw;nx2Fz%H}E literal 0 HcmV?d00001 diff --git a/i18n/pl_PL/LC_MESSAGES/musicbot_logs.po b/i18n/pl_PL/LC_MESSAGES/musicbot_logs.po new file mode 100644 index 000000000..68c1314a9 --- /dev/null +++ b/i18n/pl_PL/LC_MESSAGES/musicbot_logs.po @@ -0,0 +1,4077 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: 2024-11-08 18:12\n" +"Last-Translator: \n" +"Language-Team: Polish\n" +"Language: pl_PL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: pl\n" +"X-Crowdin-File: /fae/i18n/musicbot_logs.pot\n" +"X-Crowdin-File-ID: 26\n" + +#: musicbot/aliases.py:52 +msgid "Aliases file not found, copying example_aliases.json" +msgstr "Plik aliasów nie został znaleziony, kopiowanie przykładu_aliases.json" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "Błąd podczas ładowania realizacji.\n\n" +"Problem:\n" +" Brakuje Twoich plików aliases.json & example_aliases.json.\n\n" +"Rozwiązanie:\n" +" Zastąp plik konfiguracyjny aliasu lub skopiuj go z\n" +" https://github.com/Just-Some-Bots/MusicBot/" + +#: musicbot/aliases.py:80 +#, python-format +msgid "Failed to load aliases file: %s" +msgstr "Nie udało się załadować pliku aliasów: %s" + +#: musicbot/aliases.py:88 +#, python-format +msgid "Failed to parse aliases file: %s\n" +"Ensure the file contains valid JSON and restart the bot." +msgstr "Nie udało się przetworzyć pliku aliasów: %s\n" +"Upewnij się, że plik zawiera poprawny JSON i zrestartuj bota." + +#: musicbot/aliases.py:114 +#, python-format +msgid "Aliases skipped for non-existent command: %(command)s -> %(aliases)s" +msgstr "Aliasy pominięte dla nieistniejącego polecenia: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "Alias(y) pominięto dla nieprawidłowych danych aliasu: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "Alias `%(alias)s` pominięty jako już istnieje na polecenie: %(command)s" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "Błąd ładowania pliku automatycznej playlisty: %s" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "Usuwanie nieodtwarzanej piosenki z listy odtwarzania, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "Usuwanie utworu z listy odtwarzania, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "Nie można zalogować informacji o usunięciu adresu URL playlisty." + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "Aktualizowanie pliku playlisty..." + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "Nie udało się zapisać pliku listy odtwarzania: %s" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "Adres URL jest już na liście odtwarzania %s, ignoruje" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "Dodawanie nowego adresu URL do listy odtwarzania, %(playlist)s: %(track)s" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "Inicjowanie MusicBot %s" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "Pętla jest zamknięta, nie można utworzyć zadania dla: %r" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "Nieobsługiwany wyjątek dla zadania: %r" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "Nieobsługiwany wyjątek dla zadania: %(task)r -- %(raw_error)s" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "Spotify nie dostarczył nam tokenu. Wyłączanie." + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "Uwierzytelniono ze Spotify za pomocą identyfikatora klienta i sekretu." + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "Nie można uruchomić klienta Spotify. Czy Twój identyfikator klienta i tajne dane są poprawne? Szczegóły: %s. Kontynuuj mimo to za 5 sekund..." + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "Konfiguracja nie posiadała poświadczeń aplikacji Spotify, próbując użyć trybu gościa." + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "Uwierzytelniono ze Spotify za pomocą trybu gościa." + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "Nie można uruchomić klienta Spotify w trybie gościa. Szczegóły: %s." + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "Eksperymentalna wtyczka Yt-dlp OAuth2 jest włączona. Może się to zepsuć w dowolnym momencie!" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "Zainicjowano połączenie, a teraz połączenie z discordem." + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "Test ping sieci jest wyłączony przez konfigurację." + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "Test ping sieci jest zamknięty." + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "Nie można rozwiązać celu ping." + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "Test ping sieci został anulowany." + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "Testowanie sieci przez HTTP nie ma sesji do pożyczenia." + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "Nie można zlokalizować pliku wykonywalnego `ping` w twoim środowisku." + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot nie mógł zlokalizować ścieżki komendy `ping`. Zamiast tego spróbuje użyć ping HTTP.\n" +"MusicBot wypróbował następujące polecenie: %s\n" +"Powinieneś włączyć ping w systemie lub kontenerowce, aby uzyskać najlepsze wyniki.\n" +"Alternatywnie wyłącz sprawdzanie sieci przez konfigurację." + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot został pozbawiony uprawnień do wykonania komendy `ping`. Zamiast tego spróbuje użyć ping HTTP.\n" +"MusicBot wypróbował następujące polecenie: %s\n" +"Powinieneś włączyć ping w systemie lub kontenerowce, aby uzyskać najlepsze wyniki.\n" +"Alternatywnie wyłącz sprawdzanie sieci przez konfigurację." + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "Twoje środowisko może nie zezwolić na komendę systemową `ping`. Zamiast tego spróbuje użyć ping HTTP.\n" +"MusicBot wypróbował następujące polecenie: %s\n" +"Powinieneś włączyć ping w systemie lub kontenerowce, aby uzyskać najlepsze wyniki.\n" +"Alternatywnie wyłącz sprawdzanie sieci przez konfigurację." + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "Sieć MusicBot jest znów dostępna." + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "VoiceClient nie jest połączony, oczekiwanie na wznowienie MusicPlayer..." + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "Wznawianie odtwarzania gracza: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "MusicBot wykrył przerwę sieciową." + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "Wstrzymanie MusicPlayera z powodu dostępności sieci: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "Szukasz właściciela w gildii: %(guild)s (wymagany głos: %(required)s) i otrzymany: %(owner)s" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "Sprawdzanie kanału do automatycznego dołączenia lub wznowienia ..." + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "Gildia niedostępna, nie można automatycznie dołączyć: %(id)s/%(name)s" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "Znaleziono wznawiany kanał głosowy: %(channel)s w gildii: %(guild)s" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "Spróbuje wznowić sesję głosową zamiast kanału automatycznego dołączenia: %s" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "Znaleziono właściciela na kanale głosowym: %s" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "Ignorowanie wznawianego kanału, Automatyczne przywoływanie do właściciela na kanale: %s" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "Ignorowanie kanału Auto-Dołącz automatycznie, AutoSummon do właściciela na kanale: %s" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "Już połączono z kanałem: %(channel)s w gildii: %(guild)s" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "Próba dołączenia do kanału: %(channel)s w gildii: %(guild)s" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "Odrzucanie MusicPlayer i tworzenie nowego..." + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "MusicBot zrobi teraz nowego MusicPlayer" + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "Nie dołączysz do %(guild)s/%(channel)s, nie jest to obsługiwany kanał głosowy." + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "Zakończono dołączanie skonfigurowanych kanałów." + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "Użytkownik nie jest włączony głosowo i nie może użyć tego polecenia." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "Nie możesz użyć tej komendy gdy nie jest na kanale głosowym." + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "Informacje o aplikacji bota." + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "MusicBot nie ma uprawnień do połączenia na kanale: %s" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBot nie ma uprawnień do połączenia na kanale: `%(name)s`" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "MusicBot nie ma uprawnień do mówienia na kanale: %s" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBot nie ma uprawnień do mówienia na kanale: `%(name)s`" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "Ponowne użycie botów VoiceClient z gildii: %s" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "Wymuszam rozłączenie na Niebieskim VoiceClient w gildii: %s" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "Rozłączenie nie powiodło się lub zostało anulowane?" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "MusicBot nie może teraz połączyć się z kanałem: %(channel)s" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot nie mógł połączyć się z kanałem.\n" +"Spróbuj ponownie później lub zrestartuj bota jeśli to będzie kontynuowane." + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "MusicBot ma teraz VoiceClient..." + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "Ponawianie próby połączenia po przekroczeniu limitu czasu (%(attempt)s) podczas próby połączenia z: %(channel)s" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "Próba połączenia MusicBot VoiceClient została anulowana. Bez ponawiania próby." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "Połączenie MusicBot z głosowaniem zostało anulowane. To jest dziwne. Może zrestartować?" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot nie ma uprawnień do mówienia." + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "MusicBot nie mógł prosić o głos." + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "Rozłączanie MusicPlayer w gildii: %s" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "Rozłączanie VoiceClient zanim zabijemy MusicPlayera." + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "Rozłączenie nie powiodło się lub zostało anulowane." + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "MusicBot ma VoiceProtocol który nie jest VoiceClient. Rozłączanie mimo to..." + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "Rozłączanie rogue VoiceClient w gildii: %s" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "Rozłączanie niegildii VoiceClient..." + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "Lista MusicBot.voice_clients zawiera obiekt niebędący VoiceClient?\n" +"Obiekt jest w rzeczywistości typu: %s" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "Wciąż mamy ref MusicPlayer w gildii (%(guild_id)s): %(player)r" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "Gildia (%(guild)s) chce gracza, opcjonalnie: %(player)r" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." +msgstr "[BUG] MusicPlayer brakuje jak. Prawdopodobnie powinieneś zrestartować bota." + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "MusicPlayer ma VoiceClient, który nie jest połączony." + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "MusicPlayer obj: %r" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "VoiceClient obj: %r" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "Otrzymywanie MusicPlayer dla gildii: %(guild)s na kanale: %(channel)s Utwórz: %(create)s Deserialize: %(serial)s" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "Utworzono gracza poprzez deserializację dla gildii %(guild_id)s z wpisami %(number)s" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "Bot nie jest na kanale głosowym.\n" +"Użyj polecenia przywołania, aby przenieść bota do kanału głosowego." + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Coś jest nie tak. Nie otrzymaliśmy VoiceClient." + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "Uruchamianie_gracz_gracza" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "Ustawianie gildii historii URL %(guild_id)s == %(url)s" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "Nie ustawiono miniatury dla wpisu z adresem URL: %s" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "brak kanału do umieszczenia wiadomości odtwarzania" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "zignorowano wiadomość, która została już opublikowana." + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "Uruchamianie_gracz_wznawianie" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "Uruchamianie_gracz_pauza" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "Uruchamianie_gracz_zatrzymanie" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "Uruchamianie_gracz_zakończone_grania" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "Pętla zdarzeń jest zamknięta, nic innego do zrobienia tutaj." + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "Wyloguj się, ignorując to wydarzenie." + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "VoiceClient mówi, że nie jest połączony, nic innego nie możemy tutaj zrobić." + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "Gracz gotowy i kolejka jest pusta, pozostawiając kanał głosowy..." + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "Pętla nad kolejką do zdejmowania piosenek z brakującym autorem..." + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "Autor `%(user)s` nieobecny, pominięty (usunięty) wpis z kolejki: %(song)s" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "Brak odtwarzanych utworów na liście autoplayerów, wyłączając." + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "Brak zawartości w bieżącej autoplaylist. Wypełnianie nową muzyką..." + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "Pętla nad autoplaylistą graczy..." + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "Błąd podczas przetwarzania utworu \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "Błąd podczas rozpakowywania utworu \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr "MusicBot musi zatrzymać automatyczne wydobycie i ratowanie listy odtwarzania." + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "MusicBot otrzymał nieobsługiwany wyjątek w wydarzeniu zakończonym." + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "Rozszerzenie automatycznej listy odtwarzania o wpisy wyciągnięte z: %s" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "Błąd podczas dodawania utworu z autoplaylisty: %s" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "Dane wyjątku dla powyższego błędu:" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "Brak odtwarzanych utworów na liście autoplayerów, wyłączając." + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "Uruchamianie_gracz_wpis_dodane" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "Automatycznie pomijam wpis auto-listy odtwarzania dla wpisu w kolejce." + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "Wyjątek MusicPlayer dla wpisu: %r" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "Wyjątek MusicPlayer" + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "Utwór automatycznej listy odtwarzania nie może być odtworzony: %r" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "Wyloguj się w toku, ignorując zdarzenie aktualizacji statusu." + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "Aktualizuj status bota: %(status)s -- %(activity)r" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "Serializacja kolejki dla %s" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "Deserializacja kolejki dla %s" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "Zapisywanie aktualnej piosenki dla %s" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "Nie można wysłać obiektu braku odpowiedzi: %r" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Próba wysłania nieprawidłowego obiektu odpowiedzi." + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "wysyłanie osadzonych do: %s" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "wysyłanie tekstu do: %s" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "Nie można wysłać wiadomości do \"%s\", brak uprawnień" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "Nie można wysłać wiadomości do \"%s\", nieprawidłowy lub usunięty kanał" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "Wiadomość przekracza limit rozmiaru wiadomości (%s)" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "Nie można wysłać prywatnej wiadomości, zamiast tego wysyłać na kanał awaryjny." + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "Ograniczono szybkość wysyłania wiadomości, ponowienie próby za %s sekund." + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "Anulowano ponowną próbę wiadomości dla: %s" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "Oceń ograniczoną wiadomość, ale nie można ponowić próby!" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "Nie udało się wysłać wiadomości na kanale awaryjnym." + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "Nie udało się wysłać z powodu błędu HTTP." + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "Nie można usunąć wiadomości \"%s\", brak uprawnień" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "Nie można usunąć wiadomości \"%s\", nie znaleziono wiadomości" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "Ograniczono szybkość usuwania wiadomości, ponowienie próby za %s sekund." + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "Oceń ograniczoną wiadomość usuniętą ale nie można ponowić próby!" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "Nie udało się usunąć wiadomości" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "Masz HTTPException próbujący usunąć wiadomość: %s" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "Nie można edytować wiadomości \"%s\", nie znaleziono wiadomości" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "Wysyłanie wiadomości" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "Ograniczona szybkość edycji wiadomości, ponowna próba za %s sekund." + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "Anulowana edycja wiadomości dla: %s" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "Nie udało się edytować wiadomości" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "Masz HTTPException próbujący edytować wiadomość %s do: %s" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "Anulowano usunięcie wiadomości (ID: %(id)s): %(content)s" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "Złapano sygnał z OS: %s" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "Rozłączanie i zamykanie MusicBot..." + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "Wyjątek wyrzucony podczas obsługi sygnału!" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "MusicBot robi teraz kroki zamykania..." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Nieudane logowanie API Discorda!\n\n" +"Problem:\n" +" MusicBot nie mógł zalogować się do API Discorda.\n" +" Twój token może być niepoprawny lub może wystąpić awaria API.\n\n" +"Rozwiązanie:\n" +" Upewnij się, że masz ustawiony odpowiedni token w konfiguracji.\n" +" Sprawdź status API na oficjalnej stronie: discordstatus.com" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "Oczekiwanie na zakończenie pobierania wątków..." + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "Poczekamy na zadanie: %(name)s (%(func)s)" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "Spróbuje anulować zadanie: %(name)s (%(func)s)" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "Oczekiwanie na zadania..." + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "Zamykanie konektora HTTP." + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "Zamykanie sesji aiohttp." + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "Wylogowanie zostało wywołane." + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "Wyjątek w %(event)s:\n" +"%(error)s" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "Wyjątek w %s" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "MusicBot wznowił sesję z discordem." + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "Zakończ w trybie _gotowym" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "Zalogowano. Przygotuj MusicBot..." + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "Klient nie ma nikogo, mamy ratowanie..." + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "Właściciel: %(id)s/%(name)s#%(desc)s\n" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "Lista gildii:" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr " - %s" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "Opuszczono %s z powodu nieznalezionego właściciela bota" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "Nie kontynuowano sprawdzania na serwerach %s z powodu niedostępności" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "Właściciel nie został znaleziony w żadnej gildii (id: %s)\n" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "Właściciel nieznany, bot nie ma na żadnej gildii." + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "Aby bot dołączył do gildii, wklej ten link w swojej przeglądarce. \n" +"Uwaga: Powinieneś być zalogowany na swoje konto główne i mieć \n" +"zarządzać uprawnieniami serwera do gildii, do której chcesz, aby bot dołączył.\n" +" %s" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "Nie masz żadnego kanału z ID: %d" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "Nie można powiązać z kanałem bez wiadomości o ID: %d" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "Powiąż z kanałami tekstowymi:" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr " - %(guild)s/%(channel)s" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "Nie związane z żadnymi kanałami tekstowymi" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "Brak dla automatycznego dołączenia do kanału z ID: %d" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "Nie można automatycznie dołączyć do kanału prywatnego/niegildii z ID: %d" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "Nie można automatycznie dołączyć do niepodłączonego kanału z ID: %d" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr "Automatyczne dołączanie kanałów głosowych:" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "Brak automatycznego dołączania do żadnych kanałów głosowych" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "Wykryto brakujące opcje konfiguracji!\n\n" +"Problem:\n" +" W pliku opcji konfiguracji brakuje niektórych opcji.\n" +" Domyślne ustawienia zostaną użyte dla tych opcji.\n" +" Oto lista opcji, których nie znaleźliśmy:\n" +" %(missing)s\n\n" +"Rozwiązanie:\n" +" Skopiuj nowe opcje z przykładowego pliku opcji.\n" +" lub użyj komendy konfiguracyjnej do ich ustawiania i zapisywania.\n\n" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "Zdarzenie on_ready zostało wywołane %s razy" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "Otrzymywanie informacji o aplikacji." + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "Upewnij się, że foldery danych istnieją" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "Weryfikowanie konfiguracji" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "Sprawdzanie poprawności konfiguracji uprawnień" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "Wyłączone" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "Włączone" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "Opcje:" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr " Prefiks polecenia: %s" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr " Domyślna głośność: %d%%" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr " Próg pominięcia: %(num)d lub %(percent).0f%%" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr " Teraz odtwarzane @wzmianki: %s" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr " Automatyczne przywołanie: %s" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr " Auto-Playlist: %(status)s (kolejność: %(order)s)" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "losowy" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "sekwencyjny" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr " Automatyczne wstrzymanie: %s" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr " Usuń wiadomości: %s" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr " Usuń wywołanie: %s" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr " Usuń teraz odtwarzanie: %s" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr " Tryb debugowania: %s" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr " Pobrane utwory będą %s" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr " Usuń jeśli nieużywane przez %d dni" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr " Usuń jeśli rozmiar przekracza %s" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr " Komunikat statusu: %s" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr " Zapisz bieżące utwory do pliku: %s" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr " Autor: %s" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr " Embeds: %s" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr " Integracja ze Spotify: %s" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr " Pominięcie starszego: %s" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr " Pozostaw nie-właścicielów: %s" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr " Opuść nieaktywne VC: %s" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr " Przekroczono czas: %s sekund" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr " Opuść na koniec/pustą kolejkę: %s" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr " Opuść gdy gracz bezczynny: %s" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr " Przekroczono czas: %d sekund" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr " Samodzielny Deafen: %s" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr " Prefiks polecenia dla serwera: %s" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr " Lista wyszukiwania: %s" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr " Runda Kolejka Robina: %s" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "Żądana piosenka `%(subject)s` jest zablokowana przez listę bloków utworu." + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "Próba obsługi nieaktywności kanału głosowego, ale bot nie jest w głosowaniu..." + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "Aktywność kanału już oczekuje w gildii: %s" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Aktywność kanału oczekująca %(time)d sekund na opuszczenie kanału: %(channel)s" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "Licznik aktywności kanału dla %s wygasł. Rozłączanie." + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Timer aktywności kanału anulowany dla: %(channel)s w %(guild)s" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "Ignorowanie nieaktywności gracza na kanale auto-dołączenia: %s" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "Licznik aktywności gracza już czeka w gildii: %s" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Licznik aktywności gracza, oczekujący %(time)d sekund na opuszczenie kanału: %(channel)s" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "Licznik aktywności gracza dla %s wygasł. Rozłączanie." + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Timer aktywności gracza anulowany dla: %(channel)s w %(guild)s" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "Czas aktywności gracza jest zresetowany." + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "Nie ma takiej komendy" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "Musisz podać użytkownika lub jego numer identyfikacyjny." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Podano nieprawidłowe polecenie. Użyj `help blockuser` dla przykładów użycia." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot nie mógł znaleźć podanego użytkownika." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "Właściciel nie może być dodany do listy bloków." + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "Nie dodano użytkownika do listy, już zablokowano: %(id)s/%(name)s" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "Nie usuwa użytkownika z listy bloków, nie wymieniono: %(id)s/%(name)s" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "Nie można dodać użytkowników, których wymieniłeś, są już dodane." + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Musisz podać temat utworu, jeśli nie ma aktualnie odtwarzanej piosenki." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Podano nieprawidłowe polecenie. Użyj `help blocksong` dla przykładów użycia." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "Temat%(subject)s` jest już na liście bloków utworu." + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "Temat nie znajduje się na liście bloków piosenek i nie może zostać usunięty." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Podano nieprawidłowe polecenie. Użyj `help autoplaylist` dla przykładów użycia." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "Podany link do utworu jest nieprawidłowy" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "Kolejka jest pusta. Dodaj kilka piosenek poleceniem odtwarzania!" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Ta piosenka jest już na autoplaylist." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Ta piosenka nie znajduje się jeszcze na liście autoplay." + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "Musisz podać nazwę pliku listy odtwarzania." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "Nie masz uprawnień do żądania playlist" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "Playlista ma zbyt wiele wpisów (%(songs)s ale max to %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "Wpisy listy odtwarzania przekroczą limit twojej kolejki.\n" +"Na liście znajdują się %(songs)s i %(queued)s już w kolejce.\n" +"Limit wynosi %(max)s dla twojej grupy." + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "Ignorowanie automatycznej pauzy z powodu przerwy w sieci." + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "MusicPlayer nie ma VoiceClient lub nie ma żadnych danych kanałowych, nie można przetwarzać automatycznego wstrzymania." + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "Przetwarzanie automatycznej pauzy, ignorując to wydarzenie." + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "%sVoiceClient nie podłączony, oczekiwanie %s sekund na automatyczne wstrzymanie w gildii: %s" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "Automatyczne wstrzymanie oczekiwania zostało anulowane." + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "Nowy odtwarzacz muzyki jest podłączony, ignorując stare zdarzenie auto-pauzy." + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "Odtwarzanie na pustym kanale głosowym, uruchamianie automatycznego pauzy dla gildii: %s" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "Wcześniej auto-wstrzymany gracz jest niezapłacony dla gildii: %s" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "Nie można użyć szukania, jeśli nic nie gra." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "Nie można użyć szukania bieżącego utworu, ma nieznany czas trwania." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "Szukanie nie jest obsługiwane dla strumieni." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "Nie można użyć wyszukiwania bez czasu na umiejscowienie odtwarzania." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "Nie można przekonwertować `%(input)s` na poprawny czas w sekundach." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "Nie można szukać `%(input)s` (`%(seconds)s` sekund) w bieżącym utworze o długości `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Nieprawidłowe polecenie podrzędne. Użyj polecenia `help repeat` dla przykładów użycia." + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "Odtwarzacz nie jest obecnie w pętli." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Pozycje piosenek muszą być liczbą całkowitą!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "Dałeś pozycję poza rozmiarem playlisty!" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "Nie można poprosić o odtwarzanie playlisty, nie ma wiadomości do dodania reakcji." + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "Lokalne odtwarzanie mediów nie jest włączone." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "Adres URL Spotify jest nieprawidłowy lub nie jest obecnie obsługiwany." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Wykryto adres URL Spotify, ale Spotify nie jest włączony." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Osiągnąłeś limit utworów w kolejce (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "Tryb Karaoke jest włączony, spróbuj ponownie, gdy jest wyłączony!" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "Problem z extract_info(): " + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Nie udało się wyodrębnić informacji z powodu błędu:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Nie można odtworzyć tego wideo. Spróbuj użyć komendy streamu." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "Wyszukiwanie YouTube nie zwróciło żadnych wyników dla: %(url)s" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "Przetworzono %(number)d z %(total)d utworów w %(time).3f sekund w %(time_per).2f s/spiosenka" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "Nie dodano piosenek, wszystkie piosenki przekroczyły maksymalny czas trwania (%(max)s sekund)" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "Wyróżniono wpis z 'youtube:playlist' jako klucz ekstraktora" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "Czas trwania piosenki przekracza limit (%(length)s > %(max)s)" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "Dodano utwór na pozycji %s" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "Nie można oszacować czasu do odtworzenia pozycji: %d" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "Nie udało się uzyskać informacji z żądania streamu: %s" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Strumieniowanie list odtwarzania nie jest jeszcze obsługiwane." + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Osiągnąłeś limit przedmiotów na liście odtwarzania (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Proszę określić zapytanie wyszukiwania. Aby uzyskać więcej informacji, użyj `help search`." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "Nie możesz wyszukać więcej niż filmy %(max)s" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "Oczekiwanie na zablokowanie wezwania: %s" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "Przywołanie blokady za: %s" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "Nie jesteś połączony z głosowaniem. Spróbuj dołączyć do kanału głosowego!" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "Dołączanie do %(guild)s/%(channel)s" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot nie może śledzić użytkownika, który nie jest członkiem serwera." + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Gracz nie gra." + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Nic w kolejce do usunięcia!" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "Nic nie znaleziono w kolejce od użytkownika `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "Nie masz uprawnień do usuwania tego wpisu z kolejki.\n" +"Musisz być tym, który ma w kolejce do kolejki lub ma natychmiastowe uprawnienia do pominięcia." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Nieprawidłowy numer wpisu. Użyj polecenia kolejki, aby znaleźć pozycje kolejki." + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Nie można pominąć! Gracz nie gra!" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "Nie masz uprawnień, aby wymusić pominięcie piosenki w pętli." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "Nie masz uprawnień do wymuszania pominięcia." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "Nie masz uprawnień, aby pominąć piosenkę w pętli." + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` nie jest poprawną liczbą" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Nieuzasadniona zmiana głośności: %(old_volume)s%(adjustment)s to %(new_volume)s.\n" +"Głośność można ustawić tylko od 1 do 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Podano nieracjonalny wolumen: %(volume)s. Podaj wartość między 1 a 100." + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "Brak odtwarzanego utworu, nie można ustawić prędkości.\n" +"Użyj komendy konfiguracyjnej, aby ustawić domyślną prędkość odtwarzania." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "Prędkość nie może być zastosowana do mediów strumieniowych." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Musisz podać szybkość, aby ustawić." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "Podana prędkość jest nieprawidłowa. Użyj liczby od 0,5 do 100." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Nieprawidłowa opcja dla polecenia: `%(option)s`" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Nie udało się zapisać aliasów z powodu błędu:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Musisz podać alias i polecenie do aliasu" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Musisz podać nazwę aliasu aby usunąć." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "Alias `%(alias)s` nie istnieje." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "Konfiguracja nie może używać kanału i wzmianek użytkownika w tym samym czasie." + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Nie można przeładować konfiguracji z powodu następującego błędu:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Nie można ustalić nazwy sekcji z nazwy opcji. Proszę podać poprawną sekcję i nazwę opcji." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "Podana opcja jest niejednoznaczna, proszę podać nazwę sekcji." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Musisz podać nazwę sekcji i nazwę opcji dla tej komendy." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "Sekcja `%(section)s` jest niedostępna.\n" +"Dostępne sekcje to: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "Opcja `%(option)s` jest niedostępna." + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zapisać na dysku." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Nie udało się zapisać opcji: `%(option)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "Opcja `%(option)s` nie jest edytowalna, wartość nie może być wyświetlana." + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zaktualizować ustawienia." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Musisz podać sekcję, opcję i wartość dla tej podkomendy." + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "Ustawiono na %(config)s == %(value)s" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "Opcja `%(option)s` nie została zaktualizowana!" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zresetować do domyślnego." + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "Resetowanie %(config)s do domyślnego %(value)s" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "Opcja `%(option)s` nie została zresetowana do domyślnych!" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "Komenda opcji jest przestarzała, zamiast tego użyj komendy config." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Podano nieprawidłową opcję, użyj: info, update, lub wyczyść" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Nie udało się** usunąć pamięci podręcznej, sprawdź logi aby uzyskać więcej informacji..." + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "Argument strony kolejki musi być liczbą całkowitą." + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "Brak utworów w kolejce! Kolejka czegoś z poleceniem odtwarzania." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "Żądany numer strony jest poza zakresem.\n" +"Istnieją ** strony%(total)s**." + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "Pominięto bieżący wpis listy odtwarzania." + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "Za mało wpisów do stronicowania kolejki." + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "Nie można opublikować wiadomości kolejki, nie ma wiadomości do dodania reakcji." + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Spróbuj ponownie. MusicBot nie mógł nawiązać do wiadomości kolejki.\n" +"Jeśli problem będzie się powtarzał, zgłoś błąd." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Nie można użyć czyszczenia na prywatnym kanale DM." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "Podany adres URL nie jest prawidłowym adresem URL." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Nie można wyodrębnić informacji z wprowadzonego adresu\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "To nie wygląda na playlistę." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "Nieprawidłowy identyfikator użytkownika lub nazwa serwera, sprawdź identyfikator i spróbuj ponownie." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Nie można określić użytkownika Discorda. Spróbuj ponownie." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Uprawnienia nie mogą używać jednocześnie wspomnień kanału i użytkownika." + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Nie można przeładować uprawnień z powodu błędu:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Musisz podać nazwę grupy lub opcji dla tego polecenia." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Musisz podać grupę, opcję i wartość, aby ustawić to polecenie." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "Podpolecenie %(option)s wymaga nazwy grupy i uprawnień." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "Grupa `%(group)s` jest niedostępna.\n" +"Dostępne grupy to: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "Uprawnienia `%(option)s` nie są dostępne." + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Nie można dodać grupy `%(group)s` już istnieje." + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Nie można usunąć wbudowanej grupy." + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "Grupa właścicieli nie jest edytowalna." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Nie udało się zapisać grupy: `%(group)s`" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "Ustawiono %(option)s z wartością: %(value)s" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Uprawnienia `%(option)s` nie zostały zaktualizowane!" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Nie udało się zmienić nazwy użytkownika. Czy zmieniłeś nazwy zbyt wiele razy?\n" +"Zapamiętaj zmiany nazwy są ograniczone do dwóch razy na godzinę.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Nie udało się zmienić nazwy użytkownika z powodu błędu: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Nie można zmienić pseudonimu: brak uprawnień." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Nie udało się ustawić pseudonimu z powodu błędu: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Niestandardowe emoji muszą być z tego serwera, aby użyć jako prefiks." + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Prefiks na serwer nie jest włączony!\n" +"Użyj komendy config aby zaktualizować prefiks." + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "Musisz podać adres URL lub załączyć plik." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Nie można zmienić awatara z powodu błędu: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "MusicBot znalazł %s bez gildii! To może być problem." + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Obecnie nie jest połączony z serwerem `%(guild)s`" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Podano nieprawidłową opcję, użyj jednej z: miękkiej, pełnej, aktualizacji, uppip lub upgit" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Musisz podać identyfikator lub nazwę." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "Nie znaleziono gildii o ID lub nazwie `%(input)s`" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "Aktywuję ID przerwania debugowania: %(uuid)s" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Nie można zaimportować `objgraf`, czy jest zainstalowany?" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "Kod debugowania uruchomiony z eval()." + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "Kod debugowania uruchomiony z exec()." + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "Nie udało się wykonać kodu debugowania." + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Nie udało się wykonać kodu debugowania:\n" +"%(py_code)s\n" +"Wyjątek: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "Podpolecenie musi być jednym z: %(options)s" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Nie można zlokalizować pliku wykonywalnego git" + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "Nie powiodło się podczas sprawdzania aktualizacji za pomocą polecenia git" + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "Pakiet brakuje meta w raporcie pip." + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "Nie udało się uzyskać statusu aktualizacji pipsa z powodu błędu." + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "Masz dziwne wejście klienta głosowego." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Pliki cookie są już włączone." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Pliki cookie muszą być przesłane, aby je włączyć. (Przeliczanie pliku cookies.)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Nie można włączyć ciasteczek z powodu błędu: %(raw_error)s" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Nie można zmienić nazwy pliku ciasteczek z powodu błędu: %(raw_error)s\n" +"ciasteczka tymczasowo wyłączone i zostaną ponownie włączone przy następnym ponownym uruchomieniu." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "Nie znaleziono załączonych przesyłanych plików, spróbuj ponownie podczas przesyłania pliku cookie." + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "Nie można usunąć starego, wyłączonego pliku ciasteczek: %(raw_error)s" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Błąd podczas pobierania pliku ciasteczek z dysku: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Nie można zapisać ciasteczek na dysku: %(raw_error)s" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "Masz wiadomość bez kanału, jako: %s" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "Ignorowanie komendy u mnie (%s)" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "Ignorowanie polecenia od innego bota (%s)" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "Ignorowanie polecenia z kanału typu: %s" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "Użytkownik na liście bloków: %(id)s/%(name)s wypróbowano polecenie: %(command)s" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "Wiadomość od %(id)s/%(name)s: %(message)s" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Ta komenda nie jest dozwolona dla grupy uprawnień: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Ta komenda wymaga bycia na kanale głosowym." + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "Nieprawidłowe użycie polecenia, brakujące wartości dla parametrów: %(params)r" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "Błąd w %(command)s: %(err_name)s: %(err_text)s" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "Wyjątek podczas obsługi polecenia: %(command)s" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "Nie można wygenerować pomocy dla brakującej komendy: %s" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "Brak danych pomocy dla komendy: %s" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "Opuszczanie kanału głosowego %s w %s z powodu braku aktywności." + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "MusicBot został połączony." + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "MusicBot został rozłączony." + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "Masz wydarzenie z gniazdem: %s" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "Stan głosowy zaktualizowany przed na_gotowością" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "Ignorowanie %s w %s jako kanał głosowy połączony." + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "%s został wykryty jako pusty. Upłynął limit czasu." + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "Użytkownik dołączył do %s, anulował czas." + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "Bot został przeniesiony, a kanał głosowy %s jest pusty. Upłynął limit czasu." + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "Bot został przeniesiony, a kanał głosowy %s nie jest pusty." + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "Nie obserwuj już użytkownika %s" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "Obserwowany użytkownik `%(user)s` do kanału: %(channel)s" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "Brak statusu głosowego." + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "Odłączono od głosu przez Discorda API w: %(guild)s/%(channel)s (Koda: %(code)s) [S:%(state)s]" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "Nie można użyć kanału automatycznego dołączenia z typem: %(type)s w gildii: %(guild)s" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "Nie można znaleźć kanału automatycznego dołączenia, czy został usunięty? Gildia: %s" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "Ponowne łączenie z automatycznie dołączoną gildią na kanale: %s" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "Nie można automatycznie dołączyć do kanału: %s" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "Bot został dodany do gildii: %s" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "Lewa gildia '%s' z powodu nieznalezionego właściciela bota." + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "Tworzenie folderu danych dla gildii %s" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "Bot został usunięty z gildii: %s" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "Zaktualizowano listę gildii:" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "Gildia \"%s\" stała się dostępna." + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "Wznawianie gracza w \"%s\" ze względu na dostępność." + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "Gildia \"%s\" stała się niedostępna." + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "Zatrzymanie gracza w \"%s\" z powodu niedostępności." + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "Aktualizacja Gildii dla: %s" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "Atrybut gildii %(attr)s jest teraz: %(new)s -- Was: %(old)s" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "Aktualizacja kanału dla: %(channel)s -- %(changes)s" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "Tworzenie %s" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "Ładowanie konfiguracji z: %s" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Błąd podczas odczytywania konfiguracji.\n\n" +"Problem:\n" +" Brakuje jednej lub więcej sekcji opcji konfiguracji.\n" +" Brakujące sekcje to:\n" +" %(sections)s\n\n" +"Rozwiązanie:\n" +" Napraw plik opcji konfiguracyjnych.\n" +" Każdy [Section] musi pojawiać się tylko raz, bez żadnego innego tekstu w tej samej linijce.\n" +" Każda sekcja musi mieć co najmniej jedną opcję.\n" +" Użyj opcji przykładowych jako szablonu lub skopiuj je z repozytorium." + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "Nie można przechowywać więcej niż %s plików dziennika. Opcja LogsMaxKept będzie ograniczona." + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "Opcja konfiguracji LogsDateFormat jest pusta i spowoduje to przerwanie rotacji pliku dziennika. Użyj domyślnego." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" +"Problem:\n" +" Opcja konfiguracji AudioCachePath nie jest katalogiem.\n\n" +"Rozwiązanie:\n" +" Upewnij się, że ścieżka, którą skonfigurowałeś jest ścieżką do folderu / katalogu." + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "Podczas sprawdzania poprawności AudioCachePath, wystąpił wyjątek." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" +"Problem:\n" +" Opcja konfiguracji AudioCachePath nie mogła zostać ustawiona z powodu błędu:\n" +" %(raw_error)s\n\n" +"Rozwiązanie:\n" +" Sprawdź, czy ustawienia są poprawne, dostępna ścieżka katalogu." + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "Pamięć podręczna audio będzie przechowywana w: %s" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Błąd podczas odczytywania opcji konfiguracji.\n\n" +"Problem:\n" +" Nie określono tokenu bota w opcjach konfiguracji lub środowisku.\n\n" +"Rozwiązanie:\n" +" Ustaw opcję konfiguracji tokenu lub ustaw zmienną środowiskową %(env_var)s z tokenem aplikacji." + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "Opcja StatusMessage jest zbyt długa, będzie ograniczona do 128 znaków." + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "Domyślna prędkość odtwarzania musi wynosić od 0,5 do 100.0. Wartość opcji %.3f będzie ograniczona." + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "Wykryto plik TXT ciasteczka. MusicBot przekaże je do yt-dlp.\n" +"Pliki cookie nie są zalecane, mogą nie być obsługiwane i mogą całkowicie uszkodzone.\n" +"Kopiowanie ciasteczek z przeglądarki internetowej stwarza ryzyko narażenia danych osobowych, a \n" +"w najlepszym przypadku może doprowadzić do zablokowania Twoich kont.\n\n" +"Zostałeś ostrzeżony! Powodzenia! \\U0001F596\n" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "Sprawdzanie opcji z danymi usługi..." + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "Nabyty identyfikator właściciela przez API" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Błąd podczas pobierania \"ID właściciela\".\n\n" +"Problem:\n" +" Informacje o aplikacji Discord nie są dostępne.\n" +" To może być tymczasowy brak API lub błąd.\n\n" +"Rozwiązanie:\n" +" ręcznie ustaw opcję 'WłaścicielID' lub spróbuj ponownie później." + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "MusicBot nie ma instancji użytkownika, nie można kontynuować." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" +"Problem:\n" +" Konfiguracja 'WłaścicielID' jest taka sama jak Twój bot / ID aplikacji.\n\n" +"Rozwiązanie:\n" +" Nie używaj Bot ani App ID w polu 'OwnerID'." + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "Nie znaleziono pliku opcji konfiguracyjnych. Sprawdzanie alternatyw..." + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "Zmiana nazwy %(ini_file)s na %(option_file)s, prawdopodobnie powinieneś włączyć rozszerzenia plików." + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "Kopiowanie istniejącego przykładowego pliku opcji: %(example_file)s" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "Wygenerował nowy %(example_file)s i skopiował go do %(option_file)s" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "Coś poszło nie tak podczas próby znalezienia pliku opcji konfiguracji." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Błąd lokalizacji konfiguracji.\n\n" +"Problem:\n" +" Nie można znaleźć ani utworzyć pliku konfiguracyjnego z powodu błędu:\n" +" %(raw_error)s\n\n" +"Rozwiązanie:\n" +" Zweryfikuj folder konfiguracyjny i pliki istnieją i mogą być odczytane przez MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Błąd ładowania konfiguracji.\n\n" +"Problem:\n" +" MusicBot nie mógł odczytać pliku konfiguracyjnego z powodu błędu:\n" +" %(raw_error)s\n\n" +"Rozwiązanie:\n" +" Upewnij się, że plik jest dostępny i nie ma błędu.\n" +" Skopiuj przykładowy plik z repozytorium, jeśli wszystko inne nie powiedzie się." + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "Dev Bug! Opcja konfiguracji ma getter, który jest niedostępny." + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "Błąd dev Bug! Opcja konfiguracji ma nieprawidłowy typ, getter i domyślny musi być tym samym typem." + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "Wcześniej brakowało wariantu." + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "Sekcja konfiguracji nie jest w pliku konfiguracyjnym! Brakuje: %s" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "Zapisana opcja konfiguracji: %(config)s = %(value)s" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "Nie udało się zapisać konfiguracji: %s" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "Nazwy opcji nie są unikalne pomiędzy sekcjami INI! Rozpoznawanie jest wyłączone." + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "Nie udało się zapisać domyślnego pliku INI na: %s" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Błąd ładowania wartości konfiguracji.\n\n" +"Problem:\n" +" Identyfikator właściciela w [%(section)s] > %(option)s jest nieprawidłowy.\n\n" +"Rozwiązanie:\n" +" Ustaw %(option)s na numeryczny identyfikator lub ustaw go na `auto` lub `0` dla automatycznego powiązania właściciela." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Błąd ładowania wartości konfiguracji.\n\n" +"Problem:\n" +" Opcja konfiguracji [%(section)s] > %(option)s nie jest prawidłową lokalizacją pliku.\n\n" +"Rozwiązanie:\n" +" Sprawdź ustawienia ścieżki i upewnij się, że plik istnieje i jest dostępny dla MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Błąd ładowania wartości konfiguracji.\n\n" +"Problem:\n" +" Jeden z ID w opcji [%(section)s] > %(option)s jest nieprawidłowy.\n\n" +"Rozwiązanie:\n" +" Upewnij się, że wszystkie ID są liczbowe i oddzielone tylko spacjami lub przecinkami." + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "Podano nieprawidłową opcję DebugLevel \"%(value)s\", spadając z powrotem do poziomu: %(fallback)s" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "Opcja [%(section)s] > %(option)s ma nieprawidłową wartość konfiguracji '%(value)s' zamiast domyślnej." + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "Opcja [%(section)s] > %(option)s ma wartość większą niż 100 %% (%(value)s) i zamiast tego zostanie ustawiona na %(fallback)s." + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "Zmiana nazwy pliku INI [%(old_s)s] > %(old_o)s na [%(new_s)s] > %(new_o)s" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "Aktualizowanie pliku konfiguracyjnego ze zmienionymi nazwami opcji..." + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "Nie udało się zaktualizować konfiguracji. Musisz uaktualnić ją ręcznie." + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "Nie znaleziono pliku listy bloków: %s" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "Nie można załadować listy bloków z pliku: %s" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "Nie można zaktualizować pliku listy bloków: %s" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr "Załadowano listę bloków użytkowników z wpisami %s." + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "Znaleźliśmy starszy plik czarnej listy, zostanie on zmieniony na: %s" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr "Załadowano listę bloków piosenek z wpisami %s." + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "Nie można załadować danych dla gildii o ID 0. Jest to prawdopodobnie błąd w kodzie!" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "Brak pliku dla gildii %(id)s/%(name)s" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "Ładowanie danych gildii dla gildii z ID: %(id)s/%(name)s" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "Błąd systemu operacyjnego uniemożliwił odczyt pliku danych gildii: %s" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "Gildia %(id)s/%(name)s ma niestandardowy prefiks poleceń: %(prefix)s" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "Nie można zapisać danych dla gildii o ID 0. Jest to prawdopodobnie błąd w kodzie!" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "Nie można zapisać danych specyficznych dla gildii z powodu błędu systemu operacyjnego." + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "Nie udało się zserializować danych specyficznych dla gildii z powodu nieprawidłowych danych." + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "Wymuszanie YTDLP do używania User Agent: %s" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "MusicBot będzie używać ciasteczek do yt-dlp z: %s" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "Yt-dlp użyje skonfigurowanego serwera proxy." + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "Oryginalna wtyczka OAuth2 jest zainstalowana i będzie użyta.\n" +"Może to spowodować, że MusicBot nie zamknie się całkowicie lub zawiesić oczekującą autoryzację!\n" +"Aby zamknąć MusicBot, musisz ręcznie zabić proces MusicBot!\n" +"Yt-dlp jest ustawiony aby pokazać ostrzeżenia i inne wiadomości dziennika, aby wyświetlić kod uwierzytelniania.\n" +"Odinstaluj pakiet yt-dlp-youtube-oauth2, aby zamiast tego używać zintegrowanych funkcji OAuth2." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD wydaje się, że nie ma nagłówków..." + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "Sprawdzanie nagłówków mediów nie powiodło się z powodu przekroczenia limitu czasu." + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "Nieudane żądanie HEAD dla: %s" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "Wyjątek żądania HEAD: " + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "Informacje o ekstrakcji YTDL (nie JSON):\n" +"%s" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "Informacje o ekstrakcji YTDL (nie JSON): %s" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "Wyciąg informacji o utworze nie zwrócił żadnych danych." + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "Wywołany extract_info z: '%(subject)s', %(args)s, %(kws)s" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "Nie można uruchomić ekstrakcji, pętla jest zamknięta. (To jest normalne przy wyłączeniu.)" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Nie można kontynuować ekstrakcji, pętla zdarzeń jest zamknięta." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "Adres URL Spotify jest nieprawidłowy lub nie jest obsługiwany." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Błąd w yt-dlp podczas pobierania danych: %(raw_error)s" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "Błąd pobierania z URL strumienia" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "Zakładając, że zawartość jest bezpośrednim strumieniem" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Nie można strumieniować nieprawidłowego URL." + +#: musicbot/downloader.py:517 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "Złap NoSupportingHandlers, spróbuj ponownie po zastąpieniu colona miejscem." + +#: musicbot/downloader.py:544 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "Wyciągnij youtube:search zwrócił wynik pojedynczego wpisu, zastępując informacje bazowe informacjami o wpisie." + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "Wywołano safe_extract_info z: %(args)s, %(kws)s" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "Nie znaleziono lokalnego pliku multimedialnego." + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "Brakuje __input_subject z YtdlpResponseDict" + +#: musicbot/downloader.py:623 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "Wpisy nie są listą w YtdlpResponseDict, ustaw proces = True, aby tego uniknąć." + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "Ostrzeżenie, czas trwania błędu dla: %(url)s" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "moduł 'pymediainfo' nie znaleziony, wróci do ffprobe." + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "Stworzona przyszłość dla %r" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "Zakończone kontrakty futures dla %(entry)r z %(callback)r" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "Nieobsługiwany wyjątek w _for_each_future wywołanie zwrotne." + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "Rozpoczęcie podprocesu asyncio (%(process)s) z poleceniem: %(run)s" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "Ekstrakcja nie zapewniła czasu trwania tego wpisu.\n" +"MusicBot nie może oszacować czasu kolejki dopóki nie zostanie pobrana.\n" +"Nazwa wpisu: %s" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "Wpis nie zawiera numeru wersji, nie można deserializować." + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "Dane wpisu mają nieprawidłowy numer wersji, nie można deserializować." + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "Deserializowany wpis listy URLPlaylist nie może znaleźć kanału z ID: %s" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "Deserializowany wpis listy URLPlaylist ma nieprawidłowy typ kanału: %s" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "Deserializowany wpis listy URLPlaylist nie może znaleźć autora z ID: %s" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserializowany wpis listy URLPlaylist ma identyfikator autora, ale nie ma kanału do wyszukiwania!" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "Nie można załadować %s" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Nie można pobrać linków Spotify, przetwarzanie błędu z typu: %(type)s" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "Przygotowanie do wpisu: %r" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "Pobierz buforowane z innym rozszerzeniem..." + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "Rozmiar lokalny różny od rozmiaru zdalnego. Ponowne pobieranie..." + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "Pobierz już w pamięci podręcznej w: %s" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "MusicBot nie mógł uzyskać danych o czasie trwania dla tego wpisu.\n" +"Oszacowanie czasu oczekiwania może być niedostępne, dopóki ten utwór nie zostanie wyczyszczony.\n" +"Plik wpisu: %s" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "Czas trwania %(time)s sekund dla pliku: %(file)s" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." +msgstr "Wystąpił problem z wypracowaniem EQ, prawdopodobnie spowodowany dziwną instalacją FFmpeg. To nie wpłynęło na zdolność bota do pracy, ale oznacza, że Twoje ścieżki nie będą równe." + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "Wyjątek podczas sprawdzania danych wejściowych." + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "Próba uzyskania czasu trwania przez pymediainfo dla: %s" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "Nie udało się uzyskać czasu trwania przez pymediainfo." + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "Próba uzyskania czasu trwania przez ffprobe dla: %s" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "Nie można zlokalizować ffprobe na twojej ścieżce!" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "ffprobe zwrócił coś, czego nie można użyć." + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "ffprobe nie może być wykonany z jakiegoś powodu." + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "Obliczanie średniej głośności: %s" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "Nie można zlokalizować ffmpeg na twojej ścieżce!" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr "Nie można przetworzyć 'I' w normalizacji json." + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr "Nie można przetworzyć 'LRA' w normalizacji json." + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr "Nie można przetworzyć 'TP' w normalizacji json." + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr "Nie udało się przetworzyć 'invol' w normalizacji json." + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr "Nie można przetworzyć 'offset' w normalizacji json." + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "Rozpoczęto pobieranie: %r" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "Pobierz próbę %s z 3..." + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "Pobieranie niekompletne, ponowna próba za %(time).1f sekund. Powód: %(raw_error)s" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "Pobieranie nie powiodło się, nie próbuję ponownie! Powód: %(raw_error)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Pobieranie nie zostało zakończone z powodu błędu: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Pobieranie nie powiodło się z powodu błędu yt-dlp: %(raw_error)s" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "Ekstrakcja napotkała nieobsługiwany wyjątek." + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Pobieranie nie powiodło się z powodu nieobsługiwanego wyjątku: %(raw_error)s" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "Pobieranie nie powiodło się: %r" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Nie udało się wyodrębnić danych dla żądanych mediów." + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "Pobieranie zakończone: %r" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "Deserializowany StreamPlaylistEntry nie może znaleźć kanału o ID: %s" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "Deserialized StreamPlaylistEntry ma nieprawidłowy typ kanału: %s" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized StreamPlaylistEntry nie może znaleźć autora z ID: %s" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized StreamPlaylistEntry ma identyfikator autora, ale nie ma kanału do wyszukiwania!" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "Deserializowany LocalFilePlaylistEntry nie może znaleźć kanału o ID: %s" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "Deserializowany LocalFilePlaylistEntry ma nieprawidłowy typ kanału: %s" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "Deserializowany LocalFilePlaylistEntry nie może znaleźć autora z ID: %s" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized LocalFilePlaylistEntry ma identyfikator autora, ale nie ma kanału do wyszukiwania!" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "Czas trwania %(seconds)s sekund dla pliku: %(file)s" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "Nie udało się usunąć pliku pamięci podręcznej: %s" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "Katalog pamięci podręcznej dźwięku został usunięty." + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "Nie można usunąć lub zmienić nazwy katalogu pamięci podręcznej dźwięku." + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "Katalog pamięci podręcznej dźwięku nie może zostać usunięty." + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "Pamięć podręczna audio nie ma ustawionych limitów, nic do usunięcia." + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "Pamięć podręczna audio usunięta z pliku %(number)s , usunięto w sumie %(size)s." + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "Dźwięk zachowany w pamięci podręcznej plików %(number)s z listy autoplayerów, w sumie zachowano %(size)s." + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "Pamięć podręczna dźwięku jest teraz %(size)s przez pliki %(number)s." + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "Brak katalogu pamięci podręcznej dźwięku, nic do usunięcia." + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "Plik pamięci podręcznej dźwięku jest z listy autoplaylist ale oznaczony jako wysadzony, ignorując go." + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "Poziom pamięci podręcznej wymaga oczyszczania. %s" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr "Automatyczna lista odtwarzania nie ma mapy pamięci podręcznej, poruszanie się." + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr "Wczytano mapę pamięci podręcznej automatycznej listy odtwarzania z wpisami %s." + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr "Nie udało się załadować mapy pamięci podręcznej automatycznej playlisty." + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr "Zapisano mapę pamięci podręcznej automatycznej listy odtwarzania z wpisami %s." + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr "Nie udało się zapisać mapy pamięci podręcznej listy odtwarzania." + +#: musicbot/filecache.py:355 +#, python-format +msgid "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "Konflikt map automatycznej listy odtwarzania na kluczu: %(file)s Stared: %(old)s Nowy: %(new)s" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "Błąd Argumentu Lang: %s" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "Nie udało się załadować tłumaczenia dziennika dla dowolnego z: [%s] w: %s" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "Nie udało się załadować tłumaczeń dysku dla dowolnego z: [%s] w: %s" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "Ładowanie pliku JSON: %s" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "Błąd przetwarzania %s jako JSON" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "Nie można pobrać danych z klucza JSON: %s" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "Pominięto konfigurację logera, już skonfigurowano" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "Poziom dziennika został wcześniej ustawiony poprzez nadpisanie do: %s" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "Zmiana poziomu dziennika na: %s" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr "Rejestratorzy MusicBot zostali wezwani do wyłączenia." + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "Nie znaleziono pliku uprawnień, kopiowanie z: %s" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "Błąd podczas kopiowania przykładowego pliku uprawnień: %s" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr "Konfiguracja 'OwnerID' jest ustawiona automatycznie, zostanie ustawiona poprawnie później." + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "Sprawdzanie uprawnień..." + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr "Ustawienie automatycznego 'WłaścicielaID' dla grupy uprawnień właściciela." + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "Aktualizacja grupy w pliku uprawnień: %s" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "Usuwanie grupy z pliku uprawnień: %s" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "Dodawanie nowej grupy do pliku uprawnień: %s" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "Zapisywanie pliku uprawnień teraz." + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "Konfiguracja Updater nie może przetworzyć pliku uprawnień!" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "Masz zduplikowaną sekcję, napraw swój plik uprawnień!" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "Nie udało się zapisać grupy uprawnień: %s" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "Dev Bug! Zezwolenie jest niedostępne." + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "Błąd dewelo! Uprawnienie ma nieprawidłowy typ, getter i domyślnie musi być tym samym typem." + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "Maksymalna ilość elementów wyszukiwania nie może być większa niż 100. Ustawienie na 100." + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "Nie masz uprawnień do odtworzenia żądanych mediów.\n" +"Ekspaktor yt-dlp `%(extractor)s` nie jest dozwolony w twojej grupie." + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "Czyszczenie zostało wywołane na źródle audio: %r" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "MusicPlayer.skip() jest wywołany: %s" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "Odtwarzacz MusicPlayer.stop() jest wywołany: %s" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "Gildia lub sieć są niedostępne, nie można wznowić odtwarzania." + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "MusicPlayer.resume() jest wywołany: %s" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "MusicPlayer.pause() jest wywołany: %s" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "MusicPlayer.kill() jest wywołany: %s" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "Odtwarzanie zakończone, ale _current_entry nie istnieje." + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "Możliwe ostrzeżenie przed kill_current_player()" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "MusicPlayer.play() jest wywołany: %s" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "MusicPlayer jest martwy, nie można odtworzyć." + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "Gildia lub sieć są niedostępne, nie można rozpocząć odtwarzania." + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "MusicPlayer został wcześniej wstrzymany, wznawiając bieżącego odtwarzacza." + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "Odtwarzacz MusicPlayer jest już zablokowany do odtwarzania, to połączenie jest ignorowane." + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "Nie udało się uzyskać następnego wpisu." + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "Nie udało się przetworzyć wpisu do odtwarzania." + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "Tworzenie gracza z opcjami: ffmpeg %(before)s -i %(input)s %(after)s" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "Odtwarzanie %(source)r przy użyciu %(client)r" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "Pominięto usunięcie '%s', znaleziono utwór w kolejce" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "Usuwanie pliku: %s" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "Plik usunięty: %s" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "Nie można usunąć pliku, jest on obecnie w użyciu." + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr "Nie można usunąć pliku z powodu błędu uprawnień." + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "Nie można usunąć pliku, nie został on znaleziony." + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "Błąd podczas próby usunięcia pliku." + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "Nie można usunąć pliku, zrezygnować i przenieść na" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "Deserialize zwrócił obiekt, który nie jest MusicPlayer: %s" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "Nie udało się deserializować gracza" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "Dane z ffmpeg: %s" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "Błąd z ffmpeg: %s" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "Ostrzeżenie od ffmpeg: %s" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "Nieznany błąd dekodowania wiadomości z ffmpeg" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "Dekodowane dane z ffmpeg: %s" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "Dodawanie wpisu strumienia dla URL: %(url)s" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Nie można wyodrębnić informacji" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "To jest playlista." + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "Informacja o wpisie wydaje się być strumieniem, dodając wpis strumienia..." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Nieprawidłowy typ treści `%(type)s` dla URL: %(url)s" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "Masz tekst/html dla typu zawartości, może to być strumień." + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "Pytany typ zawartości \"%(type)s\" dla adresu url: %(url)s" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "Dodawanie wpisu listy URLPlaylaylist dla: %(subject)s" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "Dodawanie LocalFilePlaylistEntry dla: %(subject)s" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "Ignorowane wideo z linku złożonej playlisty z ID: %s" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "Nie zezwala na wpis, który znajduje się na liście bloków utworu: %(title)s URL: %(url)s" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "Ignorowanie piosenki w wpisach '%s', czas trwania dłuższy niż dozwolony maksimum." + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "Nie dodano filmu YouTube, ponieważ został oznaczony jako prywatny lub usunięty: %s" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "Nie można dodać elementu" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "Element: %s" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "Pominięto niewłaściwe wpisy %s" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "Zmień kolejność pętli nad wpisami." + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "Wstępne pobieranie następnego utworu: %r" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "brak danych czasu trwania" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "brak danych czasu trwania w bieżącym wpisie" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Nieprawidłowy track_data, musi być typu `track` got `%(type)s`" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "Ignorowanie wpisu nieutworu na playliście z typu: %s" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "Łączne adresy dla albumu: %(total)s Następny URL: %(url)s" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "Pobieranie Album Spotify Następny URL: %s" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Obiekt Album Spotify może nie być kompletny, oczekiwano utworów %(total)s , ale uzyskał %(number)s" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "Album Spotify ma więcej utworów niż początkowa suma." + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "Łączne adresy na liście odtwarzania Spotify %(total)s Następny URL: %(url)s" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "Pobierz Spotify Playlist Następny URL: %s" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Obiekt Spotify Playlist może nie być ukończony, oczekiwano utworów %(total)s , ale uzyskał %(number)s" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "Lista odtwarzania Spotify ma więcej utworów niż początkowa suma." + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "Lista odtwarzania Spotify zawierała użyteczne utwory %s." + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Status odpowiedzi nie jest OK: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "Odpowiedź JSON nie zdekodowała na dykt!" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "Nie udało się wysłać żądania GET do adresu url: %s" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Nie można utworzyć GET do URL: %(url)s Powód: %(raw_error)s" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "Nie udało się wysłać żądania POST do adresu URL: %s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Nie można utworzyć POST na adres URL: %(url)s Powód: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Nie udało się uzyskać tokenu gościa ze Spotify, spróbuj określić identyfikator klienta i sekret klienta" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "Utworzono nowy token dostępu do trybu gościa." + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "Odpowiedź API nie zawiera oczekiwanych danych. Brakuje klucza: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "Odpowiedź API zawiera nieoczekiwane dane.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Żądany token ze Spotify nie został pobrany" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "Utworzono nowy token dostępu do trybu klienta." + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "Status odpowiedzi API nie jest OK: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "Nie udało się uzyskać tokenu gościa Spotify." + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "Nie udało się uzyskać tokenu gości ze względu na: %(raw_error)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Tylko właściciel może użyć tego polecenia." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Tylko deweloperzy mogą używać tej komendy." + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr "Nie można liczyć członków, gdy kanał głosowy nie jest żadny." + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "Nie udało się zapisać danych tokenu oauth2 ytdlp ze względu na: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr "Wczytywanie danych tokenu YouTube TV OAuth2." + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "Nie udało się załadować danych tokenów oauth2 ytdlp z powodu: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "Przechowywanie danych tokenu YouTube TV OAuth2" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr "Nieprawidłowe dane tokenu OAuth2." + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "Token dostępu wygasł, odświeżanie" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "Pliki cookie YouTube zostały dostarczone, ale OAuth2 są używane. Jeśli napotkasz problemy, przestań dostarczać pliki cookie YouTube do yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "Odświeżanie tokenu oauth2 YouTube..." + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "Nie udało się odświeżyć tokenu dostępu OAuth2 ze względu na: %s\n" +"Restartowanie przepływu autoryzacji..." + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "Uruchamianie przepływu oauth2 ..." + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "\n" +"NOTICE:\n" +"Aby dać yt-dlp dostęp do Twojego konta, odwiedzina:\n" +" %s\n" +"Następnie wprowadź kod autoryzacji: %s\n" +"Masz %s sekund, aby ukończyć autoryzację.\n" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "Wniosek może być zawieszony do czasu zakończenia autoryzacji, jeśli jest zamknięty w tym punkcie." + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr "Przekroczono limit czasu oczekiwania na token OAuth2." + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "Kod urządzenia wygasł, uruchamia ponownie przepływ autoryzacji dla yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "Autoryzacja Yt-dlp OAuth2 zakończona pomyślnie." + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "Dodawanie wtyczki OAuth2 do Yt-dlp IE: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "Domyślni klienci Yt-dlp: %s" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "Nie można znaleźć pliku wykonywalnego git" + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "Próba uaktualnienia z `git pull` na bieżącej ścieżce." + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "Wynik ściągnięcia git %s" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "Aktualizacja nie powiodła się, musisz uruchomić `git pull` ręcznie." + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "Nie można wykonać pip." + +#: run.py:180 +msgid "Error using -m method" +msgstr "Błąd przy użyciu metody -m" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "PIP nie powiodło się podczas podprocesu połączenia." + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr "PIP nie powiodło się z powodu błędu uprawnień." + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "PIP nie powiódł się z powodu braku pliku wykonywalnego Pythona?%s)" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "PIP nie powiódł się z powodu OSError." + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "Nie można dekodować raportu aktualizacji pip JSON." + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "Nie można zlokalizować ani wykonać Python -m pip" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "Próba uaktualnienia z `%s` na bieżącej ścieżce..." + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "Wynik ulepszenia pipy:\n" +"%s" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "Kod wyjścia wyniku z aktualizacji pip: %s" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "Aktualizacja nie powiodła się lub nie mogliśmy zrozumieć wyjścia" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "Może być konieczne ręczne uruchomienie `%s`." + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "Naciśnij Enter, aby kontynuować . . . ." + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "Rozpoczęcie kontroli sanitarnej" + +#: run.py:361 +msgid "Required checks passed." +msgstr "Przesłano wymagane sprawdzenia." + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "Pominięto sprawdzanie aktualizacji." + +#: run.py:376 +msgid "Optional checks passed." +msgstr "Kontrole opcjonalne minęły." + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "Sprawdzanie języka Python 3.8+" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "Python 3.8+ jest wymagany. Ta wersja to %s" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "Próba zlokalizowania Pythona 3.8..." + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "Nie można zlokalizować py.exe" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "Nie można uruchomić pliku `py.exe -3.8` " + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "Znaleziono Python 3. Uruchamianie bota..." + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "Próba „python3.8”" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "Nie można zlokalizować python3.8 na ścieżce." + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "\n" +"Python 3.8 Znaleziono. Ponowne uruchamianie bota przy użyciu: %s run.py\n" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "Nie można znaleźć Pythona 3.8 lub wyższego. Uruchom bota za pomocą Pythona 3.8" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "Zagwarantowanie właściwego otoczenia" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "Sprawdzanie środowiska nie powiodło się, %s" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "Obecny katalog roboczy nie wydaje się być zapisywalny" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "Przenieś bota do folderu, który jest zapisywalny" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "Wykryte FFmpeg jest zainstalowany w: %s" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "Dodawanie lokalnych binów / folderów środowiska PATH dla pakietów ffmpeg..." + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "MusicBot nie mógł zlokalizować binarnego FFmpeg w twoim środowisku.\n" +"Zainstaluj FFmpeg aby był dostępny w zmiennej PATH w środowisku." + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "W systemie Windows możesz dodać wstępnie skompilowane EXE do folderu `bin` MusicBot,\n" +"lub możesz zainstalować system FFmpeg za pomocą WinGet lub uruchamiając instalację. w pliku." + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "Na MacOS, możesz być w stanie zainstalować FFmpeg przez homebrew.\n" +"W przeciwnym razie sprawdź oficjalną stronę FFmpeg w celu budowy lub zainstalowania kroków." + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "Na Linuksie, wiele distrosów udostępnia FFmpeg za pośrednictwem menedżerów pakietów systemowych.\n" +"Sprawdź ffmpeg w menedżerze pakietów systemowych lub buduj z źródeł." + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "Na tym urządzeniu pozostaje mniej niż %sMB wolnego miejsca" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "\n" +"Sprawdzanie aktualizacji MusicBot lub zależności..." + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "Brak aktualizacji MusicBot dostępnych za pomocą polecenia `git`." + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "Nie można sprawdzić aktualizacji używając komend `git`. Powinieneś sprawdzić ręcznie." + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "Następujące pakiety mogą być aktualizowane:\n" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr " %s do wersji: %s\n" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "Brak aktualizacji zależności dostępnych za pomocą polecenia `pip`." + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "Nie można sprawdzić aktualizacji używając komend `pip`. Powinieneś sprawdzić ręcznie." + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "Możesz uruchomić aktualizację z przewodnikiem używając polecenia:\n" +" %s ./update.py" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "Wartość jest wyższa od maksymalnego limitu." + +#: run.py:638 +msgid "Value must not be negative." +msgstr "Wartość nie może być ujemna." + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "Wartość maks. zachowanych dzienników musi być liczbą od 0 do %s" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "Poziom logowania '%s' jest niedostępny." + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "Poziom dziennika musi być jednym z: %s" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "Uruchom muzykę odtwarzającego bota Discorda zbudowanego za pomocą Discord.py, youtubeDL i ffmpeg." + +#: run.py:669 +msgid "Available via Github:" +msgstr "Dostępne przez Github:" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "Aby uzyskać więcej pomocy i wsparcia z tym botem, dołącz do naszego discorda:" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "Oprogramowanie to jest dostępne na licencji MIT." + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "Zobacz plik tekstowy `LICENSE` w celu uzyskania pełnych informacji." + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "Zastąp domyślny / system wykryty dla całego tekstu w MusicBot." + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "Użyj tego języka dla wszystkich wiadomości dziennika po stronie serwera z MusicBot." + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "Użyj tego języka dla wszystkich wiadomości wysyłanych do Discorda z MusicBot.\n" +"To nie zapobiega wybraniu języka dla gildii." + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "Wydrukuj informacje o wersji MusicBot i wyjdź." + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "Pomiń wszystkie opcjonalne kontrole uruchomienia, w tym sprawdzanie aktualizacji." + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "Pomiń tylko sprawdzanie miejsca na dysku przy starcie." + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "Pomiń tylko sprawdzanie aktualizacji przy starcie." + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "Wyłącz MusicBot z próby zainstalowania zależności, gdy nie może ich zaimportować." + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "Określ ile plików dziennika chcesz zachować, pomiędzy 0 a %s włącznie. (Domyślnie: %s)" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "Zastąp ustawienia poziomu dziennika ustawione w konfiguracji. Musi być jednym z: %s" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "Zastąp domyślny format daty używany podczas obracania plików dziennika. Powinno to zawierać wartości zgodne z strftime(). (Standardowo: '%s')" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "Wersja: %s" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "Otwiera nową instancję MusicBot. Ten terminal może być bezpiecznie zamknięty!" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "Wczytywanie wersji MusicBot: %s" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "Rejestr otwarty: %s" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "Python version: %s" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "Zmiana katalogu roboczego na: %s" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "Nie można uruchomić bota! Uruchomiłeś `run.py` w niewłaściwym katalogu i nie mogliśmy zlokalizować `musicbot` i `. foldery do zweryfikowania nowej lokalizacji katalogu." + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "Aby uzyskać najlepsze wyniki, uruchom `run.py` z tego samego folderu, w którym sklonowano MusicBot.\n" +"Jeśli nie używałeś git do sklonowania repozytorium, mocno poleca się cię." + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "Błąd certyfikatu nie jest błędem weryfikacyjnym, nie próbuje certyfikować i wyjść." + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "Oto dokładny błąd, może to być błąd." + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "Aby z łatwością dodać certyfikat do sklepu zaufanych Windows \n" +"możesz otworzyć uszkodzoną stronę w programie Microsoft Edge lub IE...\n" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "Nie można uzyskać certyfikatu wystawcy z domyślnego sklepu zaufania, zamiast tego próbuje certyfikować." + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "Błąd składni (wykryto modyfikację, czy edytowałeś kod?)" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "Błąd składni (jest to błąd, nie twoja usterka)" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "Nie można uruchomić MusicBot z powodu błędu!\n\n" +"Problem:\n" +" Wystąpił błąd podczas importowania MusicBot lub pakietu zależności.\n\n" +"Rozwiązanie:\n" +" Musisz ręcznie zainstalować pakiety pip dla MusicBot\n" +" lub uruchomić bez `--no-install-deps` i MusicBot spróbuje je zainstalować dla Ciebie." + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "Próba zainstalowania pakietów zależności MusicBot automatycznie...\n" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "Zależności MusicBot mogą nie być zainstalowane!\n\n" +"Problem:\n" +" Proces instalacji pip zakończył się możliwym błędem.\n" +" Może brakować niektórych lub wszystkich zależności.\n\n" +"Rozwiązanie:\n" +" Musisz ręcznie zainstalować pakiety zależności.\n" +" Otwórz monit / terminal CMD do katalogu MusicBot.\n" +" Możesz spróbować zainstalować pakiety skryptów aktualizacji.\n" +" lub spróbuj tego polecenia ręcznego:\n" +" %(py_bin)s -m pip install -U -r . requirements.txt\n\n" +"Możesz również poprosić o pomoc na Discordzie obsługi MusicBot:\n" +" https://discord.gg/bots" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "OK, pozwala mieć nadzieję, że zainstalowanie zależności działa!" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "MusicBot dostał błąd importu po próbie instalacji pakietów. MusicBot musi wyjść..." + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "Wyjątek, który spowodował powyższy błąd: " + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "MusicBot wykonuje miękki restart..." + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "MusicBot wykonuje pełny proces restartu..." + +#: run.py:1169 +msgid "Error starting bot" +msgstr "Błąd podczas uruchamiania bota" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "Zamknij pętlę zdarzeń." + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "Ponowne uruchomienie za %s sekund..." + +#: run.py:1183 +msgid "All done." +msgstr "Wszystko gotowe." + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "OK, zamykamy!" + diff --git a/i18n/pl_PL/LC_MESSAGES/musicbot_messages.mo b/i18n/pl_PL/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..f6aedfd1f6f16c984d2098f599708ea429103922 GIT binary patch literal 109703 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 HvGIQZ(jos} literal 0 HcmV?d00001 diff --git a/i18n/pl_PL/LC_MESSAGES/musicbot_messages.po b/i18n/pl_PL/LC_MESSAGES/musicbot_messages.po new file mode 100644 index 000000000..9ea2e2b7d --- /dev/null +++ b/i18n/pl_PL/LC_MESSAGES/musicbot_messages.po @@ -0,0 +1,3217 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: 2024-11-08 18:12\n" +"Last-Translator: \n" +"Language-Team: Polish\n" +"Language: pl_PL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: pl\n" +"X-Crowdin-File: /fae/i18n/musicbot_messages.pot\n" +"X-Crowdin-File-ID: 28\n" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "Błąd podczas ładowania aliasów.\n\n" +"Problem:\n" +" Brakuje plików aliases.json & example_aliases.json.\n\n" +"Rozwiązanie:\n" +" Zastąp plik konfiguracyjny aliasu lub skopiuj go z\n" +" https://github.com/Just-Some-Bots/MusicBot/" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "Użytkownik nie jest włączony głosowo i nie może użyć tego polecenia." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "Nie możesz użyć tej komendy gdy nie jest na kanale głosowym." + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBot nie ma uprawnień do połączenia na kanale: `%(name)s`" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBot nie ma uprawnień do mówienia na kanale: `%(name)s`" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot nie mógł połączyć się z kanałem.\n" +"Spróbuj ponownie później lub zrestartuj bota jeśli to będzie kontynuowane." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "Połączenie MusicBot z głosowaniem zostało anulowane. To jest dziwne. Może zrestartować?" + +#: musicbot/bot.py:840 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot nie ma uprawnień do mówienia." + +#: musicbot/bot.py:844 +msgid "MusicBot could not request to speak." +msgstr "MusicBot nie mógł prosić o głos." + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "Bot nie jest na kanale głosowym.\n" +"Użyj polecenia przywołania, aby przenieść bota do kanału głosowego." + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Coś jest nie tak. Nie otrzymaliśmy VoiceClient." + +#: musicbot/bot.py:1084 +#, python-format +msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" +msgstr "Pominięcie następnej piosenki `%(title)s` jako żądający `%(user)s` nie jest w głosowaniu!" + +#: musicbot/bot.py:1102 +#, python-format +msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" +msgstr "%(mention)s - Twoja piosenka `%(title)s` gra teraz w %(channel)s!" + +#: musicbot/bot.py:1111 +#, python-format +msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" +msgstr "Teraz odtwarzane w %(channel)s: `%(title)s` dodane przez %(author)s!" + +#: musicbot/bot.py:1122 +#, python-format +msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" +msgstr "Teraz odtwarzane automatycznie dodany wpis `%(title)s` w %(channel)s!" + +#: musicbot/bot.py:1333 +#, python-format +msgid "Skipping songs added by %(user)s as they are not in voice!" +msgstr "Pominięto piosenki dodane przez %(user)s , ponieważ nie są one w głosowaniu!" + +#: musicbot/bot.py:1555 +#, python-format +msgid "Playback failed for song `%(song)s` due to an error:\n" +"```\n" +"%(error)s```" +msgstr "Odtwarzanie nie powiodło się dla utworu `%(song)s` z powodu błędu:\n" +"```\n" +"%(error)s```" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Próba wysłania nieprawidłowego obiektu odpowiedzi." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Nieudane logowanie API Discorda!\n\n" +"Problem:\n" +" MusicBot nie mógł zalogować się do API Discorda.\n" +" Twój token może być niepoprawny lub może wystąpić awaria API.\n\n" +"Rozwiązanie:\n" +" Upewnij się, że masz ustawiony odpowiedni token w konfiguracji.\n" +" Sprawdź status API na oficjalnej stronie: discordstatus.com" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "Żądana piosenka `%(subject)s` jest zablokowana przez listę bloków utworu." + +#: musicbot/bot.py:2831 +msgid "Reset the auto playlist queue by copying it back into player memory.\n" +"This command will be removed in a future version, replaced by the autoplaylist command(s)." +msgstr "Zresetuj kolejkę auto playlisty, kopiując ją z powrotem do pamięci gracza.\n" +"Ta komenda zostanie usunięta w przyszłej wersji, zastąpiona poleceniem (poleceniami) autoplaylisty." + +#: musicbot/bot.py:2846 +msgid "\\N{OK HAND SIGN}" +msgstr "\\N{OK HAND SIGN}" + +#: musicbot/bot.py:2853 +msgid "Show usage and description of a command, or list all available commands.\n" +msgstr "Pokaż użycie i opis polecenia lub wyświetl listę wszystkich dostępnych poleceń.\n" + +#: musicbot/bot.py:2888 +msgid "**Aliases for this command:**\n" +msgstr "**Aliasy dla tej komendy:**\n" + +#: musicbot/bot.py:2891 +#, python-format +msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" +msgstr "`%(alias)s` alias `%(command)s %(args)s`\n" + +#: musicbot/bot.py:2924 +#, python-format +msgid "**Alias of command:**\n" +" `%(command)s`\n" +msgstr "**Alias polecenia:**\n" +" `%(command)s`\n" + +#. TRANSLATORS: template string for command-specific help output. +#: musicbot/bot.py:2931 +#, python-format +msgid "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" +msgstr "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "Nie ma takiej komendy" + +#: musicbot/bot.py:2959 +#, python-format +msgid "The list above shows only commands permitted for your use.\n" +"For a list of all commands, run: %(example_all)s\n" +msgstr "Powyższa lista pokazuje tylko polecenia dozwolone do użycia.\n" +"Aby wyświetlić listę wszystkich poleceń, uruchom %(example_all)s\n" + +#: musicbot/bot.py:2965 +#, python-format +msgid "**Commands by name:** *(without prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Command Prefix:** %(prefix)s\n\n" +"For help with a particular command, run: %(example_command)s\n" +"%(all_note)s" +msgstr "**Polecenia według nazwy:** *(bez prefiksu)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Prefiks poleceń:** %(prefix)s\n\n" +"Aby uzyskać pomoc z określonym poleceniem, bieg: %(example_command)s\n" +"%(all_note)s" + +#: musicbot/bot.py:2984 +msgid " Block a mentioned user." +msgstr " Zablokuj wspomnianego użytkownika." + +#: musicbot/bot.py:2987 +msgid " Unblock a mentioned user." +msgstr " Odblokuj wspomnianego użytkownika." + +#: musicbot/bot.py:2990 +msgid " Show the block status of a mentioned user." +msgstr " Pokaż status bloku wspomnianego użytkownika." + +#: musicbot/bot.py:2994 +msgid "Manage the users in the user block list.\n" +"Blocked users are forbidden from using all bot commands.\n" +msgstr "Zarządzaj użytkownikami na liście zablokowanych użytkowników.\n" +"Zablokowanym użytkownikom zabrania się używania wszystkich poleceń bota.\n" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "Musisz podać użytkownika lub jego numer identyfikacyjny." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Podano nieprawidłowe polecenie. Użyj `help blockuser` dla przykładów użycia." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot nie mógł znaleźć podanego użytkownika." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "Właściciel nie może być dodany do listy bloków." + +#: musicbot/bot.py:3059 +msgid "User block list is currently enabled." +msgstr "Lista bloków użytkowników jest obecnie włączona." + +#: musicbot/bot.py:3061 +msgid "User block list is currently disabled." +msgstr "Lista bloków użytkowników jest obecnie wyłączona." + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "Nie można dodać użytkowników, których wymieniłeś, są już dodane." + +#: musicbot/bot.py:3078 +#, python-format +msgid "%(number)s user(s) have been added to the block list.\n" +"%(status)s" +msgstr "%(number)s użytkownicy zostali dodani do listy bloków.\n" +"%(status)s" + +#: musicbot/bot.py:3089 +msgid "None of those users are in the blacklist." +msgstr "Żaden z tych użytkowników nie jest na czarnej liście." + +#: musicbot/bot.py:3094 +#, python-format +msgid "User: `%(user)s` is not blocked.\n" +msgstr "Użytkownik: `%(user)s` nie jest zablokowany.\n" + +#: musicbot/bot.py:3096 +#, python-format +msgid "User: `%(user)s` is blocked.\n" +msgstr "Użytkownik: `%(user)s` jest zablokowany.\n" + +#: musicbot/bot.py:3099 +#, python-format +msgid "**Block list status:**\n" +"%(status)s\n" +"%(users)s" +msgstr "**Status listy bloków:**\n" +"%(status)s\n" +"%(users)s" + +#: musicbot/bot.py:3109 +#, python-format +msgid "%(number)s user(s) have been removed from the block list.\n" +"%(status)s" +msgstr "Użytkownicy %(number)s zostali usunięci z listy bloków.\n" +"%(status)s" + +#: musicbot/bot.py:3118 +msgid "Manage a block list applied to song requests and extracted song data.\n" +"A subject may be a song URL or a word or phrase found in the track title.\n" +"If subject is omitted, any currently playing track URL will be added instead.\n\n" +"The song block list matches loosely, but is case-sensitive.\n" +"This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" +msgstr "Zarządzaj listą bloków zastosowaną do żądań piosenki i wyodrębnionych danych utworu.\n" +"Tematem może być adres URL utworu, słowo lub fraza znalezione w tytule utworu.\n" +"Jeśli temat zostanie pominięty, zostanie dodany dowolny aktualnie odtwarzany adres URL utworu.\n\n" +"Lista bloków piosenek pasuje luźnie, ale ma wielkość liter.\n" +"To oznacza dodanie 'Pie' będzie pasować do 'wiśni Piechotnej', ale nie 'piekrego' w kontrolach.\n" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Musisz podać temat utworu, jeśli nie ma aktualnie odtwarzanej piosenki." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Podano nieprawidłowe polecenie. Użyj `help blocksong` dla przykładów użycia." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "Temat%(subject)s` jest już na liście bloków utworu." + +#: musicbot/bot.py:3187 +#, python-format +msgid "Added subject `%(subject)s` to the song block list.\n" +"%(status)s" +msgstr "Dodano temat `%(subject)s` do listy bloków utworu.\n" +"%(status)s" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "Temat nie znajduje się na liście bloków piosenek i nie może zostać usunięty." + +#: musicbot/bot.py:3204 +#, python-format +msgid "Subject `%(subject)s` has been removed from the block list.\n" +"%(status)s" +msgstr "Temat `%(subject)s` został usunięty z listy bloków.\n" +"%(status)s" + +#: musicbot/bot.py:3214 +msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" +msgstr " Dodaje lub usuwa określoną piosenkę lub aktualnie odtwarzany utwór do/z bieżącej listy odtwarzania.\n" + +#: musicbot/bot.py:3217 +msgid " Adds the entire queue to the guilds playlist.\n" +msgstr " Dodaje całą kolejkę do listy odtwarzania gildii.\n" + +#: musicbot/bot.py:3220 +msgid " Show a list of existing playlist files.\n" +msgstr " Pokaż listę istniejących plików listy odtwarzania.\n" + +#: musicbot/bot.py:3223 +msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" +msgstr " Zresetuj kolejkę auto playlisty, uruchom ponownie przy pierwszym utworze, chyba że losowo wybrano.\n" + +#: musicbot/bot.py:3226 +msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" +msgstr " Ustaw listę odtwarzania jako domyślną dla tej gildii i odśwież auto playlistę gildii.\n" + +#: musicbot/bot.py:3229 +msgid "Manage auto playlist files and per-guild settings." +msgstr "Zarządzaj plikami automatycznej listy odtwarzania i ustawieniami gildii." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Podano nieprawidłowe polecenie. Użyj `help autoplaylist` dla przykładów użycia." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "Podany link do utworu jest nieprawidłowy" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "Kolejka jest pusta. Dodaj kilka piosenek poleceniem odtwarzania!" + +#: musicbot/bot.py:3273 +msgid "All songs in the queue are already in the autoplaylist." +msgstr "Wszystkie utwory w kolejce są już w autoplaylist." + +#: musicbot/bot.py:3277 +#, python-format +msgid "Added %(number)d songs to the autoplaylist." +msgstr "Dodano utwory %(number)d do listy autoplay." + +#: musicbot/bot.py:3287 +#, python-format +msgid "Added `%(url)s` to the autoplaylist." +msgstr "Dodano `%(url)s` do autoplaylisty." + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Ta piosenka jest już na autoplaylist." + +#: musicbot/bot.py:3304 +#, python-format +msgid "Removed `%(url)s` from the autoplaylist." +msgstr "Usunięto `%(url)s` z listy autoplay." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Ta piosenka nie znajduje się jeszcze na liście autoplay." + +#: musicbot/bot.py:3316 +#, python-format +msgid "Loaded a fresh copy of the playlist: `%(file)s`" +msgstr "Załadowano nową kopię playlisty: `%(file)s`" + +#: musicbot/bot.py:3327 +#, python-format +msgid "**Available Playlists:**\n" +"%(names)s" +msgstr "**Dostępne playlisty:**\n" +"%(names)s" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "Musisz podać nazwę pliku listy odtwarzania." + +#: musicbot/bot.py:3357 +msgid "\n" +"This playlist is new, you must add songs to save it to disk!" +msgstr "\n" +"Ta lista odtwarzania jest nowa, musisz dodać utwory, aby zapisać je na dysku!" + +#: musicbot/bot.py:3362 +#, python-format +msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" +msgstr "Lista odtwarzania dla tego serwera została zaktualizowana do: `%(name)s`%(note)s" + +#: musicbot/bot.py:3373 +msgid "Generate an invite link that can be used to add this bot to another server." +msgstr "Wygeneruj link z zaproszeniem, który może być użyty do dodania tego bota do innego serwera." + +#: musicbot/bot.py:3385 +#, python-format +msgid "Click here to add me to a discord server:\n" +"%(url)s" +msgstr "Kliknij tutaj, aby dodać mnie do serwera Discord:\n" +"%(url)s" + +#: musicbot/bot.py:3391 +msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" +"Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" +msgstr "Włącz lub wyłącz tryb karaoke. Włączając włączone, tylko członkowie karaoke mogą dodawać piosenki.\n" +"Grupy z kontrolą uprawnień BypassKaraokeMode które są członkami Karaoke.\n" + +#: musicbot/bot.py:3403 +msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." +msgstr "\\N{OK HAND SIGN} Tryb Karaoke jest teraz włączony." + +#: musicbot/bot.py:3405 +msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." +msgstr "\\N{OK HAND SIGN} Tryb karaoke jest teraz wyłączony." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "Nie masz uprawnień do żądania playlist" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "Playlista ma zbyt wiele wpisów (%(songs)s ale max to %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "Wpisy listy odtwarzania przekroczą limit twojej kolejki.\n" +"Na liście znajdują się %(songs)s i %(queued)s już w kolejce.\n" +"Limit wynosi %(max)s dla twojej grupy." + +#: musicbot/bot.py:3580 +msgid "Bot was previously paused, resuming playback now." +msgstr "Bot był wcześniej wstrzymany, wznowiono odtwarzanie." + +#: musicbot/bot.py:3589 +msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" +"You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" +"Playlist links will be extracted into multiple links and added to the queue.\n" +"If you enter a non-URL, the input will be used as search criteria on YouTube and the first result played.\n" +"MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" +msgstr "Dodaj utwór do odtworzenia w kolejce. Jeśli żaden utwór nie jest odtwarzany lub wstrzymany, odtwarzanie zostanie uruchomione.\n\n" +"Możesz podać adres URL do pliku wideo lub audio lub adres URL usługi obsługiwanej przez yt-dlp.\n" +"Linki do playlisty zostaną wyodrębnione na wiele linków i dodane do kolejki.\n" +"Jeśli wprowadzisz nie-adres URL, dane wejściowe będą używane jako kryteria wyszukiwania na YouTube i odtworzony pierwszy wynik.\n" +"MusicBot obsługuje również adresy URL Spotify, ale dźwięk jest pobierany z YouTube.\n" + +#: musicbot/bot.py:3628 +msgid "Play command that shuffles playlist entries before adding them to the queue.\n" +msgstr "Odtwórz polecenie, które losuje wpisy listy odtwarzania przed dodaniem ich do kolejki.\n" + +#: musicbot/bot.py:3665 +#, python-format +msgid "Shuffled playlist items into the queue from `%(request)s`" +msgstr "Odtwarzanie losowe elementów listy odtwarzania z `%(request)s`" + +#: musicbot/bot.py:3672 +msgid "A play command that adds the song as the next to play rather than last.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "Polecenie odtwarzania, które dodaje utwór jako następny do odtworzenia, a nie jako ostatni.\n" +"Przeczytaj pomoc dla komendy odtwarzania dla informacji o obsługiwanych danych wejściowych.\n" + +#: musicbot/bot.py:3707 +msgid "A play command which skips any current song and plays immediately.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "Komenda odtwarzania, która pomija bieżącą piosenkę i odtwarza natychmiast.\n" +"Przeczytaj pomoc dla komendy odtwarzania dla informacji o obsługiwanych danych wejściowych.\n" + +#: musicbot/bot.py:3744 +msgid "Restarts the current song at the given time.\n" +"If time starts with + or - seek will be relative to current playback time.\n" +"Time should be given in seconds, fractional seconds are accepted.\n" +"Due to codec specifics in ffmpeg, this may not be accurate.\n" +msgstr "Ponownie uruchamia bieżącą piosenkę w danym czasie.\n" +"Jeśli czas zaczyna się od + lub - szukaj będzie w stosunku do bieżącego czasu odtwarzania.\n" +"Czas powinien być podany w sekundach, minuty ułamkowe są akceptowane.\n" +"Ze względu na specyfikację kodeka w ffmpeg, może to nie być dokładne.\n" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "Nie można użyć szukania, jeśli nic nie gra." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "Nie można użyć szukania bieżącego utworu, ma nieznany czas trwania." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "Szukanie nie jest obsługiwane dla strumieni." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "Nie można użyć wyszukiwania bez czasu na umiejscowienie odtwarzania." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "Nie można przekonwertować `%(input)s` na poprawny czas w sekundach." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "Nie można szukać `%(input)s` (`%(seconds)s` sekund) w bieżącym utworze o długości `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3840 +#, python-format +msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." +msgstr "Szukam czasu `%(input)s` (`%(seconds).2f` sekund) w bieżącej piosence." + +#: musicbot/bot.py:3852 +msgid "Toggles playlist or song looping.\n" +"If no option is provided the current song will be repeated.\n" +"If no option is provided and the song is already repeating, repeating will be turned off.\n" +msgstr "Przełącza listę odtwarzania lub pętlę utworu.\n" +"Jeśli nie podano żadnej opcji, bieżący utwór zostanie powtórzony.\n" +"Jeśli nie podano żadnej opcji i utwór już się powtarza, powtórzenie zostanie wyłączone.\n" + +#: musicbot/bot.py:3870 +msgid "No songs are currently playing. Play something with a play command." +msgstr "Nie ma aktualnie odtwarzanych utworów. Odtwarzaj coś z poleceniem odtwarzania." + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Nieprawidłowe polecenie podrzędne. Użyj polecenia `help repeat` dla przykładów użycia." + +#: musicbot/bot.py:3883 musicbot/bot.py:3920 +msgid "Playlist is now repeating." +msgstr "Playlista jest teraz powtarzana." + +#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +msgid "Playlist is no longer repeating." +msgstr "Playlista już się nie powtarza." + +#: musicbot/bot.py:3892 musicbot/bot.py:3901 +msgid "Player will now loop the current song." +msgstr "Odtwarzacz zapętli teraz bieżącą piosenkę." + +#: musicbot/bot.py:3894 musicbot/bot.py:3908 +msgid "Player will no longer loop the current song." +msgstr "Gracz nie będzie już w pętli bieżącej piosenki." + +#: musicbot/bot.py:3898 +msgid "Player is already looping a song!" +msgstr "Odtwarzacz jest już w pętli utworu!" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "Odtwarzacz nie jest obecnie w pętli." + +#: musicbot/bot.py:3926 +msgid "Song is no longer repeating." +msgstr "Utwór już się nie powtarza." + +#: musicbot/bot.py:3930 +msgid "Song is now repeating." +msgstr "Utwór się powtarza." + +#: musicbot/bot.py:3938 +msgid " Move song at position FROM to position TO.\n" +msgstr " Przenieś utwór w pozycji FROM do pozycji TO.\n" + +#: musicbot/bot.py:3942 +msgid "Swap existing songs in the queue using their position numbers.\n" +"Use the queue command to find track position numbers.\n" +msgstr "Zamień istniejące utwory w kolejce używając ich numerów pozycji.\n" +"Użyj polecenia kolejki do znalezienia numerów pozycji śladów.\n" + +#: musicbot/bot.py:3961 +msgid "There are no songs queued. Play something with a play command." +msgstr "Nie ma żadnych piosenek w kolejce. Odtwórz coś z poleceniem odtwarzania." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Pozycje piosenek muszą być liczbą całkowitą!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "Dałeś pozycję poza rozmiarem playlisty!" + +#: musicbot/bot.py:3984 +#, python-format +msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" +msgstr "Pomyślnie przeniesiono utwór z pozycji %(from)s w kolejce do pozycji %(to)s!" + +#: musicbot/bot.py:4072 +#, python-format +msgid "This link contains a Playlist ID:\n" +"`%(url)s`\n\n" +"Do you want to queue the playlist too?" +msgstr "Ten link zawiera ID playlisty:\n" +"`%(url)s`\n\n" +"Czy chcesz dodać również listę odtwarzania?" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "Lokalne odtwarzanie mediów nie jest włączone." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "Adres URL Spotify jest nieprawidłowy lub nie jest obecnie obsługiwany." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Wykryto adres URL Spotify, ale Spotify nie jest włączony." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Osiągnąłeś limit utworów w kolejce (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "Tryb Karaoke jest włączony, spróbuj ponownie, gdy jest wyłączony!" + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Nie udało się wyodrębnić informacji z powodu błędu:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Nie można odtworzyć tego wideo. Spróbuj użyć komendy streamu." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "Wyszukiwanie YouTube nie zwróciło żadnych wyników dla: %(url)s" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "Nie dodano piosenek, wszystkie piosenki przekroczyły maksymalny czas trwania (%(max)s sekund)" + +#: musicbot/bot.py:4254 +#, python-format +msgid "Enqueued **%(number)s** songs to be played.\n" +"Position in queue: %(position)s" +msgstr "Utwory w kolejce **%(number)s** do odtworzenia.\n" +"Pozycja w kolejce: %(position)s" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "Czas trwania piosenki przekracza limit (%(length)s > %(max)s)" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "Zamieszczono `%(track)s` do odtworzenia.\n" +"Pozycja w kolejce: %(position)s" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "Odtwarzanie dalej!" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "%(position)s - przewidywany czas do odtwarzania: `%(eta)s`" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "%(position)s - nie można oszacować czasu do gry." + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "Dodaj adres URL mediów do kolejki jako Stream.\n" +"URL może być rzeczywistym nośnikiem strumieniowym, takim jak Twitch, Youtube lub usługą shoutcast.\n" +"Możesz również użyć niestrumieniowych mediów do odtworzenia bez pobierania.\n" +"Uwaga: FFmpeg może upuścić strumień losowo lub jeśli wystąpi czkawka.\n" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Strumieniowanie list odtwarzania nie jest jeszcze obsługiwane." + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "Teraz strumieniowanie utworu `%(track)s`" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr " Wyszukaj w serwisie kilka wyników z zapytaniem wyszukiwania.\n" + +#: musicbot/bot.py:4432 +msgid " Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr " Szukaj YouTube w poszukiwaniu zapytania, ale uzyskaj niestandardową liczbę wyników.\n" +" Uwaga: w tym przypadku wymagane są podwójne cudzysłowy.\n" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "Wyszukaj obsługiwaną usługę i wybierz spośród wyników do dodania do kolejki.\n" +"Argumenty usługi i numeru można pominąć, domyślnym numerem jest 3 wyniki.\n" +"Wybierz spośród tych usług:\n" +"- yt, youtube (domyślnie)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Osiągnąłeś limit przedmiotów na liście odtwarzania (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Proszę określić zapytanie wyszukiwania. Aby uzyskać więcej informacji, użyj `help search`." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "Nie możesz wyszukać więcej niż filmy %(max)s" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "Wyszukiwanie filmów..." + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "Wyszukiwanie nie powiodło się z powodu błędu: %(error)s" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "Nie znaleziono filmów." + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "Aby wybrać piosenkę, wpisz odpowiedni numer." + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "Wyniki wyszukiwania z %(service)s:" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "**%(index)s**. **%(track)s** | %(length)s" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "\n" +"**0**. Anuluj" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "Wybierz utwór" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "Dodano utwór [%(track)s](%(url)s) do kolejki." + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "Wynik %(number)s dla %(total)s: %(url)s" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "W porządku, nadchodzące!" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "Pokaż informacje o tym, co aktualnie gra." + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "[autoplaylist]" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "Teraz odtwarzane" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "Aktualnie streamowanie:" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "Aktualnie odtwarzane:" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "Dodane przez:" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "`%(user)s`" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "Postęp:" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "Brak utworów w kolejce! Kolejka czegoś z poleceniem odtwarzania." + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "Powiedz MusicBot, aby dołączył do kanału, w którym jesteś." + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "Nie jesteś połączony z głosowaniem. Spróbuj dołączyć do kanału głosowego!" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "Połączono z `%(channel)s`" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "Sprawia, że MusicBot obserwuje użytkownika, gdy zmienia kanały na serwerze.\n" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "Nie obserwuj już użytkownika `%(user)s`" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "Teraz obserwuj użytkownika `%(user)s` pomiędzy kanałami głosowymi." + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot nie może śledzić użytkownika, który nie jest członkiem serwera." + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "Będzie obserwować użytkownika `%(user)s` pomiędzy kanałami głosowymi." + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "Wstrzymaj odtwarzanie, jeśli odtwarzany jest utwór." + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "Wstrzymana muzyka w `%(channel)s`" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Gracz nie gra." + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "Wznawia odtwarzanie, jeśli gracz był wcześniej wstrzymany." + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "Wznowiono muzykę w `%(channel)s`" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "Wznowiono kolejkę muzyki" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "Gracz nie jest wstrzymany." + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "Losuj wszystkie bieżące utwory w kolejce." + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "Wszystkie piosenki w kolejce." + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "Usuwa wszystkie utwory obecnie w kolejce." + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "Wyczyszczono wszystkie piosenki z kolejki." + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "Usuń utwór z kolejki, opcjonalnie w danej pozycji kolejki.\n" +"Jeśli pozycja jest pominięta, piosenka na końcu kolejki zostaje usunięta.\n" +"Użyj polecenia kolejki, aby znaleźć numer pozycji swojego utworu.\n" +"Jednakże, pozycje wszystkich piosenek są zmieniane, gdy rozpocznie się odtwarzanie.\n" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Nic w kolejce do usunięcia!" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "Usunięto `%(track)s` dodane przez `%(user)s`" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "Nic nie znaleziono w kolejce od użytkownika `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "Nie masz uprawnień do usuwania tego wpisu z kolejki.\n" +"Musisz być tym, który ma w kolejce do kolejki lub ma natychmiastowe uprawnienia do pominięcia." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Nieprawidłowy numer wpisu. Użyj polecenia kolejki, aby znaleźć pozycje kolejki." + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "Usunięto wpis `%(track)s` dodany przez `%(user)s`" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "Usunięto wpis `%(track)s`" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "Pomiń lub zagłosuj aby pominąć bieżącą piosenkę odtwarzaną.\n" +"Członkowie z uprawnieniami InstaSkip mogą użyć parametru wymuszenia aby ominąć głos.\n" +"Jeśli opcja LegacySkip jest włączona, parametr siły można zignorować.\n" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Nie można pominąć! Gracz nie gra!" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "Następna piosenka `%(track)s` jest pobierana, proszę czekać." + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "Następny utwór zostanie wkrótce odtworzony. Proszę czekać." + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Coś nieparzystego.\n" +"Może chcesz zrestartować bota, jeśli nie zacznie działać." + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Coś dziwnego się dzieje.\n" +"Być może chcesz ponownie uruchomić bota, jeśli nie zacznie działać." + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "Nie masz uprawnień, aby wymusić pominięcie piosenki w pętli." + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "Wymuś pominięcie `%(track)s`." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "Nie masz uprawnień do wymuszania pominięcia." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "Nie masz uprawnień, aby pominąć piosenkę w pętli." + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "Twój przeskok dla `%(track)s` został potwierdzony.\n" +"Głosowanie na pominięcie zostało przekazane.%(next_up)s" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr " Następny utwór nadchodzi!" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "Twoje pominięcie dla `%(track)s` zostało potwierdzone.\n" +"Potrzebujesz **%(votes)s** więcej głosów, aby pominąć tę piosenkę." + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "Ustaw poziom głośności wyjściowej MusicBot od 1 do 100.\n" +"Parametr głośności pozwala na początkowe + lub - dla względnych korekt.\n" +"Ustawienie głośności jest utrzymywane do czasu ponownego uruchomienia MusicBot.\n" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "Bieżąca objętość: `%(volume)s%%`" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` nie jest poprawną liczbą" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "Zaktualizowano głośność z **%(old)d** do **%(new)d**" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Nieuzasadniona zmiana głośności: %(old_volume)s%(adjustment)s to %(new_volume)s.\n" +"Głośność można ustawić tylko od 1 do 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Podano nieracjonalny wolumen: %(volume)s. Podaj wartość między 1 a 100." + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "Zmień szybkość odtwarzania tylko dla aktualnie odtwarzanego utworu.\n" +"musi być pomiędzy 0,5 a 100. z powodu limitów ffmpeg.\n" +"odtwarzanie strumieniowe nie obsługuje regulacji prędkości.\n" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "Brak odtwarzanego utworu, nie można ustawić prędkości.\n" +"Użyj komendy konfiguracyjnej, aby ustawić domyślną prędkość odtwarzania." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "Prędkość nie może być zastosowana do mediów strumieniowych." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Musisz podać szybkość, aby ustawić." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "Podana prędkość jest nieprawidłowa. Użyj liczby od 0,5 do 100." + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "Ustawienie prędkości odtwarzania na `%(speed).3f` dla bieżącego utworu." + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr " Dodaj nowy alias z opcjonalnymi argumentami.\n" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr " Usuń alias o podanej nazwie." + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr " Odśwież lub zapisz aliasy z/do pliku konfiguracyjnego." + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "Pozwala na zarządzanie aliasami z dysku. Aby zobaczyć aliasy, użyj polecenia pomocy." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Nieprawidłowa opcja dla polecenia: `%(option)s`" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "Aliasy przeładowane z pliku konfiguracyjnego." + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "Aliasy zapisane w pliku konfiguracyjnym." + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Nie udało się zapisać aliasów z powodu błędu:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Musisz podać alias i polecenie do aliasu" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "Nowy alias dodany. `%(alias)s` jest teraz aliasem `%(command)s`" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Musisz podać nazwę aliasu aby usunąć." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "Alias `%(alias)s` nie istnieje." + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "Alias `%(alias)s` został usunięty." + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr " Pokazuje tekst pomocy o wszystkich brakujących opcjach konfiguracji.\n" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr " Wyświetla nazwy opcji, które zostały zmienione od wczytywania pliku konfiguracyjnego.\n" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr " Lista dostępnych opcji konfiguracji i ich sekcji.\n" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr " Przeładuj plik options.ini z dysku.\n" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr " Pokazuje tekst pomocy dla konkretnej opcji.\n" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr " Wyświetl bieżącą wartość opcji.\n" + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr " Zapisuje bieżącą wartość do pliku opcji.\n" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr " Sprawdza poprawność opcji i ustawia konfigurację dla sesji, ale nie do pliku.\n" + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr " Zresetuj opcję do wartości domyślnej.\n" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "Zarządzaj konfiguracją opcjiini z Discorda." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "Konfiguracja nie może używać kanału i wzmianek użytkownika w tym samym czasie." + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "**Brakująca opcja:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Domyślnie %(default)s```\n" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "*Wszystkie opcje konfiguracyjne są obecne i uwzględnione!*" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "Żadne opcje konfiguracji nie wydają się być zmienione." + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "**Zmieniono opcje:**\n" +"%(changed)s" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "## Dostępne opcje:\n" +"**Edytowalne opcje:**\n" +"%(editable)s\n" +"**Edycja ręczna tylko:**\n" +"%(manual)s" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "Opcje konfiguracji zostały pomyślnie przeładowane z pliku!" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Nie można przeładować konfiguracji z powodu następującego błędu:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Nie można ustalić nazwy sekcji z nazwy opcji. Proszę podać poprawną sekcję i nazwę opcji." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "Podana opcja jest niejednoznaczna, proszę podać nazwę sekcji." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Musisz podać nazwę sekcji i nazwę opcji dla tej komendy." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "Sekcja `%(section)s` jest niedostępna.\n" +"Dostępne sekcje to: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "Opcja `%(option)s` jest niedostępna." + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "Ta opcja może być ustawiona tylko przez edycję pliku konfiguracyjnego." + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "Domyślnie ta opcja jest ustawiona na: %(default)s" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Opcja:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zapisać na dysku." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Nie udało się zapisać opcji: `%(option)s`" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "Pomyślnie zapisano opcję: `%(config)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "Opcja `%(option)s` nie jest edytowalna, wartość nie może być wyświetlana." + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Opcja:** `%(config)s`\n" +"Bieżąca wartość: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zaktualizować ustawienia." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Musisz podać sekcję, opcję i wartość dla tej podkomendy." + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "Opcja `%(option)s` nie została zaktualizowana!" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "Opcja `%(config)s` została zaktualizowana dla tej sesji.\n" +"Aby zapisać zmianę, użyj `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zresetować do domyślnego." + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "Opcja `%(option)s` nie została zresetowana do domyślnych!" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "Opcja `%(config)s` została zresetowana do wartości domyślnej `%(default)s`.\n" +"Aby zapisać zmianę, użyj `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "Przestarzałe polecenie, zamiast tego użyj polecenia config." + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "Komenda opcji jest przestarzała, zamiast tego użyj komendy config." + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "Wyświetlaj informacje o pamięci podręcznej lub wyczyść pamięć podręczną zgodnie ze skonfigurowanymi limitami.\n" +"Używanie opcji aktualizacji skanuje pamięć podręczną w poszukiwaniu zmian zewnętrznych przed wyświetleniem szczegółów." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Podano nieprawidłową opcję, użyj: info, update, lub wyczyść" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "Wyłączone" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "Włączone" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "%(time)s dni" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "Nieograniczona" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "**Pamięć podręczna wideo:** *%(state)s*\n" +"** *%(size)s*\n" +"**Limit:** *%(time)s*\n\n" +"**Pamięć podręczna Teraz: %(used)s w plikach %(files)s." + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "Skrzynka została wyczyszczona." + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Nie udało się** usunąć pamięci podręcznej, sprawdź logi aby uzyskać więcej informacji..." + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "Nie znaleziono skrzynki do wyczyszczenia." + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "Wyświetl informacje o bieżącej kolejce gracza.\n" +"Fakultatywny numer strony pokazuje późniejsze wpisy w kolejce.\n" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "Argument strony kolejki musi być liczbą całkowitą." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "Żądany numer strony jest poza zakresem.\n" +"Istnieją ** strony%(total)s**." + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "(nieznany czas trwania)" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "Aktualnie odtwarzane: `%(title)s`\n" +"Dodane przez: `%(user)s`\n" +"Postęp: `[%(progress)s/%(total)s]`\n" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "**Wpis #%(index)s:**Tytuł: `%(title)s`\n" +"Dodane przez: `%(user)s\n\n" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "%(progress)sJest `%(total)s` wpisów w kolejce.\n" +"Oto następne piosenki %(per_page)s , zaczynając od piosenki #%(start)s\n\n" +"%(tracks)s" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "Utwory w kolejce" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Spróbuj ponownie. MusicBot nie mógł nawiązać do wiadomości kolejki.\n" +"Jeśli problem będzie się powtarzał, zgłoś błąd." + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "Wyszukaj i usuń wiadomości i polecenia bota z kanału tekstowego połączenia.\n" +"Opcjonalnie podaj liczbę wiadomości do przeszukiwania, 50 domyślnie 500 maks.\n" +"Ta komenda może być wolna, jeśli podane są większe zakresy.\n" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "Nieprawidłowy parametr. Proszę podać liczbę wiadomości do wyszukiwania." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Nie można użyć czyszczenia na prywatnym kanale DM." + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "Wyczyszczono wiadomości %(number)s." + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "Bot nie ma uprawnień do zarządzania wiadomościami." + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr "Zrzuć indywidualne adresy URL playlisty do pliku." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "Podany adres URL nie jest prawidłowym adresem URL." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Nie można wyodrębnić informacji z wprowadzonego adresu\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "To nie wygląda na playlistę." + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "Oto zrzut playlisty dla: %(url)s" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "Wyświetl ID użytkownika Discorda lub identyfikator wspomnianego użytkownika.\n" +"Ta komenda jest przestarzała na korzyść trybu deweloperskiego w klientach Discorda.\n" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "Twój identyfikator użytkownika to `%(id)s`" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "ID użytkownika dla `%(username)s` to `%(id)s`" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "Lista ID Discorda dla wybranej kategorii.\n" +"Zwraca domyślnie wszystkie dane identyfikacyjne, ale można wybrać jedną lub więcej kategorii.\n" +"Ta komenda jest przestarzała na korzyść trybu deweloperskiego w klientach Discorda.\n" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "Prawidłowe kategorie: %(cats)s" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "Oto ID, o które prosiłeś:" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permissions of the mentioned user." +msgstr "Uzyskaj listę uprawnień lub uprawnień wspomnianego użytkownika." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "Nieprawidłowy identyfikator użytkownika lub nazwa serwera, sprawdź identyfikator i spróbuj ponownie." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Nie można określić użytkownika Discorda. Spróbuj ponownie." + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Twoje uprawnienia poleceń w %(server)s to:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Uprawnienia poleceń dla %(username)s w %(server)s to:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr " Pokaż wczytane grupy i opcje uprawnień.\n" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr " Ponownie ładuje uprawnienia z pliku uprawnień.\n" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr " Dodaj nową grupę z domyślnymi.\n" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr " Usuń istniejącą grupę.\n" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr " Pokaż tekst pomocy dla opcji uprawnień.\n" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr " Pokaż wartość uprawnień dla danej grupy i uprawnień.\n" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr " Zapisz grupę uprawnień do pliku.\n" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr " Ustaw wartość uprawnień dla grupy.\n" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "Zarządzaj konfiguracją uprawnieńini z dysku." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Uprawnienia nie mogą używać jednocześnie wspomnień kanału i użytkownika." + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "Uprawnienia ponownie załadowane z pliku!" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Nie można przeładować uprawnień z powodu błędu:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "## Dostępne grupy:\n" +"%(groups)s\n" +"## Dostępne opcje:\n" +"%(options)s\n" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Musisz podać nazwę grupy lub opcji dla tego polecenia." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Musisz podać grupę, opcję i wartość, aby ustawić to polecenie." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "Podpolecenie %(option)s wymaga nazwy grupy i uprawnień." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "Grupa `%(group)s` jest niedostępna.\n" +"Dostępne grupy to: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "Uprawnienia `%(option)s` nie są dostępne." + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "To uprawnienie może być ustawione tylko przez edycję pliku uprawnień." + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "Domyślnie to uprawnienie jest ustawione na: `%(value)s`" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Uprawnienie:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Nie można dodać grupy `%(group)s` już istnieje." + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "Pomyślnie dodano nową grupę: `%(group)s`\n" +"Możesz teraz dostosować uprawnienia w: `setperms set %(group)s`\n" +"Upewnij się, że zapisz nową grupę w: `setperms save %(group)s`" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Nie można usunąć wbudowanej grupy." + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "Pomyślnie usunięto grupę: `%(group)s`\n" +"Upewnij się, że zapisać tę zmianę w: `setperms save %(group)s`" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "Grupa właścicieli nie jest edytowalna." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Nie udało się zapisać grupy: `%(group)s`" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "Pomyślnie zapisano grupę: `%(group)s`" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Uprawnienie:** `%(permission)s`\n" +"Bieżąca wartość: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Uprawnienia `%(option)s` nie zostały zaktualizowane!" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "Uprawnienia `%(permission)s` zostały zaktualizowane dla tej sesji.\n" +"Aby zapisać zmianę, użyj `setperms save %(section)s %(option)s`" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "Zmień nazwę użytkownika bota na dysku.\n" +"Uwaga: API może ograniczyć zmianę nazwy do dwóch razy na godzinę." + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Nie udało się zmienić nazwy użytkownika. Czy zmieniłeś nazwy zbyt wiele razy?\n" +"Zapamiętaj zmiany nazwy są ograniczone do dwóch razy na godzinę.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Nie udało się zmienić nazwy użytkownika z powodu błędu: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "Ustaw nazwę użytkownika bota na `%(name)s`" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "Zmień nick MusicBot." + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Nie można zmienić pseudonimu: brak uprawnień." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Nie udało się ustawić pseudonimu z powodu błędu: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "Ustawiono pseudonim bota na `%(nick)s`" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr " Ustaw prefiks komendy na serwer." + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr " Wyczyść prefiks komend na serwer." + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "Zastąp domyślny prefiks poleceń na serwerze.\n" +"Opcja Włączony PrefixPerGuild musi być włączona w pierwszej kolejności." + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Niestandardowe emoji muszą być z tego serwera, aby użyć jako prefiks." + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "Prefiks komend serwera został wyczyszczony." + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "Prefiks polecenia serwera jest teraz: %(prefix)s" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Prefiks na serwer nie jest włączony!\n" +"Użyj komendy config aby zaktualizować prefiks." + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "Zmień awatar MusicBota.\n" +"Dołączanie pliku i pominięcie parametru url również działa.\n" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "Musisz podać adres URL lub załączyć plik." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Nie można zmienić awatara z powodu błędu: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "Zmieniono awatar bota." + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "Wymuś rozłączenie MusicBot z serwerem Discord." + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "Rozłączono z serwerem `%(guild)s`" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "Odłączono klienta głosowego bez odtwarzacza? [BUG]" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Obecnie nie jest połączony z serwerem `%(guild)s`" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr " Próba odświeżenia bez ponownego uruchomienia procesu. Opcja domyślna.\n" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr " Próba ponownego uruchomienia całego procesu MusicBot, przeładowanie wszystkiego.\n" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr " Pełne ponowne uruchomienie, ale próba aktualizacji pakietów pip przed ponownym uruchomieniem.\n" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr " Pełne ponowne uruchomienie, ale najpierw zaktualizuj kod źródłowy MusicBot git.\n" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr " Próba zaktualizowania wszystkich zależności i kodu źródłowego przed całkowitym ponownym uruchomieniem.\n" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "Próbuje zrestartować MusicBot na kilka różnych sposobów.\n" +"Bez opcji implikuje się restart `soft`.\n" +"Może być używany do zdalnego aktualizowania instalacji MusicBot, ale powinien być używany z ostrożnością.\n" +"Jeśli masz menedżera usług, zalecamy użycie go zamiast tej komendy do ponownego uruchomienia.\n" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Podano nieprawidłową opcję, użyj jednej z: miękkiej, pełnej, aktualizacji, uppip lub upgit" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "%(emoji)s Restartowanie bieżącej instancji..." + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "%(emoji)s Restartowanie procesu bota..." + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "%(emoji)s spróbuje ulepszyć wymagane pakiety pip i zrestartować bot..." + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "%(emoji)s spróbuje zaktualizować kod bota z git i zrestartować bota..." + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "%(emoji)s spróbuje ulepszyć wszystko i zrestartować bot..." + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "Odłącz od wszystkich kanałów głosowych i zamknij proces MusicBot." + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr " Pozostaw serwer discorda podany przez nazwę lub ID serwera." + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "Wymuś MusicBot aby opuścił dany serwer Discord.\n" +"Nazwy mają znaczenie dla liter, więc użycie numeru ID jest bardziej wiarygodne.\n" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Musisz podać identyfikator lub nazwę." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "Nie znaleziono gildii o ID lub nazwie `%(input)s`" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "Nieznane" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "Opuszczono gildię: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "Polecenie używane do testowania. Drukuje listę poleceń, które mogą być zweryfikowane przez zestaw testowy." + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "To polecenie wydaje dziennik na poziomie CRITICAL, ale nie robi nic innego.\n" +"Może być użyty do ręcznego wskazywania wydarzeń w pliku dziennika MusicBot.\n" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "Zgłoszono punkt wstrzymania z ID: %(uuid)s" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr " Zobacz najczęstsze typy zgłoszone przez objgraf.\n" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr " Zobacz ograniczone wyjście objgraph.show_growth().\n" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr " Zobacz najpopularniejsze typy wyciekających obiektów.\n" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr " Zobacz statystyki typów wyciekających obiektów.\n" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr " Oceń daną funkcję i argumenty na objgrafie.\n" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "Współpracuj z objgrafem, jeśli jest zainstalowany, aby uzyskać wgląd w użycie pamięci.\n" +"Możesz przekazać dowolną metodę z argumentami (ale bez spacji!), która jest członkiem objgrafu.\n" +"Ponieważ ta metoda ocenia dowolny kod, jest uważany za niebezpieczny jak polecenie debugowania.\n" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Nie można zaimportować `objgraf`, czy jest zainstalowany?" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "Ta komenda wykona dowolny kod Pythona w zakresie poleceń.\n" +"Pierwszy eval() jest próbowany, jeśli wyjątki są rzucane exec() zostanie wypróbowany następnie.\n" +"Jeśli eval zakończył się sukcesem, wyświetlana jest wartość zwrotna.\n" +"Jeśli wykonanie się powiodło, wartość można ustawić na lokalną zmienną `result` i wartość ta zostanie zwrócona.\n\n" +"Kod wieloliniowy może być wykonany, jeśli jest zapakowany w blok kodu.\n" +"W przeciwnym razie można wykonać tylko jeden wiersz.\n\n" +"Ta komenda może zostać usunięta w przyszłej wersji i jest używana przez deweloperów do debugowania zachowania MusicBot.\n" +"Zagrożenie związane z tym poleceniem nie może być zaniżone. Nie używaj go ani nie daj mu dostępu, jeśli nie rozumiesz ryzyka!\n" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Nie udało się wykonać kodu debugowania:\n" +"%(py_code)s\n" +"Wyjątek: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "Utwórz 'markdown' dla opcji, uprawnień lub poleceń z kodu.\n" +"Wyjście jest używane do aktualizacji stron GitHub i dlatego nie nadaje się do normalnego użycia odniesienia." + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "Podpolecenie musi być jednym z: %(options)s" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "Tworzy domyślne pliki INI." + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "Zapisano żądany plik INI na dysku. Sprawdź go" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "Wyświetl aktualną wersję bota i sprawdź dostępność aktualizacji MusicBot lub zależności.\n" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Nie można zlokalizować pliku wykonywalnego git" + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "Brak aktualizacji w gałęzi `%(branch)s`." + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "Nowe commity są dostępne w oddziale `%(branch)s`." + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "Błąd podczas sprawdzania, zobacz logi w celu uzyskania szczegółów." + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "Aktualizacja dla `%(name)s` do wersji: `%(version)s`\n" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "Nie znaleziono aktualizacji dla zależności." + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "Istnieją aktualizacje dla MusicBot dostępne do pobrania." + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "MusicBot jest całkowicie aktualny!" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "%(status)s\n\n" +"**Aktualizacje kodu źródłowego:**\n" +"%(git_status)s\n\n" +"**Aktualizacje zależności:**\n" +"%(pip_status)s" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "Wyświetla czas uptime MusicBot lub czas od ostatniego rozpoczęcia / restartu." + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "%(name)s jest online dla `%(time)s`" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "Wyświetlaj informacje o opóźnieniu dla Discorda API i wszystkich podłączonych klientów głosowych." + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) w regionie: `%(region)s`\n" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "Brak podłączonych klientów głosowych.\n" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "**Opóźnienie API:** `%(delay).0f ms`\n" +"**Opóźnienie VoiceClient:**\n" +"%(voices)s" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "Wyświetlaj opóźnienie API i opóźnienie głosowe, jeśli MusicBot jest podłączony." + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "auto" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "\n" +"**Opóźnienie głosowe:** `%(delay).0f ms` (`%(average).0f ms` Avg.) w regionie `%(region)s`" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "**Opóźnienie API:** `%(delay).0f ms`%(voice)s" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "Wyświetlaj numer wersji MusicBot na czacie." + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "https://github.com/Just-Some-Bots/MusicBot\n" +"Obecna wersja: `%(version)s`" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr " Aktualizuj plik cookies.txt za pomocą załącznika cookies.txt." + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr " Włącz lub wyłącz plik cookies.txt bez usuwania go." + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "Pozwala na zarządzanie funkcją ciasteczek w yt-dlp.\n" +"Podczas aktualizacji ciasteczek musisz przesłać plik o nazwie ciasteczka. xt\n" +"Jeśli ciasteczka są wyłączone, przesyłanie włączy tę funkcję.\n" +"Przesyłanie usunie istniejące ciasteczka, w tym wyłączony plik ciasteczka.\n\n" +"OSTRZEŻENIE:\n" +" Kopiowanie ciasteczek może stwarzać ryzyko narażenia Twoich danych osobowych lub kont,\n" +" i może skutkować zakazem lub kradzieżą, jeśli nie jesteś ostrożny.\n" +" Nie zaleca się jej ze względu na te zagrożenia, i nie powinieneś używać tej funkcji\n" +" , jeśli nie rozumiesz jak unikać ryzyka." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Pliki cookie są już włączone." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Pliki cookie muszą być przesłane, aby je włączyć. (Przeliczanie pliku cookies.)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Nie można włączyć ciasteczek z powodu błędu: %(raw_error)s" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "Pliki cookie zostały włączone." + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Nie można zmienić nazwy pliku ciasteczek z powodu błędu: %(raw_error)s\n" +"ciasteczka tymczasowo wyłączone i zostaną ponownie włączone przy następnym ponownym uruchomieniu." + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "Pliki cookie zostały wyłączone." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "Nie znaleziono załączonych przesyłanych plików, spróbuj ponownie podczas przesyłania pliku cookie." + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Błąd podczas pobierania pliku ciasteczek z dysku: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Nie można zapisać ciasteczek na dysku: %(raw_error)s" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "Pliki cookie przesłane i włączone." + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "Nie możesz użyć tego bota w prywatnych wiadomościach." + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Ta komenda nie jest dozwolona dla grupy uprawnień: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Ta komenda wymaga bycia na kanale głosowym." + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "**Polecenie:** %(name)s" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "Błąd wyjątku" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "**Przykład z prefiksem:**\n" +"%(prefix)s`%(command)s ...`\n" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "Nie podano opisu.\n" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "Nie podano użycia." + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "**Przykładowe użycie:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Opis:**\n" +"%(desc)s" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "Opuszczanie kanału głosowego %(channel)s z powodu braku aktywności." + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "Pozostało `%(guild)s` z powodu nieznalezionego w nim właściciela bota." + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "Ustaw werbosity dziennika MusicBot. Zazwyczaj powinno to być ustawione na INFO.\n" +"Można go ustawić na jedno z następujących:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY lub EVERYTHING" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "Token uwierzytelniania bota Discorda dla twojego bota.\n" +"Odwiedź portal programisty Discorda, aby utworzyć aplikację bota i wygenerować token.\n" +"Nigdy nie publikuj swojego tokenu!" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "Podaj swój własny identyfikator klienta Spotify, aby umożliwić MusicBot interakcję z API Spotify.\n" +"MusicBot spróbuje użyć API odtwarzacza internetowego (tryb gościa) jeśli nic nie jest ustawione tutaj.\n" +"Korzystanie z własnych danych logowania API daje większe limity użytkowania niż tryb gościa." + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "Podaj swój sekretny klucz klienta Spotify, aby umożliwić MusicBot interakcję z API Spotify.\n" +"Jest to wymagane, jeśli ustawisz powyższą opcję Spotify_ClientID." + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "Podaj numer ID użytkownika Discorda, aby ustawić właściciela tego bota.\n" +"Słowo 'auto' lub numer 0 ustawi właściciela na podstawie informacji o aplikacji.\n" +"Można tutaj ustawić tylko jeden identyfikator właściciela. Generalnie zalecane jest ustawienie 'auto'." + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "Lista ID użytkownika Discorda, który może używać poleceń dev-online.\n" +"Ostrzeżenie: komendy dev-only mogą zezwolić na dowolne zdalne wykonanie kodu.\n" +"Użyj spacji, aby oddzielić wiele identyfikatorów.\n" +"Większość użytkowników powinna pozostawić to ustawienie puste." + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "ID użytkowników Discorda dla innych botów, których MusicBot nie powinien ignorować.\n" +"Użyj spacji, aby oddzielić wiele ID.\n" +"Wszystkie boty są domyślnie ignorowane." + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "Prefiks polecenia to jak wszystkie polecenia MusicBot muszą być uruchamiane w wiadomościach Discorda.\n" +"Np. jeśli ustawisz to na * polecenie gry wyzwala *graj..." + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "Włącz polecenia z @[YourBotNameHere]\n" +"Polecenie jest nadal dostępne, ale można je zastąpić @ mention." + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "Numery identyfikacyjne kanałów tekstowych, które MusicBot powinien używać wyłącznie dla poleceń.\n" +"Może zawierać identyfikatory kanałów na wielu serwerach.\n" +"Użyj spacji, aby oddzielić wiele identyfikatorów.\n" +"Wszystkie kanały są używane, jeśli nie są ustawione." + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "Zezwalaj na odpowiedzi we wszystkich kanałach, podczas gdy żaden konkretny kanał nie jest ustawiony dla serwera.\n" +"Używane tylko wtedy, gdy BindToChannels nie posiada identyfikatora serwera." + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "Lista identyfikatorów kanału głosowego, do których MusicBot powinien automatycznie dołączyć przy uruchomieniu.\n" +"Użyj spacji, aby oddzielić wiele identyfikatorów." + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "MusicBot spróbuje wysłać powiadomienia o Terazie Odtwarzanym bezpośrednio do użytkownika, który zażądał utworu zamiast publikować je na kanale serwera." + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "Wyłącz teraz odtwarzane wiadomości dla utworów odtwarzanych za pośrednictwem automatycznej listy odtwarzania." + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "Wymusza użycie przez MusicBot konkretnego kanału do wysyłania wiadomości odtwarzania.\n" +"Można użyć tylko jednego kanału tekstowego ID na serwer." + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "MusicBot automatycznie usunie wiadomości." + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "Ustawia domyślny poziom głośności MusicBot odtwarza piosenki.\n" +"Możesz użyć dowolnej wartości od 0 do 1 lub 0% do 100% głośności." + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "Ustawia domyślną szybkość odtwarzania piosenek przez MusicBot.\n" +"Musi być wartością od 0,5 do 100.0 dla ffmpeg aby go użyć.\n" +"Wartość 1 to normalna prędkość odtwarzania.\n" +"Uwaga: media strumieniowe nie obsługują regulacji prędkości." + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "Liczba głosów członków kanału, aby pominąć piosenkę.\n" +"działa minimalnie, gdy pominięcie Ratio wymagałoby więcej głosów." + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "Ten procent słuchaczy musi głosować na pominięcie.\n" +"Jeśli Pomijanie jest niższe niż obliczona wartość, zostanie użyta.\n" +"Możesz to ustawić od 0 do 1, lub 0% do 100%." + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "Pozwól MusicBot na przechowywanie pobranych mediów lub natychmiastowe ich usunięcie." + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "Jeśli zapis wideo jest włączony, ustaw limit ilości miejsca na dysku." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "Jeśli zapis wideo jest włączony, ustaw limit czasu przechowywania plików." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "Jeśli ZapiszFilmy są włączone, nigdy nie czyść automatycznie utworów z listy odtwarzania z pamięci podręcznej bez względu na limity." + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "Wspomnij użytkownika, który dodał utwór po jego odtworzeniu." + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "Automatycznie dołącz do właściciela, jeśli są na dostępnym kanale głosowym po uruchomieniu bota." + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "Włącz MusicBot aby automatycznie odtwarzać muzykę z automatycznej listy odtwarzania, gdy kolejka jest pusta." + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "Losuj auto playlisty utwory przed ich odtwarzaniem." + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "Włącz automatyczne pomijanie utworów, gdy użytkownik odtwarza nową piosenkę.\n" +"Dotyczy to tylko bieżącego utworu odtwarzanego jeśli został dodany przez auto playlistę." + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song block list." +msgstr "Usuń utwory z automatycznej listy odtwarzania, jeśli znajdują się na liście bloków utworów." + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "Zezwól MusicBotowi na automatyczne usuwanie wysyłanych wiadomości po opóźnieniu.\n" +"Okres opóźnienia jest kontrolowany przez DeleteDelayShort i DeleteDelayLong." + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "Automatyczne usuwanie prawidłowych poleceń po opóźnieniu." + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "Ustawia krótki okres sekund przed usunięciem wiadomości.\n" +"Ten okres jest używany przez wiadomości, które nie wymagają dalszej interakcji." + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "Ustawia długi okres opóźnienia przed usunięciem wiadomości.\n" +"Ten okres jest używany przez interaktywne lub długotrwałe wiadomości, takie jak wyszukiwanie i pomoc." + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "Pozwól MusicBot zapisać kolejkę piosenek, więc piosenki w kolejce przetrwają restarty." + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "Włącz MusicBot, aby pobrać następny utwór w kolejce, gdy odtwarzany jest utwór.\n" +"Obecnie ta opcja nie ma zastosowania do automatycznej listy odtwarzania lub piosenek dodanych do pustej kolejki." + +#: musicbot/config.py:550 +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "Określ niestandardową wiadomość jako status bota. Jeśli pozostanie puste, bot\n" +"wyświetli dynamiczne informacje o muzyce aktualnie odtwarzanej w jego statusie.\n" +"Wiadomości o statusie mogą również używać następujących zmiennych:\n" +" {n_playing} = Liczba aktualnie odtwarzanych odtwarzaczy muzycznych.\n" +" {n_paused} = Liczba aktualnie wstrzymanych odtwarzaczy muzycznych.\n" +" {n_connected} = Liczba podłączonych odtwarzaczy muzycznych w dowolnym stanie odtwarzania.\n\n" +"Poniższe zmienne umożliwiają dostęp do informacji o graczu i ścieżce.\n" +"Te zmienne mogą nie być dokładne w botach wielu gildii:\n" +" {p0_length} = Całkowity czas trwania utworu, jeżeli jest dostępny. Np. [2:34]\n" +" {p0_title} = Tytuł utworu dla aktualnie odtwarzanej ścieżki.\n" +" {p0_url} = Adres URL dla aktualnie odtwarzanej ścieżki." + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "Jeśli opcja jest włączona, komunikaty o statusie będą zgłaszać informacje o wstrzymanych odtwarzaczach." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "Jeśli włączone, MusicBot zapisze tytuł utworu na: data/[ID serwera]/current.txt" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "Pozwól członkom, który poprosił o utwór pominąć go, pomijając głosy." + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "Próbuje użyć ffmpeg aby uzyskać opcje normalizacji głośności do użycia w odtwarzaniu.\n" +"Ta opcja może spowodować opóźnienie pomiędzy odtwarzaniem utworów, ponieważ cały utwór musi być przetworzony." + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr "Pozwól MusicBot sformatować swoje wiadomości jako osadzone." + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "Liczba wpisów do wyświetlenia na stronę podczas używania polecenia q aby wyświetlić listę kolejki." + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." +msgstr "Włącz MusicBot, aby automatycznie usuwać nieodtwarzalne wpisy z listy automatycznego odtwarzania." + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "Wyświetlaj ustawienia konfiguracji MusicBot w logach podczas uruchamiania." + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "Włącz użytkowników z uprawnieniami InstaSkip aby ominąć głosowanie i wymusić pominięcie." + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "Jeśli opcja jest włączona, MusicBot opuści serwery, jeśli właściciel nie jest na liście użytkowników." + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "Jeśli włączone, MusicBot umożliwi komendom posiadanie wielu nazw za pomocą danych w: config/aliases.json" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "Zastąp nazwę/wersję MusicBot w osadzonej stopce niestandardowym tekstem.\n" +"Stosowane tylko gdy UseEmbeds jest włączone i nie jest puste." + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "Całkowicie usuń stopkę z osadników." + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "MusicBot automatycznie wyłączy się przy wchodzeniu na kanał głosowy." + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "Jeśli opcja jest włączona, MusicBot opuści kanał głosowy, gdy żaden użytkownik nie będzie słuchany,\n" +"po oczekiwaniu na okres ustawiony w opcji LeaveInactiveVCTimeOout.\n" +"Słuchacze są członkami kanałów, z wyjątkiem botów, którzy nie są deafenowani." + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "Ustaw czas oczekiwania przed opuszczeniem nieaktywnego kanału głosowego.\n" +"Możesz to ustawić na kilka sekund lub frazę jako: 4 godziny" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "Jeśli włączone, MusicBot opuści kanał natychmiast po opróżnieniu kolejki utworu." + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "Kiedy wstrzymuje się lub przestaje grać, poczekaj na ten czas, a następnie zostaw głos.\n" +"Możesz to ustawić na kilka sekund frazy, takich jak: 15 minut\n" +"Ustaw 0 aby wyłączyć wyjście w ten sposób." + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "Jeśli opcja jest włączona, użytkownicy muszą wskazywać wyniki wyszukiwania, wysyłając wiadomość zamiast używać reakcji." + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "Ustawia domyślną liczbę wyników wyszukiwania do pobrania podczas używania polecenia wyszukiwania bez określonej liczby." + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "Zezwalaj MusicBot na zapisywanie prefiksu komend dla każdego serwera i włącza komendę setprefiksa." + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "Jeśli włączone, a wielu użytkowników dodaje utwory, MusicBot zorganizuje odtwarzanie dla jednego utworu na użytkownika." + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "Pozwól MusicBot na używanie pingów czasowych do wykrywania przerw w sieci i dostępności.\n" +"To może być przydatne, jeśli bot dołączył do kanału lub odtwarzał muzykę 24/7.\n" +"MusicBot musi zostać uruchomiony ponownie, aby włączyć testowanie sieci.\n" +"Domyślnie jest to wyłączone." + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "Włącz zapisywanie wszystkich utworów odtwarzanych przez MusicBot w globalnym pliku playlisty: %(filename)s\n" +"Będzie to zawierać wszystkie utwory ze wszystkich serwerów." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "Włącz zapisywanie utworów odtwarzanych na serwerze do pliku playlisty: %(basename)s[ID serwera]%(ext)s" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "Włącz odtwarzanie lokalnych plików multimedialnych przy użyciu polecenia odtwarzania.\n" +"Gdy włączone, użytkownicy mogą użyć: `play file://path/to/file. xt`\n" +"do odtwarzania plików z lokalnej ścieżki MediaFileDirectory" + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "Pozwól MusicBot na automatyczne odparowanie po użyciu poleceń odtwarzania." + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "Eksperymentalne, ustawienia HTTP/HTTPS proxy do pobierania multimediów ytdlp.\n" +"Zestaw wartości tutaj jest przekazywany do sprawdzania nagłówków `ytdlp --proxy` i aiohttp.\n" +"Pozostaw puste, aby wyłączyć." + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "Opcja eksperymentalna, aby ustawić statyczny nagłówek User-Agent w yt-dlp.\n" +"Zwykle nie jest zalecana przez yt-dlp do zmiany ciągu UA.\n" +"Dla przykładów tego, co możesz tu podać, sprawdź następujące dwa linki:\n" +" https://developer. ozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Pozostaw puste, aby używać domyślnych, dynamicznie generowanych ciągów UA." + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "Opcja eksperymentalna, aby umożliwić yt-dlp korzystanie z konta YouTube przez OAuth2.\n" +"Gdy włączone, musisz użyć wygenerowanego adresu URL i kodu, aby autoryzować konto.\n" +"Token autoryzacji jest następnie przechowywany w pliku `%(oauthfile)s`.\n" +"Ta opcja nie powinna być używana, gdy ciasteczka są włączone.\n" +"Korzystanie z konta osobistego może nie być zalecane.\n" +"Ustaw tak, aby włączyć lub nie, aby wyłączyć." + +#: musicbot/config.py:920 +msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "Opcjonalny adres URL wideo YouTube używany na starcie do wyzwalania autoryzacji OAuth2.\n" +"Rozpoczyna to szybkość OAuth2, zamiast czekać na żądanie utworu.\n" +"Adres URL ustawiony tutaj powinien być dostępnym adresem URL wideo YouTube.\n" +"Autoryzacja musi zostać zakończona przed uruchomieniem systemu, gdy jest ustawiona." + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "Przełącz funkcję listy bloków użytkowników bez opróżniania listy bloków." + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "Opcjonalna ścieżka pliku do pliku tekstowego zawierającego ID użytkownika Discorda, po jednym na wiersz." + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "Włącz funkcję listy bloków utworów, bez opróżniania listy bloków." + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "Opcjonalna ścieżka pliku do pliku tekstowego, który zawiera adresy URL, słowa lub frazy jeden w linii.\n" +"Wszelkie tytuły piosenki lub adresy URL zawierające dowolną linię na liście zostaną zablokowane." + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "Opcjonalna ścieżka do katalogu zawierającego pliki automatycznej playlisty.\n" +"Każdy plik powinien zawierać listę adresów lub terminów odtwarzania, po jednym utworze na linię." + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "Opcjonalna ścieżka katalogu do przechowywania plików multimedialnych do odtworzenia.\n" +"Wszystkie pliki i podkatalogi mogą być następnie dostępne za pomocą 'file://' jako protokołu.\n" +"Przykład: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "Opcjonalna ścieżka katalogu, w której MusicBot będzie przechowywać długą i krótkoterminową pamięć podręczną do odtwarzania." + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "Skonfiguruj automatyczną rotację plików dziennika przy ponownym uruchomieniu i ogranicz liczbę przechowywanych plików.\n" +"Gdy wyłączone, zachowany jest tylko jeden log, a jego zawartość wymieniana jest po każdym uruchomieniu.\n" +"Ustaw na 0 aby wyłączyć. Maksymalna dozwolona liczba to %(max)s." + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "Skonfiguruj format daty pliku dziennika używany gdy LogsMaxKept jest włączony.\n" +"Jeśli pozostawisz puste, ostrzeżenie jest rejestrowane i zamiast tego zostanie użyte domyślne.\n" +"Dowiedz się więcej o kodach formatów czasu z tabel i danych tutaj:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "Potencjalnie zmniejsza użycie procesora, ale wyłącza regulację głośności i prędkości.\n" +"Ta opcja również wyłączy opcję \"UseExperimentalEqualization\"." + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Błąd podczas odczytywania konfiguracji.\n\n" +"Problem:\n" +" Brakuje jednej lub więcej sekcji opcji konfiguracji.\n" +" Brakujące sekcje to:\n" +" %(sections)s\n\n" +"Rozwiązanie:\n" +" Napraw plik opcji konfiguracyjnych.\n" +" Każdy [Section] musi pojawiać się tylko raz, bez żadnego innego tekstu w tej samej linijce.\n" +" Każda sekcja musi mieć co najmniej jedną opcję.\n" +" Użyj opcji przykładowych jako szablonu lub skopiuj je z repozytorium." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" +"Problem:\n" +" Opcja konfiguracji AudioCachePath nie jest katalogiem.\n\n" +"Rozwiązanie:\n" +" Upewnij się, że ścieżka, którą skonfigurowałeś jest ścieżką do folderu / katalogu." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" +"Problem:\n" +" Opcja konfiguracji AudioCachePath nie mogła zostać ustawiona z powodu błędu:\n" +" %(raw_error)s\n\n" +"Rozwiązanie:\n" +" Sprawdź, czy ustawienia są poprawne, dostępna ścieżka katalogu." + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Błąd podczas odczytywania opcji konfiguracji.\n\n" +"Problem:\n" +" Nie określono tokenu bota w opcjach konfiguracji lub środowisku.\n\n" +"Rozwiązanie:\n" +" Ustaw opcję konfiguracji tokenu lub ustaw zmienną środowiskową %(env_var)s z tokenem aplikacji." + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Błąd podczas pobierania \"ID właściciela\".\n\n" +"Problem:\n" +" Informacje o aplikacji Discord nie są dostępne.\n" +" To może być tymczasowy brak API lub błąd.\n\n" +"Rozwiązanie:\n" +" ręcznie ustaw opcję 'WłaścicielID' lub spróbuj ponownie później." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" +"Problem:\n" +" Konfiguracja 'WłaścicielID' jest taka sama jak Twój bot / ID aplikacji.\n\n" +"Rozwiązanie:\n" +" Nie używaj Bot ani App ID w polu 'OwnerID'." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Błąd lokalizacji konfiguracji.\n\n" +"Problem:\n" +" Nie można znaleźć ani utworzyć pliku konfiguracyjnego z powodu błędu:\n" +" %(raw_error)s\n\n" +"Rozwiązanie:\n" +" Zweryfikuj folder konfiguracyjny i pliki istnieją i mogą być odczytane przez MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Błąd ładowania konfiguracji.\n\n" +"Problem:\n" +" MusicBot nie mógł odczytać pliku konfiguracyjnego z powodu błędu:\n" +" %(raw_error)s\n\n" +"Rozwiązanie:\n" +" Upewnij się, że plik jest dostępny i nie ma błędu.\n" +" Skopiuj przykładowy plik z repozytorium, jeśli wszystko inne nie powiedzie się." + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Błąd ładowania wartości konfiguracji.\n\n" +"Problem:\n" +" Identyfikator właściciela w [%(section)s] > %(option)s jest nieprawidłowy.\n\n" +"Rozwiązanie:\n" +" Ustaw %(option)s na numeryczny identyfikator lub ustaw go na `auto` lub `0` dla automatycznego powiązania właściciela." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Błąd ładowania wartości konfiguracji.\n\n" +"Problem:\n" +" Opcja konfiguracji [%(section)s] > %(option)s nie jest prawidłową lokalizacją pliku.\n\n" +"Rozwiązanie:\n" +" Sprawdź ustawienia ścieżki i upewnij się, że plik istnieje i jest dostępny dla MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Błąd ładowania wartości konfiguracji.\n\n" +"Problem:\n" +" Jeden z ID w opcji [%(section)s] > %(option)s jest nieprawidłowy.\n\n" +"Rozwiązanie:\n" +" Upewnij się, że wszystkie ID są liczbowe i oddzielone tylko spacjami lub przecinkami." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD wydaje się, że nie ma nagłówków..." + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "Wyciąg informacji o utworze nie zwrócił żadnych danych." + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Nie można kontynuować ekstrakcji, pętla zdarzeń jest zamknięta." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "Adres URL Spotify jest nieprawidłowy lub nie jest obsługiwany." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Błąd w yt-dlp podczas pobierania danych: %(raw_error)s" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Nie można strumieniować nieprawidłowego URL." + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "Nie znaleziono lokalnego pliku multimedialnego." + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Nie można pobrać linków Spotify, przetwarzanie błędu z typu: %(type)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Pobieranie nie zostało zakończone z powodu błędu: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Pobieranie nie powiodło się z powodu błędu yt-dlp: %(raw_error)s" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Pobieranie nie powiodło się z powodu nieobsługiwanego wyjątku: %(raw_error)s" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Nie udało się wyodrębnić danych dla żądanych mediów." + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "Lista nazw poleceń dozwolonych do użycia, oddzielonych spacjami.\n" +"Dostęp do pod-polecenia może być kontrolowany przez dodanie _ i nazwy pod-polecenia.\n" +"To jest `config_set` udziela podpolecenia `set` komendy konfiguracyjnej.\n" +"Ta opcja nadpisuje polecenie jeśli jest ustawiona.\n" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "Lista nazw poleceń odrzuconych w użyciu, oddzielonych spacjami.\n" +"Nie zadziała, jeśli ustawiona jest lista poleceń!" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "Gdy włączone, polecenia Blacklist i CommandWhitelist są używane razem.\n" +"Dozwolone są tylko polecenia na białej liście, jednak podzlecenia mogą być odrzucane przez czarną listę.\n" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "Lista nazw poleceń, które mogą być używane tylko w tym samym kanale głosowym co MusicBot.\n" +"Niektóre polecenia będą zawsze wymagały od użytkownika głosowania, niezależnie od tej listy.\n" +"Nazwy poleceń powinny być oddzielone spacjami." + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "Lista identyfikatorów roli serwera Discord, którym przyznano tę grupę uprawnień.\n" +"Ta opcja jest ignorowana, jeśli lista użytkowników jest ustawiona." + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "Lista ID członków Discorda, którym przyznano uprawnienia w tej grupie.\n" +"Ta opcja zastępuje GrantToRoles." + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "Maksymalna liczba utworów, które użytkownik może dodać do kolejki.\n" +"Wartość 0 oznacza nieograniczona." + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "Maksymalna długość piosenki w sekundach. Wartość 0 oznacza nieograniczony.\n" +"To uprawnienie nie może być wymuszone, jeśli czas trwania utworu nie jest dostępny." + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "Maksymalna liczba utworów, które mogą mieć playlistę kiedy jest w kolejce.\n" +"Wartość 0 oznacza nieograniczony." + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "Maksymalna liczba elementów, które mogą zostać zwrócone podczas wyszukiwania." + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "Zezwalaj użytkownikom na kolejkowanie list odtwarzania lub wielu piosenek na raz." + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "Zezwalaj użytkownikom na pomijanie bez głosowania, jeśli opcja konfiguracji LegacySkip jest włączona." + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "Pozwala użytkownikowi na pominięcie piosenki w pętli." + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "Pozwala użytkownikowi usunąć dowolną piosenkę z kolejki.\n" +"nie usuwa ani nie pomija aktualnie odtwarzanych piosenek." + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "Pomiń piosenki dodane przez użytkowników, którzy nie są w głosowaniu, gdy ich utwór jest odtwarzany." + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "Pozwala użytkownikowi dodawać piosenki do kolejki, gdy tryb Karaoke jest włączony." + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "Automatyczne przywoływanie kanału głosowego użytkownika podczas używania poleceń odtwarzania, jeśli bot nie ma już głosu.\n" +"Polecenie przywołania musi być nadal dozwolone dla tej grupy!" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "Określ nazwy ekstraktora yt-dlp, oddzielone spacjami, które mogą być używane.\n" +"Jeśli puste, domyślnie kodowane są domyślne. Domyślne ustawienia są wyświetlane powyżej, ale mogą zmieniać się między wersjami.\n" +"Aby zezwolić na wszystkie ekstraktory, dodaj `%(allow_all)s` bez cytatów do listy.\n\n" +"Usługi/extractors obsługiwane przez yt-dlp są wymienione tutaj:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites. d \n\n" +"MusicBot zapewnia również niestandardową usługę `spotify:musicbot` aby włączyć lub wyłączyć ekstrakcję Spotify API.\n" +"NOTICE: MusicBot może nie obsługiwać wszystkich usług dostępnych dla yt-dlp!\n" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "Nie masz uprawnień do odtworzenia żądanych mediów.\n" +"Ekspaktor yt-dlp `%(extractor)s` nie jest dozwolony w twojej grupie." + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Nie można wyodrębnić informacji" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "To jest playlista." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Nieprawidłowy typ treści `%(type)s` dla URL: %(url)s" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "brak danych czasu trwania" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "brak danych czasu trwania w bieżącym wpisie" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Nieprawidłowy track_data, musi być typu `track` got `%(type)s`" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Status odpowiedzi nie jest OK: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "Odpowiedź JSON nie zdekodowała na dykt!" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Nie można utworzyć GET do URL: %(url)s Powód: %(raw_error)s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Nie można utworzyć POST na adres URL: %(url)s Powód: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Nie udało się uzyskać tokenu gościa ze Spotify, spróbuj określić identyfikator klienta i sekret klienta" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "Odpowiedź API nie zawiera oczekiwanych danych. Brakuje klucza: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "Odpowiedź API zawiera nieoczekiwane dane.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Żądany token ze Spotify nie został pobrany" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "Status odpowiedzi API nie jest OK: [%(status)s] %(reason)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Tylko właściciel może użyć tego polecenia." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Tylko deweloperzy mogą używać tej komendy." + diff --git a/i18n/pygettext.py b/i18n/pygettext.py new file mode 100644 index 000000000..6215f29e2 --- /dev/null +++ b/i18n/pygettext.py @@ -0,0 +1,853 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- +# Originally written by Barry Warsaw +# +# Minimally patched to make it even more xgettext compatible +# by Peter Funk +# +# 2002-11-22 Jürgen Hermann +# Added checks that _() only contains string literals, and +# command line args are resolved to module lists, i.e. you +# can now pass a filename, a module or package name, or a +# directory (including globbing chars, important for Win32). +# Made docstring fit in 80 chars wide displays using pydoc. +# +# 2024-11-07 Fae +# Updated header to match xgettext header. +# Added flags: --package-name, --package-version, --copyright-holder +# Added flag --add-comments for adding comments to translations. Only supports one-line comments. +# Adjusted string extraction to leave escape sequences \N, \U, and \u alone. + + +# for selftesting +try: + import fintl + + _ = fintl.gettext +except ImportError: + + def _(msg): + """Dummy function for i18n testing.""" + return msg + + +__doc__ = _( + """pygettext -- Python equivalent of xgettext(1) + +Many systems (Solaris, Linux, Gnu) provide extensive tools that ease the +internationalization of C programs. Most of these tools are independent of +the programming language and can be used from within Python programs. +Martin von Loewis' work[1] helps considerably in this regard. + +There's one problem though; xgettext is the program that scans source code +looking for message strings, but it groks only C (or C++). Python +introduces a few wrinkles, such as dual quoting characters, triple quoted +strings, and raw strings. xgettext understands none of this. + +Enter pygettext, which uses Python's standard tokenize module to scan +Python source code, generating .pot files identical to what GNU xgettext[2] +generates for C and C++ code. From there, the standard GNU tools can be +used. + +A word about marking Python strings as candidates for translation. GNU +xgettext recognizes the following keywords: gettext, dgettext, dcgettext, +and gettext_noop. But those can be a lot of text to include all over your +code. C and C++ have a trick: they use the C preprocessor. Most +internationalized C source includes a #define for gettext() to _() so that +what has to be written in the source is much less. Thus these are both +translatable strings: + + gettext("Translatable String") + _("Translatable String") + +Python of course has no preprocessor so this doesn't work so well. Thus, +pygettext searches only for _() by default, but see the -k/--keyword flag +below for how to augment this. + + [1] https://www.python.org/workshops/1997-10/proceedings/loewis.html + [2] https://www.gnu.org/software/gettext/gettext.html + +NOTE: pygettext attempts to be option and feature compatible with GNU +xgettext where ever possible. However some options are still missing or are +not fully implemented. Also, xgettext's use of command line switches with +option arguments is broken, and in these cases, pygettext just defines +additional switches. + +Usage: pygettext [options] inputfile ... + +Options: + + -a + --extract-all + Extract all strings. + + -d name + --default-domain=name + Rename the default output file from messages.pot to name.pot. + + -E + --escape + Replace non-ASCII characters with octal escape sequences. + + -D + --docstrings + Extract module, class, method, and function docstrings. These do + not need to be wrapped in _() markers, and in fact cannot be for + Python to consider them docstrings. (See also the -X option). + + -h + --help + Print this help message and exit. + + -k word + --keyword=word + Keywords to look for in addition to the default set, which are: + %(DEFAULTKEYWORDS)s + + You can have multiple -k flags on the command line. + + -K + --no-default-keywords + Disable the default set of keywords (see above). Any keywords + explicitly added with the -k/--keyword option are still recognized. + + --no-location + Do not write filename/lineno location comments. + + -n + --add-location + Write filename/lineno location comments indicating where each + extracted string is found in the source. These lines appear before + each msgid. The style of comments is controlled by the -S/--style + option. This is the default. + + -o filename + --output=filename + Rename the default output file from messages.pot to filename. If + filename is `-' then the output is sent to standard out. + + -p dir + --output-dir=dir + Output files will be placed in directory dir. + + -S stylename + --style stylename + Specify which style to use for location comments. Two styles are + supported: + + Solaris # File: filename, line: line-number + GNU #: filename:line + + The style name is case insensitive. GNU style is the default. + + -v + --verbose + Print the names of the files being processed. + + -V + --version + Print the version of pygettext and exit. + + -w columns + --width=columns + Set width of output to columns. + + -x filename + --exclude-file=filename + Specify a file that contains a list of strings that are not be + extracted from the input files. Each string to be excluded must + appear on a line by itself in the file. + + -X filename + --no-docstrings=filename + Specify a file that contains a list of files (one per line) that + should not have their docstrings extracted. This is only useful in + conjunction with the -D option above. + +If `inputfile' is -, standard input is read. +""" +) + +import ast +import getopt +import glob +import importlib.machinery +import importlib.util +import os +import re +import sys +import time +import token +import tokenize + +__version__ = "1.5" + +default_keywords = ["_"] +DEFAULTKEYWORDS = ", ".join(default_keywords) + +EMPTYSTRING = "" + + +# The normal pot-file header. msgmerge and Emacs's po-mode work better if it's +# there. +pot_header = _( + """\ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the %(package_name)s package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: %(package_name)s %(package_version)s\\n" +"Report-Msgid-Bugs-To: \\n" +"POT-Creation-Date: %(time)s\\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n" +"Last-Translator: FULL NAME \\n" +"Language-Team: LANGUAGE \\n" +"Language: \\n" +"MIME-Version: 1.0\\n" +"Content-Type: text/plain; charset=%(charset)s\\n" +"Content-Transfer-Encoding: %(encoding)s\\n" +"X-Generated-By: pygettext.py %(version)s-mb01\\n" + +""" +) +# Matches literal escape sequences so they can be preserved. +pre_escape = re.compile(r"(? 0 and ll + 2 < lineno: + self.__comments = [] + self.__comment_open = False + self.__comment_last_line = -1 + + def __addentry(self, msg, lineno=None, isdocstring=0): + """Adds a new message entry.""" + if lineno is None: + lineno = self.__lineno + self.__lineno = -1 + if msg not in self.__options.toexclude: + entry = (self.__curfile, lineno) + self.__messages.setdefault(msg, {})[entry] = (isdocstring, self.__comments) + self.__comments = [] + + def set_filename(self, filename): + """Update file name and signal fresh module.""" + self.__curfile = filename + self.__freshmodule = 1 + + def write(self, fp): + """ + Write the message data into the POT file. + """ + options = self.__options + timestamp = time.strftime("%Y-%m-%d %H:%M%z") + encoding = fp.encoding if fp.encoding else "UTF-8" + print( + pot_header + % { + "time": timestamp, + "version": __version__, + "charset": encoding, + "package_name": options.package_name, + "package_version": options.package_version, + "copyright-holder": options.copyright_holder, + "encoding": "8bit", + }, + file=fp, + ) + # Sort the entries. First sort each particular entry's keys, then + # sort all the entries by their first item. + reverse = {} + for k, v in self.__messages.items(): + keys = sorted(v.keys()) + reverse.setdefault(tuple(keys), []).append((k, v)) + rkeys = sorted(reverse.keys()) + for rkey in rkeys: + rentries = reverse[rkey] + rentries.sort() + for k, v in rentries: + # If the entry was gleaned out of a docstring, then add a + # comment stating so. This is to aid translators who may wish + # to skip translating some unimportant docstrings. + isdocstring = any(x[0] for x in v.values()) + comments = [] + for x in v.values(): + comments += x[1] + # k is the message string, v is a dictionary-set of (filename, + # lineno) tuples. We want to sort the entries in v first by + # file name and then by line number. + v = sorted(v.keys()) + if not options.writelocations: + pass + # location comments are different b/w Solaris and GNU: + elif options.locationstyle == options.SOLARIS: + for filename, lineno in v: + d = {"filename": filename, "lineno": lineno} + print(_("# File: %(filename)s, line: %(lineno)d") % d, file=fp) + elif options.locationstyle == options.GNU: + # insert comments if any. + for c in comments: + if c: + print(f"#. {c}", file=fp) + + # fit as many locations on one line, as long as the + # resulting line length doesn't exceed 'options.width' + locline = "#:" + for filename, lineno in v: + d = {"filename": filename, "lineno": lineno} + s = _(" %(filename)s:%(lineno)d") % d + if len(locline) + len(s) <= options.width: + locline = locline + s + else: + print(locline, file=fp) + locline = "#:" + s + if len(locline) > 2: + print(locline, file=fp) + + flags = [] + if isdocstring: + flags.append("python-docstring") + if self.pyformat.search(k) is not None and not isdocstring: + flags.append("python-format") + + if flags: + print(f"#, {','.join(flags)}", file=fp) + print("msgid", normalize(k, encoding), file=fp) + print('msgstr ""\n', file=fp) + + +def main(): + """ + pygettext program entry point. + """ + global default_keywords # pylint: disable=global-statement + try: + opts, args = getopt.getopt( + sys.argv[1:], + "ad:DEhk:Kno:p:S:Vvw:x:X:", + [ + "extract-all", + "default-domain=", + "escape", + "help", + "keyword=", + "no-default-keywords", + "add-location", + "no-location", + "output=", + "output-dir=", + "style=", + "verbose", + "version", + "width=", + "exclude-file=", + "docstrings", + "no-docstrings", + "package-name=", + "package-version=", + "copyright-holder=", + "add-comments=", + ], + ) + except getopt.error as msg: + usage(1, msg) + + # for holding option values + class Options: + # constants + GNU = 1 + SOLARIS = 2 + # defaults + extractall = 0 # FIXME: currently this option has no effect at all. + escape = 0 + keywords = [] + outpath = "" + outfile = "messages.pot" + writelocations = 1 + locationstyle = GNU + verbose = 0 + width = 78 + excludefilename = "" + docstrings = 0 + nodocstrings = {} + package_name = "PACKAGE NAME" + package_version = "PACKAGE VERSION" + copyright_holder = "THE PACKAGE'S COPYRIGHT HOLDER" + comment_tags = [] + toexclude = [] + + options = Options() + locations = { + "gnu": options.GNU, + "solaris": options.SOLARIS, + } + + # parse options + for opt, arg in opts: + if opt in ("-h", "--help"): + usage(0) + elif opt in ("-a", "--extract-all"): + options.extractall = 1 + elif opt in ("-d", "--default-domain"): + options.outfile = arg + ".pot" + elif opt in ("-E", "--escape"): + options.escape = 1 + elif opt in ("-D", "--docstrings"): + options.docstrings = 1 + elif opt in ("-k", "--keyword"): + options.keywords.append(arg) + elif opt in ("-K", "--no-default-keywords"): + default_keywords = [] + elif opt in ("-n", "--add-location"): + options.writelocations = 1 + elif opt in ("--no-location",): + options.writelocations = 0 + elif opt in ("-S", "--style"): + options.locationstyle = locations.get(arg.lower()) + if options.locationstyle is None: + usage(1, _("Invalid value for --style: %s") % arg) + elif opt in ("-o", "--output"): + options.outfile = arg + elif opt in ("-p", "--output-dir"): + options.outpath = arg + elif opt in ("-v", "--verbose"): + options.verbose = 1 + elif opt in ("-V", "--version"): + print(_("pygettext.py (xgettext for Python) %s") % __version__) + sys.exit(0) + elif opt in ("-w", "--width"): + try: + options.width = int(arg) + except ValueError: + usage(1, _("--width argument must be an integer: %s") % arg) + elif opt in ("-x", "--exclude-file"): + options.excludefilename = arg + elif opt in ("-X", "--no-docstrings"): + with open(arg, encoding="UTF-8") as fp: + while 1: + line = fp.readline() + if not line: + break + options.nodocstrings[line[:-1]] = 1 + elif opt in ("--package-name"): + options.package_name = arg + elif opt in ("--package-version"): + options.package_version = arg + elif opt in ("--copyright-holder"): + options.copyright_holder = arg + elif opt in ("--add-comments"): + options.comment_tags.append(arg) + print(f"comment: '{arg}'") + + # calculate escapes + make_escapes(not options.escape) + + # calculate all keywords + options.keywords.extend(default_keywords) + + # initialize list of strings to exclude + if options.excludefilename: + try: + with open(options.excludefilename, encoding="UTF-8") as fp: + options.toexclude = fp.readlines() + except IOError: + print( + _("Can't read --exclude-file: %s") % options.excludefilename, + file=sys.stderr, + ) + sys.exit(1) + else: + options.toexclude = [] + + # resolve args to module lists + expanded = [] + for arg in args: + if arg == "-": + expanded.append(arg) + else: + expanded.extend(get_files_for_name(arg)) + args = expanded + + # slurp through all the files + eater = TokenEater(options) + for filename in args: + if filename == "-": + if options.verbose: + print(_("Reading standard input")) + fp = sys.stdin.buffer + closep = 0 + else: + if options.verbose: + print(_("Working on %s") % filename) + fp = open(filename, "rb") # pylint: disable=consider-using-with + closep = 1 + try: + eater.set_filename(filename) + try: + tokens = tokenize.tokenize(fp.readline) + for _token in tokens: + eater(*_token) + except tokenize.TokenError as e: + print( + "%s: %s, line %d, column %d" # pylint: disable=C0209 + % (e.args[0], filename, e.args[1][0], e.args[1][1]), + file=sys.stderr, + ) + finally: + if closep: + fp.close() + + # write the output + if options.outfile == "-": + fp = sys.stdout + closep = 0 + else: + if options.outpath: + options.outfile = os.path.join(options.outpath, options.outfile) + fp = open( # pylint: disable=consider-using-with + options.outfile, "w", encoding="UTF-8" + ) + closep = 1 + try: + eater.write(fp) + finally: + if closep: + fp.close() + + +if __name__ == "__main__": + main() + # some more test strings + # this one creates a warning + _( # pylint: disable=expression-not-assigned + '*** Seen unexpected token "%(token)s"' + ) % {"token": "test"} + _("more" "than" "one" "string") # pylint: disable=implicit-str-concat diff --git a/i18n/readme.md b/i18n/readme.md new file mode 100644 index 000000000..c1722fb77 --- /dev/null +++ b/i18n/readme.md @@ -0,0 +1,158 @@ +# MusicBot Translation Guide + +[![Crowdin](https://badges.crowdin.net/notmusicbot/localized.svg)](https://crowdin.com/project/notmusicbot) + +Visit [Crowdin](https://crowdin.com/project/notmusicbot/) to help MusicBot with translations or download updated translation files ahead of their inclusion in MusicBot. + +MusicBot makes use of GNU Gettext for translation of display text. +We use the typical `.po`/`.mo` file format to enable translations. +Language directories in `./i18n/` should be named using language codes which mostly conform to the [Locale-Names specification](https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/Locale-Names.html) by gettext. + +By default, MusicBot will detect and use your system language, if translations are available. +To set a specific language, MusicBot provides these launch options: + +- `--log_lang=xx` + To set log language only. +- `--msg_lang=xx` + To set discord default language only. +- `--lang=xx` + To set both log and discord language at once. + +Replace `xx` above with the locale code of your choice. Only one language code can be set using these options. +For more info on these, use the `--help` launch option. + +> **Note:** Translations can also be used to customize the output of MusicBot without editing code! + +## How MusicBot loads translations + +At start-up, MusicBot looks for language files based on a longest-match first. +For example, assume your system language is `en_GB`. +When MusicBot starts, it will scan `./i18n/en_GB/LC_MESSAGES/` for translation files with the `.mo` extension. If that fails, bot will look for a shorter version of the language code, in this case just `./i18n/en/...` instead. + +Note that the locale codes are case-sensitive, and MusicBot will look for a directory with the exact code you provide. + +> **Note:** On unix-like (Linux / Mac) systems, MusicBot makes use of the Environment Variables: `LANGUAGE`, `LC_ALL`, `LC_MESSAGES`, `LANG` in that order. +The first variable with a non-empty value is selected, and multiple languages may be specified in order of preference by separating them with a colon `:` character. + +## How to add a new Language + +Adding a new language to MusicBot is easy, and requires only a few tools. Namely, an editor for the translations and an extra python package called `polib` to compile them. We will cover both later. + +MusicBot provides some `.pot` files which contain texts extracted from the source code. You can use these to create `.po` files containing translations for the language of your choice, which are use to compile the `.mo` translation files used by MusicBot. + +Here is a step by step break down of the process: + +1. Pick a language code. For example: `es_ES` as in Spanish of Spain. +2. Create the new language directories. + With the example code, the path is: `./i18n/es_ES/LC_MESSAGES/` +3. Copy the `.pot` files to the folder above, and rename them with `.po` extensions. +4. Update the `Language:` header with the language code. +5. Translate the strings and save the `.po` files. +6. Use an editor or the `lang.py` script to create `.mo` files. +7. Test your translations by launching with `run.sh --lang=es_ES` + +### What editor to use + +You can edit translations online using our [Crowdin repository](https://crowdin.com/project/notmusicbot/) which can sync with GitHub automatically. +For an offline editor, you might try [Poedit](https://poedit.net/), which is available on most desktop OS. +Of course, the `.pot` and `.po` files are just plain text. So you can edit them with any text editor if you understand the PO file format. (Visit the Gettext manual to [understand the PO format](https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files)) + +### How to compile `.mo` files. + +To compile the `.mo` files, you generally have two options. +If you used Poedit for translations, you can also use it to compile the `.po` into a `.mo` file. + +If you edited on Crowdin and downloaded the changes or are using another editor, MusicBot provides the `lang.py` script to enable compiling on any system. +Follow these steps to compile manually: + +1. First, make sure you've downloaded the PO files into their respective language directories. +2. Make sure you have `polib` python package installed. + You can use `pip install polib` or use your system's package manager to find and install the appropriate package. +3. Run the lang tool with `python3 lang.py -c` to compile all existing PO files. + +MusicBot should now be able to use the new translations! + +--- + +## Notes for Developers + +If you've never heard of Gettext before, getting started might be a little confusing. For developers and users alike, you may find many answers to your questions about Gettext within the [GNU Gettext manual](https://www.gnu.org/software/gettext/manual/index.html) + +### Basics of Gettext: + +- Files ending with `.pot` are templates, containing all the source strings but no translations. + Plain text files that you edit to make `.po` files. +- Files ending with `.po` are fully or partially translated templates with a specific language code and meta data set. + Also plain-text, multiple speakers of the selected language may collaborate with this file. +- Files ending with `.mo` are compiled binary versions of the `.po` file, that make translation at runtime possible. + MusicBot only looks for these when loading translations. +- All changes to translations must be compiled into a `.mo` file before you can see them. +- Translations must not change/rename or add placeholders, but may remove them entirely if needed. + +### Placeholders in Strings: + +Regarding "placeholders", MusicBot sometimes needs to include variable data in output text. +To do this, we use traditional percent or modulo (`%`) formatting placeholders in Python that resembles C-style `sprintf` string formatting. +For example, the placeholders: `%(user)s` or `%s` get replaced at runtime. + +These placeholders can be removed from translated strings but must not be changed or added without complimentary source code changes. +Placeholders with no association in the source code will cause errors. + +For details on how this style of formatting works, check out the [printf-style string formatting](https://docs.python.org/3.10/library/stdtypes.html#printf-style-string-formatting) section of the python manual. + +> **Note:** Some strings also contain variables in curly-braces (`{` and `}`) These may be used for simple substitutions in user-supplied data, like the bot status message. +They are not used by Python's format functions and if changed will quietly fail to substitute. + +### Updating Source Strings + +While working on MusicBot you might want to change some text in the source or add new strings for translation. +There are some important things to remember when changing strings in source code: + +1. The string in the source code is the `msgid` in the PO files. + If the source string changes, the `msgid` is invalid and new translation is needed for each language. + +2. MusicBot has two different message domains. One for text in the logs and the other for text sent to discord. + That is `musicbot_logs` and `musicbot_messages` respectively. + +3. Certain objects or function calls will mark strings as translatable but do not immediately translate them: + + 1. All `log.*()` methods mark strings as translatable in the log domain. + Translation is deferred until output time in the logger itself. + 2. Functions `_L` and `_Ln` mark and immediately translate in the log domain. + 3. Exceptions based on `MusicbotException` provide marking in both domains, but translation in a specific domain must be explicitly called when the exception is handled. + 4. Function `_X` only marks in both domains, similar to Exceptions above. + 5. Functions `_D` and `_Dn` mark and immediately translate in the discord domain. While `_Dd` will only mark for deferred translation. + 6. The `_D` and `_Dn` functions require an optional `GuildSpecificData` to enable per-server language selection. + +4. Finally, all changes and additional strings need to be extracted before they can be translated. + Developers should make sure the POT files are up-to-date when submitting source code changes. + +### Using the `lang.py` script: + +MusicBot provides a bundled script named `lang.py` which can accomplish a number of translation related tasks. +Some options require the `polib` python package in order to be used. + +The script provides these command line flags: + +- `-h` or `--help` + Shows the help message and exits. + +- `-c` + Compile existing PO files into MO files. + This requires the `polib` python package. + +- `-e` + Extract strings into POT files. + +- `-d` + Shows new changes to POT files without updating them. + This ignores gettext location comment changes. + +- `-D` + Same as -d flat but show all changes, including comments. + +- `-t` + Create or update the 'xx' test language. + The translations are reversed source strings, used to test code changes. + This requires the `polib` python package. + diff --git a/i18n/ru_RU/LC_MESSAGES/musicbot_logs.mo b/i18n/ru_RU/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..b6afc8d2503bf9c0b178b92e4c67bc1d2aea4301 GIT binary patch literal 132784 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 QggSA_46O9EYF(%P7Zvq$Z~y=R literal 0 HcmV?d00001 diff --git a/i18n/ru_RU/LC_MESSAGES/musicbot_logs.po b/i18n/ru_RU/LC_MESSAGES/musicbot_logs.po new file mode 100644 index 000000000..3391f8b30 --- /dev/null +++ b/i18n/ru_RU/LC_MESSAGES/musicbot_logs.po @@ -0,0 +1,4004 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: 2024-11-08 18:12\n" +"Last-Translator: \n" +"Language-Team: Russian\n" +"Language: ru_RU\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" +"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: ru\n" +"X-Crowdin-File: /fae/i18n/musicbot_logs.pot\n" +"X-Crowdin-File-ID: 26\n" + +#: musicbot/aliases.py:52 +msgid "Aliases file not found, copying example_aliases.json" +msgstr "Файл псевдонимов не найден, копирование example_aliases.json" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "" + +#: musicbot/aliases.py:80 +#, python-format +msgid "Failed to load aliases file: %s" +msgstr "Не удалось загрузить файл псевдонимов: %s" + +#: musicbot/aliases.py:88 +#, python-format +msgid "Failed to parse aliases file: %s\n" +"Ensure the file contains valid JSON and restart the bot." +msgstr "Не удалось разобрать файл псевдонимов: %s\n" +"Убедитесь, что файл содержит корректный JSON и перезапустите бот." + +#: musicbot/aliases.py:114 +#, python-format +msgid "Aliases skipped for non-existent command: %(command)s -> %(aliases)s" +msgstr "Псевдонимы пропущены для несуществующей команды: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "Алиас(ы) пропущены для недопустимых данных алиаса: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "Псевдоним `%(alias)s` пропущен как уже существует в команде: %(command)s" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "Ошибка загрузки файла автоплейлиста: %s" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "Удаление невоспроизводимой песни из плейлиста, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "Удаление песни из плейлиста, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "Не удалось зарегистрировать информацию о удалении URL плейлиста." + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "Обновление файла плейлиста..." + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "Не удалось сохранить файл плейлиста: %s" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "URL-адрес уже в плейлисте %s, игнорируется" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "Добавление нового URL в плейлист, %(playlist)s: %(track)s" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "Инициализация MusicBot %s" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "Цикл закрыт, невозможно создать задачу для: %r" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "Необработанное исключение для задачи: %r" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "Необработанное исключение для задачи: %(task)r -- %(raw_error)s" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "Spotify не предоставил нам токен. Отключен." + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "Аутентификация в Spotify прошла успешно с использованием ID клиента и секрета." + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "Не удалось запустить клиент Spotify. ID вашего клиента и секретные данные? Подробности: %s. Продолжиться все равно через 5 секунд..." + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "В конфигурации нет учетных данных приложения Spotify, пытаясь использовать гостевой режим." + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "Аутентификация в Spotify прошла успешно в гостевом режиме." + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "Невозможно запустить клиент Spotify в гостевом режиме. Подробности: %s." + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "Экспериментальный Yt-dlp OAuth2 плагин включен. Это может сломать в любой точке!" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "Инициализирован, теперь подключаемся к discord." + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "Тест сетевого пинга отключён через config." + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "Тест сетевого пинга закрывается вниз." + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "Не удалось определить цель" + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "Тест сетевого пинга отменен." + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "Сетевое тестирование через HTTP не имеет сеанса для заимствования." + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "Не удалось найти исполняемый файл `ping` в вашей среде." + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot не может найти путь к команде `ping`. Вместо этого попытается использовать HTTP ping.\n" +"MusicBot выполнил следующую команду: %s\n" +"Вы должны включить ping в системе или контейнерном окружении для получения наилучшего результата.\n" +"Или отключите проверку сети через конфигурацию." + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot отказано в разрешении на выполнение команды `ping`. Вместо этого попытается использовать HTTP ping .\n" +"MusicBot выполнил следующую команду: %s\n" +"Вы должны включить ping в системе или контейнерном окружении для получения наилучшего результата.\n" +"Или отключите проверку сети через конфигурацию." + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "Ваша среда может не разрешать системную команду `ping`. Вместо этого попытается использовать HTTP ping.\n" +"MusicBot выполнил следующую команду: %s\n" +"Вы должны включить ping в системе или контейнерном окружении для получения наилучшего результата.\n" +"Или отключите проверку сети через конфигурацию." + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "Обнаруженная сеть MusicBot снова доступна." + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "VoiceClient не подключен, ожидается возобновление MusicPlayer..." + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "Возобновление воспроизведения игрока: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "MusicBot обнаружил ошибки в сети." + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "Пауза MusicPlayer из-за доступности сети: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "Ищете владельца в гильдии: %(guild)s (требуется голос: %(required)s) и получили: %(owner)s" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "Проверка каналов для автоматического подключения или возобновления доступа..." + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "Гильдия недоступна, невозможно автоматически присоединиться: %(id)s/%(name)s" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "Найден восходящий голосовой канал: %(channel)s в гильдии: %(guild)s" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "Попробует возобновить голосовую сессию вместо автоподключения к каналу: %s" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "Найден владелец в голосовом канале: %s" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "Игнорирование восходящего канала, автодайвинг владельцу в канале: %s" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "Игнорирование автоподключения канала AutoSummon для владельца канала: %s" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "Уже подключен к каналу: %(channel)s в гильдии: %(guild)s" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "Попытка присоединиться к каналу: %(channel)s в гильдии: %(guild)s" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "Отмена Музыкального Игрока и создание нового..." + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "MusicBot теперь создаст новый музыкальный плеер..." + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "Не присоединяйтесь к %(guild)s/%(channel)s, это не поддерживаемый голосовой канал." + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "Подключение к настроенным каналам завершено." + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "Участник не включен голосовым путем и не может использовать эту команду." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "Вы не можете использовать эту команду, если не в голосовом канале." + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "Получение информации о приложении бота." + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "Музыкабот не имеет разрешения на подключение в канале: %s" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "У Музыкабота нет прав подключаться в канале: `%(name)s`" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "У Музыкабота нет прав говорить в канале: %s" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "У Музыкабота нет прав говорить в канале: `%(name)s`" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "Повторное использование ботов VoiceClient от гильдии: %s" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "Принудительное отключение от устаревшего VoiceClient в гильдии: %s" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "Отключение не удалось или было отменено?" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "Музыкабот не может подключиться к каналу прямо сейчас: %(channel)s" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "У MusicBot есть VoiceClient сейчас..." + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "Повторная попытка подключения после ошибки таймаута (%(attempt)s) при попытке подключиться к %(channel)s" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "Попытка соединения с MusicBot VoiceClient отменена. Повторите попытку." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "Подключение MusicBot к голосу было отменено. Это странно. Может быть перезапустить?" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "У MusicBot нет разрешения на чтение." + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "MusicBot не может просить говорить." + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "Отключение MusicPlayer в гильдии: %s" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "Отключение VoiceClient до того, как мы убьем MusicPlayer." + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "Отключение не удалось или было отменено." + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "У MusicBot есть VoiceProtocol который не является VoiceClient." + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "Отключение неточного VoiceClient в гильдии: %s" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "Отключение VoiceClient, не являющийся гильдией..." + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "Список MusicBot.voice_clients содержит объект, отличный от VoiceClient?\n" +"На самом деле тип объекта: %s" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "У нас все еще есть отзыв MusicPlayer в гильдии (%(guild_id)s): %(player)r" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "Гильдия (%(guild)s) хочет игрока, опционально: %(player)r" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." +msgstr "[BUG] В MusicPlayer отсутствует VoiceClient, скорее всего вам следует перезапустить бота." + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "У MusicPlayer есть VoiceClient который не подключен." + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "Музыкальный проигрыватель: %r" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "VoiceClient obj: %r" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "Получение Музыкального Игрока для гильдии: %(guild)s В Канале: %(channel)s Создать: %(create)s Дестрализация: %(serial)s" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "Создан игрок посредством десериализации для гильдии %(guild_id)s с записями %(number)s" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Что-то не так, мы не получили VoiceClient." + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "Выполняется на _плеере" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "Установка истории URL гильдии %(guild_id)s == %(url)s" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "Нет миниатюры для записи с URL: %s" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "нет канала для воспроизведения сообщения" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "проигнорировал сейчас воспроизводимое сообщение, поскольку оно уже было опубликовано." + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "Выполняется на плеер_возобновление" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "Пауза" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "Выполняется по игроку_стопу" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "Выполняется на игровом автомате" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "Цикл события закрыт, здесь нет ничего другого." + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "Выход из системы, игнорирует это событие." + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "VoiceClient говорит, что он не подключен, ничего другого мы можем сделать здесь." + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "Плеер завершён и очередь пуста, покидая голосовой канал..." + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "Зацикливание над очередью для исключения песен с недостающим автором..." + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "Автор `%(user)s` отсутствует, пропущен (удален) запись из очереди: %(song)s" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "Нет воспроизводимых песен в автомате гильдии, отключается." + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "Нет содержимого в текущем автомате. Заполнение новой музыкой..." + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "Зацикливание автоматов игрока..." + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "Ошибка при обработке песни \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "Ошибка распаковки песни \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr "MusicBot должен остановить извлечение автоплейлиста и залог." + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "MusicBot получил необработанное исключение в игроке законченное событие." + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "Развертывание автоплейлиста с записями, извлеченными из: %s" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "Ошибка добавления трека из автомата: %s" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "Данные об исключении для вышеописанной ошибки:" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "Нет воспроизводимых песен в автомате, отключается." + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "Выполняется по игроку_entry_added" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "Автоматически пропускать запись в список автовоспроизведения для записи в очереди." + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "Исключение из музыкального плеера для записи: %r" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "Исключение из музыкального плеера." + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "Не удалось воспроизвести трек автоплейлиста: %r" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "Идет выход из системы, проигнорировано событие обновления статуса." + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "Статус бота: %(status)s -- %(activity)r" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "Сериализация очереди для %s" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "Десериализация очереди для %s" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "Запись текущей песни для %s" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "Не удается отправить объект без ответа: %r" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Попытка отправить некорректный объект ответа." + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "отправка вставки на: %s" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "отправка текста в: %s" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "Не удается отправить сообщение \"%s\", нет разрешения" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "Не удается отправить сообщение \"%s\", недопустимый или удаленный канал" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "Сообщение превышает предел размера сообщения (%s)" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "Не удалось отправить личное сообщение, вместо этого отправка в резервный канал." + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "Оценить ограниченное количество отправленных сообщений, повторить попытку через %s секунд." + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "Отменено сообщение повторно: %s" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "Оцените ограниченное количество отправленных сообщений, но не удается повторить попытку!" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "Не удалось отправить сообщение в запасном канале." + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "Не удалось отправить из-за ошибки HTTP." + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "Невозможно удалить сообщение \"%s\", нет разрешения" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "Невозможно удалить сообщение \"%s\", сообщение не найдено" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "Оцените ограниченное удаление сообщения, повторная попытка через %s секунд." + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "Оцените ограниченное сообщение удаления, но не могу повторить попытку!" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "Не удалось удалить сообщение" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "Получено HTTPException пытается удалить сообщение: %s" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "Невозможно изменить сообщение \"%s\", сообщение не найдено" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "Отправка сообщения" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "Оценить ограниченное сообщение редактирования, повторная попытка через %s секунд." + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "Отменено изменение сообщения для: %s" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "Не удалось изменить сообщение" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "Принято HTTPException, пытающееся редактировать сообщение %s в: %s" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "Отменено удаление сообщения (ID: %(id)s): %(content)s" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "Получен сигнал от ОС: %s" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "Отключение и включение MusicBot..." + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "Исключение выбрасывается при обработке сигнала прерывания!" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "MusicBot теперь делает шаги выключения..." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Ошибка входа в Discord API!\n\n" +"Проблема:\n" +" MusicBot не смог войти в Discord API.\n" +" Ваш токен может быть неправильным или может возникнуть ошибка API.\n\n" +"Решение:\n" +" Убедитесь, что в конфигурации установлен правильный токен.\n" +" Проверка статуса API на официальном сайте: discordstatus.com" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "Ожидание окончания потоков загрузки..." + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "Подождите задачи: %(name)s (%(func)s)" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "Попробует отменить задачу: %(name)s (%(func)s)" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "Ожидается ожидание задач..." + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "Закрытие HTTP-коннектора." + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "Завершение сеанса aiohttp." + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "Выход был вызван." + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "Исключение в %(event)s:\n" +"%(error)s" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "Исключение в %s" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "Музыкальный робот возобновил сессию с дискордом." + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "Завершить _готовое" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "Вход выполнен, теперь MusicBot готов..." + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "Клиент как-то нет, мы должны забрать гвозд..." + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "Музыкабот: %(id)s/%(name)s#%(desc)s" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "Владелец: %(id)s/%(name)s#%(desc)s\n" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "Список гильдий:" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr " - %s" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "Лев. %s из-за того, что владелец бота не найден" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "Не выполняется проверка на серверах %s из-за недоступности" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "Владелец не найден ни в одной гильдии (id: %s)\n" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "Владелец неизвестен, бот не на гильдиях." + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "Чтобы сделать бота присоединится к гильдии, вставьте эту ссылку в браузер. \n" +"Примечание: Вы должны войти в свою главную учетную запись и иметь \n" +"управлять разрешениями сервера в гильдии, которую вы хотите, чтобы бот присоединился.\n" +" %s" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "Нет привязки канала с ID: %d" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "Не удается привязать к каналу без сообщения с ID: %d" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "Привязано к текстовым каналам:" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr " - %(guild)s/%(channel)s" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "Нет привязки к текстовым каналам" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "Нет для автоподключения к каналу с ID: %d" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "Невозможно автоматически присоединиться к частному каналу негильдии с ID: %d" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "Невозможно автоматически подключиться к каналу без подключения с ID: %d" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr "Автоподсоединение к голосовым каналам:" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "Не подключаться к голосовым каналам" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "Получение информации о приложении." + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "Обеспечение наличия папок данных существует" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "Проверка конфигурации" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "Проверка конфигурации прав доступа" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "Отключено" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "Включено" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "Параметры:" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr " Префикс команды: %s" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr " По умолчанию: %d%%" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr " Пропустить порог: %(num)d голосов или %(percent).0f%%" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr " Играет в @mentions: %s" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr " Автовызов: %s" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr " Автоплейлист: %(status)s (заказ: %(order)s)" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "случайный" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "последовательный" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr " Автопауза: %s" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr " Удалить сообщения: %s" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr " Удалить вызов: %s" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr " Удалить сейчас Играет: %s" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr " Режим отладки: %s" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr " Загруженные песни будут %s" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr " Удалить если не использовано для %d дней" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr " Удалять, если размер превышает %s" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr " Сообщение статуса: %s" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr " Записать текущие песни в файл: %s" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr " Автор Insta-skip: %s" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr " Embeds: %s" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr " Интеграция Spotify: %s" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr " Пропуск старого: %s" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr " Оставить невладельцев: %s" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr " Оставить неактивный VC: %s" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr " Таймаут: %s секунд" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr " Оставить на конец и пустую очередь: %s" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr " Оставь, когда игрок фармит: %s" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr " Таймаут: %d секунд" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr " Самоглушено: %s" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr " Префикс команды на сервер: %s" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr " Список поиска: %s" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr " Очередь грабинов: %s" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "Запрошенная песня `%(subject)s` заблокирована списком блоков песен." + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "Пытался работать с 'Голосовым каналом', но бот не в голосе..." + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "Активность канала уже ожидается в гильдии: %s" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Действия канала ожидают %(time)d секунд, чтобы покинуть канал: %(channel)s" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "Таймер активности канала для %s истек. Отсоединение." + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Таймер активности канала отменен для: %(channel)s в %(guild)s" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "Игнорирование бездействия игрока в автоподключенном канале: %s" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "Таймер активности игрока уже ждет гильдии: %s" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Таймер активности игрока, ожидающий %(time)d секунд, чтобы покинуть канал: %(channel)s" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "Таймер активности игрока %s истек. Отсоединение." + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Таймер активности игрока отменен для: %(channel)s в %(guild)s" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "Таймер активности игрока восстанавливается." + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "Нет такой команды" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "Вы должны указать пользователя или указать его идентификационный номер." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Неверная субкоманда. Для примеров использования используйте `help blockuser`." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot не может найти указанного пользователя." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "Владелец не может быть добавлен в заблокированный список." + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "Не добавляет пользователя в чёрный список, уже заблокирован: %(id)s/%(name)s" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "Не удаляется пользователь из черного списка, не в списке: %(id)s/%(name)s" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "Не удается добавить пользователей, которые вы указали, они уже добавлены." + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Вы должны предоставить тему песни, если песня в настоящее время не воспроизводится." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Неверная субкоманда. Используйте `help blocksong` для примеров использования." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "Тема `%(subject)s` уже находится в списке блоков песен." + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "Тема отсутствует в списке блоков песни и не может быть удалена." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Неверная субкоманда. Используйте `help autoplaylist` для примеров использования." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "Недействительная ссылка на песню" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "Очередь пуста. Добавьте несколько песен с помощью команды воспроизведения!" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Эта песня уже есть в автомате." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Эта песня еще не находится в автомате." + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "Вы должны указать имя файла плейлиста." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "Вам не разрешено запрашивать плейлисты" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "Плейлист имеет слишком много записей (%(songs)s , но максимум %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "Игнорирование автопаузы из-за отключения сети." + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "У MusicPlayer нет VoiceClient или нет данных о каналах, не может работать с автопаузами." + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "Уже обрабатывается автопауза, игнорируется это событие." + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "%sVoiceClient не подключен, ожидание %s секунд для обработки автопаузы в гильдии: %s" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "Ожидание автопаузы было отменено." + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "Подключается новый музыкальный плеер, игнорируя старое событие автопаузы." + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "Проигрывание в пустом голосовом канале, запуск автопаузы для гильдии: %s" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "Ранее автопауза игрока не приостанавливается для гильдии: %s" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "Невозможно использовать поиск, если нет проигрывания." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "Невозможно использовать поиск по текущему треку, он имеет неизвестную длительность." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "Поиск не поддерживается для потоков." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "Невозможно использовать переключение без времени для размещения воспроизведения." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "Не удалось преобразовать `%(input)s` в допустимое время в секундах." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "Не удается переключиться в `%(input)s` (`%(seconds)s` секунд) в текущем треке длиной `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Неверная субкоманда. Используйте команду `help repeat` для примеров использования." + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "Игрок в данный момент не зацикливается." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Позиции песни должны быть целыми!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "Вы поставили позицию за пределами плейлиста!" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "Не удалось запросить воспроизведение плейлиста, нет сообщений для добавления реакций." + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "Воспроизведение локального медиа не включено." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "URL-адрес Spotify недействителен или в настоящее время не поддерживается." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Обнаружен URL-адрес Spotify, но Spotify не включен." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Вы достигли лимита на добавленные песни (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "Караоке-режим включен, попробуйте еще раз, когда он отключен!" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "Проблема с extract_info(): " + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Не удалось извлечь информацию из-за ошибки:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Это видео не может быть воспроизведено. Попробуйте использовать команду трансляции." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "Поиск YouTube не дал результатов по запросу: %(url)s" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "Обработано %(number)d из %(total)d песен в %(time).3f секунд на %(time_per).2f / песню" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "Не было добавлено треков, все песни были больше длительности (%(max)s секунд)" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "Извлечь запись с помощью клавиши 'youtube:playlist'" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "Длительность песни превышает предел (%(length)s > %(max)s)" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "Добавлена песня(и) на позиции %s" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "Не удается оценить время до игры за позицию: %d" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "Не удалось получить информацию из запроса потока: %s" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Потоковые плейлисты еще не поддерживаются." + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Вы достигли предела в плейлисте (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Пожалуйста, укажите поисковый запрос. Используйте `help search` для получения дополнительной информации." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "Вы не можете искать более чем %(max)s видео" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "Ожидание вызова: %s" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "Призвать замок для: %s" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "Вы не подключены к голосу. Попробуйте подключиться к голосовому каналу!" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "Присоединение к %(guild)s/%(channel)s" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot не может следить за пользователем, не являющимся членом сервера." + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Плеер не играет." + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Нечего удалять в очереди!" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "В очереди у пользователя `%(user)s ничего не найдено" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "У вас недостаточно прав для удаления этой записи из очереди.\n" +"Вы должны быть тот, кто поставил его в очередь или имеет мгновенные пропуска." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Неверный номер записи. Используйте команду очереди для поиска позиций." + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Нельзя пропустить! Игрок не играет!" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "У вас недостаточно прав для принудительного пропуска циклической песни." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "У вас нет разрешения на принудительный пропуск." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "У вас нет разрешения на пропуск зацикливаемой песни." + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` не является допустимым числом" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Неприемлемое изменение объема предусматривается: %(old_volume)s%(adjustment)s является %(new_volume)s.\n" +"Том может быть установлен только от 1 до 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Неприемлемый объём: %(volume)s. Предоставьте значение от 1 до 100." + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "Скорость не может быть применена к потоковым носителям." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Вы должны предоставить скорость для установки." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "Предоставленная вами скорость является недопустимой. Используйте число в диапазоне от 0.5 до 100." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Недопустимый параметр для команды: `%(option)s`" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Не удалось сохранить псевдонимы из-за ошибки:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Вы должны указать псевдоним и команду для псевдонима" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Вы должны указать имя псевдонима для удаления." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "Псевдоним `%(alias)s` не существует." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "Конфигурация не может использовать канал и упоминания пользователя одновременно." + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Не удалось перезагрузить конфигурацию из-за следующей ошибки:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Не удалось определить название секции с названием опции. Пожалуйста, укажите корректный раздел и название опции." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "Указанная опция является неоднозначной, укажите название раздела." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Вы должны указать название раздела и название параметра для этой команды." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "Раздел `%(section)s` недоступен.\n" +"Доступные разделы: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "Опция `%(option)s` недоступна." + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "Параметр `%(option)s` не редактируется. Невозможно сохранить на диск." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Не удалось сохранить опцию: `%(option)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "Параметр `%(option)s` не может быть отредактирован, значение не отображается." + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "Параметр `%(option)s` не редактируется. Не удается обновить параметр." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Вы должны указать раздел, параметр и значение для этой подкоманды." + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "Выполнение установлено с помощью %(config)s == %(value)s" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "Опция `%(option)s` не была обновлена!" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "Параметр `%(option)s` не является редактируемым. Невозможно сбросить к значению по умолчанию." + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "Сброс %(config)s на стандартный %(value)s" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "Параметр `%(option)s` не был сброшен до значения по умолчанию!" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "Команда опции является устаревшим, используйте команду config." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Указан неверный параметр, используйте информацию: info, update, or clear" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Не удалось** удалить кэш, проверьте журналы для получения дополнительной информации..." + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "Аргумент очереди страницы должен быть целым числом." + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "Нет песен в очереди! Очередь что-то с помощью команды воспроизведения." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "Текущий элемент плейлиста пропущен." + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "Недостаточно записей для создания нужной очереди." + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "Не удалось отправить сообщение в очередь. Нет сообщений для добавления реакций." + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Нельзя использовать очистку в приватном ЛС канале." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "Указанный URL не является допустимым URL." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Не удалось извлечь информацию из входного url\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "Похоже, что это не плейлист." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "Неверный ID пользователя или имя сервера, проверьте ID и повторите попытку." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Не удалось определить пользователя discord. Попробуйте еще раз." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Права доступа не могут использовать каналы и упоминания пользователей одновременно." + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Не удается перезагрузить разрешения из-за ошибки:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Вы должны указать название группы или опции для этой команды." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Вы должны указать группу, опцию и значение для этой команды." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "Субкоманда %(option)s требует имя группы и прав доступа." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "Группа `%(group)s` недоступна.\n" +"Доступные группы: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "Разрешение `%(option)s` недоступно." + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Невозможно добавить группу `%(group)s`, она уже существует." + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Невозможно удалить встроенную группу." + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "Группа владельцев не редактируется." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Не удалось сохранить группу: `%(group)s`" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "Выполнение установлено на %(option)s со значением: %(value)s" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Разрешение `%(option)s` не было обновлено!" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Не удалось изменить имя пользователя. Вы изменили имена слишком много раз?\n" +"Запомнить, что изменения имени ограничены дважды в час.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Не удалось изменить имя пользователя из-за ошибки: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Невозможно изменить никнейм: нет разрешения." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Не удалось задать псевдоним из-за ошибки: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Пользовательские эмодзи должны быть с этого сервера, чтобы использовать в качестве префикса." + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Префикс на сервер не включен!\n" +"Используйте команду конфигурации для обновления префикса." + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "Вы должны указать URL или прикрепить файл." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Невозможно изменить аватар из-за ошибки: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "MusicBot обнаружил %s без гильдии! Это может быть проблемой." + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Сейчас не подключен к серверу`%(guild)s`" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Недопустимый параметр, используйте один из: мягкий, полный, обновление, uppip, или upgit" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Вы должны указать ID или имя." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "Не найдено ни одной гильдии с ID или именем `%(input)s`" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "Активация точки останова ID: %(uuid)s" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Не удалось импортировать `objgraph`, он установлен?" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "Код отладки запускался с помощью eval()." + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "Код отладки запускался с exec()." + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "Не удалось выполнить код отладки." + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Не удалось выполнить отладочный код:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "Подкоманда должна быть одной из %(options)s" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Не удалось найти исполняемый файл git." + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "Не удалось проверить наличие обновлений по команде git." + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "Пакет отсутствует в отчете pip." + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "Не удалось получить статус обновления pip из-за некоторой ошибки." + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "Получена запись о странном голосовом клиенте." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookies уже включены." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Cookies должны быть загружены для включения. (issing cookies файл.)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Не удалось включить куки из-за ошибки: %(raw_error)s" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Не удалось переименовать файл cookies из-за ошибки: %(raw_error)s\n" +"Cookies временно отключены и будут повторно включены при следующем перезапуске." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "Не найдено приложенных загрузок, попробуйте еще раз при загрузке файла cookie." + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "Не удалось удалить старый, отключен файл cookie: %(raw_error)s" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Ошибка при загрузке файла cookie с дискода: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Не удалось сохранить куки на диске: %(raw_error)s" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "Получено сообщение без канала, как-то %s" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "Игнорирование команды от себя (%s)" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "Игнорирование команды от другого бота (%s)" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "Игнорирование команды из канала типа: %s" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "Пользователь в блочном списке: %(id)s/%(name)s попробовала команду: %(command)s" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "Сообщение от %(id)s/%(name)s: %(message)s" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Эта команда не разрешена для вашей группы прав: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Эта команда требует, чтобы вы были в голосовом канале." + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "Неверное использование команды, отсутствуют значения для параметров: %(params)r" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "Ошибка в %(command)s: %(err_name)s: %(err_text)s" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "Исключение при обработке команды: %(command)s" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "Невозможно сгенерировать справку для отсутствующей команды: %s" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "Отсутствуют вспомогательные данные для команды: %s" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "Выход голосового канала %s в %s из-за отсутствия активности." + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "Музыкабот подключен." + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "Музыкабот был разорван." + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "Получено событие сокета: %s" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "VoiceState обновляется до окончания on_ready" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "Игнорирование %s в %s , как это связанный голосовой канал." + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "%s был обнаружен как пустой. Тайм-аут обработки." + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "Пользователь присоединился к %s, время отмены таймера." + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "Бот перемещен, голосовой канал %s пуст. Тайм-аут обработки." + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "Бот был перемещен и голосовой канал %s не пуст." + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "Больше не следует за пользователем %s" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "Следовать за пользователем `%(user)s` на канал: %(channel)s" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "VoiceState отключает before.channel не подключен." + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "Отключено от голоса Discord API в: %(guild)s/%(channel)s (Код: %(code)s) [S:%(state)s]" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "Невозможно использовать автовход с типом канала: %(type)s в гильдии: %(guild)s" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "Не удается найти канал автоподключения, он был удален? Гильдия: %s" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "Повторное подключение к автоматически подключенной гильдии на канале: %s" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "Невозможно автоматически присоединиться к каналу: %s" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "Бот был добавлен в гильдию: %s" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "Левая гильдия '%s' из-за не найден владелец бота." + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "Создание папки данных для гильдии %s" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "Бот был удален из гильдии: %s" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "Обновленный список гильдий:" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "Гильдия \"%s\" стала доступна." + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "Возобновление доступа игрока в \"%s\" из-за доступности." + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "Гильдия \"%s\" недоступна." + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "Пауза игрока в \"%s\" из-за недоступности." + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "Обновление гильдии для: %s" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "Атрибут гильдии %(attr)s сейчас: %(new)s -- Was: %(old)s" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "Обновление канала для: %(channel)s -- %(changes)s" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "Создание %s" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "Загрузка конфигурации из: %s" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "Невозможно хранить больше файлов журнала %s . Опция LogsMaxKept будет ограничена." + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "Параметр LogsDateFormat пуст и это нарушит поворот файла журнала. Вместо него будет использоваться значение по умолчанию." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "Исключение было вызвано при проверке AudioCachePath." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Ошибка при проверке параметров конфигурации.\n\n" +"Проблема:\n" +" Опция конфигурации AudioCachePath не может быть установлена из-за ошибки:\n" +" %(raw_error)s\n\n" +"Решение:\n" +" Двойная проверка правильности, доступный путь к каталогу." + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "Кэш аудио будет храниться в: %s" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "Опция StatusMessage слишком длинная, она будет ограничена 128 символов." + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "Скорость воспроизведения по умолчанию должна быть между 0.5 и 100.0. Вместо этого значение параметра %.3f будет ограничено." + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "Проверка параметров с данными сервиса..." + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "Приобретенный ID владельца через API" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "" + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "У MusicBot нет экземпляра пользователя, невозможно продолжить." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "" + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "Файл параметров конфигурации не найден. Проверка альтернативы..." + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "Переименование %(ini_file)s на %(option_file)s, скорее всего, вам следует включить расширения." + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "Копирование существующего файла параметров примера: %(example_file)s" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "Сгенерировал новый %(example_file)s и скопировал его в %(option_file)s" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "Что-то пошло не так при попытке найти файл конфигурации." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Ошибка поиска конфигурации.\n\n" +"Проблема:\n" +" Не удалось найти или создать файл конфигурации из-за ошибки:\n" +" %(raw_error)s\n\n" +"Решение:\n" +" Проверьте папку конфигурации и файлы существуют и могут быть прочитаны MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Ошибка загрузки конфигурации.\n\n" +"Проблема:\n" +" MusicBot не смог прочитать конфигурационный файл из-за ошибки:\n" +" %(raw_error)s\n\n" +"Решение:\n" +" Убедитесь, что файл доступен и ошибки бесплатны.\n" +" Скопируйте файл примера из репозитория, если все остальное не удалось." + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "Dev Bug! Параметр конфигурации имеет getter, который не доступен." + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "Dev Bug! Параметр конфигурации имеет недопустимый тип, getter и по умолчанию должен быть одинаковым." + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "Ранее отсутствовал вариант." + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "Раздел конфигурации не в анализируемой конфигурации! Отсутствует: %s" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "Сохраненная конфигурация: %(config)s = %(value)s" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "Не удалось сохранить конфигурацию: %s" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "Имена опций не уникальны между INI-разделами! Резольвер отключен." + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "Не удалось сохранить INI-файл по умолчанию в: %s" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Ошибка загрузки значения конфигурации.\n\n" +"Проблема:\n" +" ID владельца в [%(section)s] > %(option)s недопустим.\n\n" +"Решение:\n" +" Установите %(option)s на числовой ID или установите его в `auto` или `0` для автоматической привязки владельца." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Ошибка загрузки значения конфигурации.\n\n" +"Проблема:\n" +" Параметр конфигурации [%(section)s] > %(option)s не является допустимым местоположением файла.\n\n" +"Решение:\n" +" Проверьте настройки пути и убедитесь, что файл существует и доступен для MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Ошибка загрузки значения конфигурации.\n\n" +"Проблема:\n" +" Один из идентификаторов в опции [%(section)s] > %(option)s является недопустимым.\n\n" +"Решение:\n" +" Убедитесь, что все ID числовые и разделены только пробелами или запятыми." + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "Недопустимый параметр уровня отладки \"%(value)s\" указан, падающий обратно на уровень: %(fallback)s" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "Опция [%(section)s] > %(option)s имеет неверное значение конфигурации '%(value)s' вместо значения по умолчанию." + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "Вариант [%(section)s] > %(option)s имеет значение больше 100 %% (%(value)s) и вместо него будет установлен %(fallback)s." + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "Переименование INI-файла [%(old_s)s] > %(old_o)s на [%(new_s)s] > %(new_o)s" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "Обновление конфигурационного файла с переименованными опциями..." + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "Не удалось обновить конфигурацию. Вам нужно обновить ее вручную." + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "Файл блока списка не найден: %s" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "Не удалось загрузить список блокировок из файла: %s" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "Не удалось обновить файл списка блоков: %s" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr "Загружен блокированный список пользователей с записями %s." + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "Мы нашли устаревший файл в черном списке, он будет переименован на: %s" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr "Загружен Блок песни с записями %s." + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "Не удается загрузить данные для гильдии с ID 0. Вероятно, это ошибка в коде!" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "Нет файла для гильдии %(id)s/%(name)s" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "Загрузка данных гильдии с ID: %(id)s/%(name)s" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "Ошибка ОС не удалось прочитать файл данных гильдии: %s" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "У гильдии %(id)s/%(name)s есть пользовательский префикс команд: %(prefix)s" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "Невозможно сохранить данные для гильдии с ID 0. Возможно, это ошибка в коде!" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "Не удалось сохранить данные конкретной гильдии из-за ошибки ОС." + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "Не удалось сериализовать данные для конкретной гильдии из-за некорректных данных." + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "Принудительное YTDLP использовать User Agent: %s" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "Музыкабот будет использовать cookies для yt-dlp от: %s" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "Yt-dlp будет использовать настроенный прокси сервер." + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "Оригинальный плагин OAuth2 установлен и будет использован вместо него.\n" +"Это может привести к тому, что MusicBot не будет закрыт полностью!\n" +"Чтобы закрыть MusicBot, вы должны вручную убить процесс MusicBot!\n" +"Yt-dlp имеет значение для отображения предупреждений и других сообщений журнала, чтобы показать код аутентификации.\n" +"Удалите пакет yt-dlp-youtube-oauth2 для использования интегрированных функций OAuth2." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD не имеет заголовков..." + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "Проверка заголовков медиа не выполнена из-за таймаута." + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "Ошибка запроса HEAD для: %s" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "HEAD запрос исключения: " + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "Санитированная информация о извлечении YTDL (не JSON):\n" +"%s" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "Ранизированная информация о извлечении YTDL (не JSON): %s" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "Извлечение информации о треке не дало никаких данных." + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "Вызвал extract_info с: '%(subject)s', %(args)s, %(kws)s" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "Невозможно запустить распаковку, цикл закрыт. (нормальный при выключении)" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Невозможно продолжить извлечение. Цикл события закрыт." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "URL-адрес Spotify недействителен или не поддерживается." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Ошибка yt-dlp при загрузке данных: %(raw_error)s" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "Ошибка загрузки с URL потока" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "Предположим, что содержимое является прямым потоком" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Невозможно провести некорректный URL-адрес." + +#: musicbot/downloader.py:517 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "Найдено NoSupportingHandlers, попробуйте снова после замены двоеточия на пространство." + +#: musicbot/downloader.py:544 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "Extractor youtube:search returned single-entry result replacing base info with entry info." + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "Вызвал safe_extract_info с: %(args)s, %(kws)s" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "Локальный медиа-файл не найден." + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "Отсутствует __input_subject из YtdlpResponseDict" + +#: musicbot/downloader.py:623 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "Записи не являются списком в YtdlpResponseDict, задайте process=True, чтобы избежать этого." + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "Внимание, ошибка продолжительности для: %(url)s" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "модуль 'pymediainfo' не найден, вернется в ffprobe." + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "Создано будущее для %r" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "Завершенные фьючерсы для %(entry)r с %(callback)r" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "Необработанное исключение в _for_each_future callback." + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "Запуск подпроцесса асиньо (%(process)s) с командой: %(run)s" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "Отсутствует номер версии входных данных, невозможно десериализовать." + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "Данные записи имеют неверный номер версии, невозможно десериализовать." + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "Десериализованный URLPlaylistEntry не может найти канал с ID: %s" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "Десериализованный URLPlaylistEntry имеет неверный тип канала: %s" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "Десериализованный URLPlaylistEntry не может найти автора с ID: %s" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Десериализованный URLPlaylistEntry имеет ID автора, но нет канала для поиска!" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "Не удалось загрузить %s" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Не удается загрузить ссылки Spotify, ошибка обработки типа %(type)s" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "Готово к записи: %r" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "Скачать кэш с различным расширением..." + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "Локальный размер отличается от удаленного размера. Повторите загрузку..." + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "Скачивание уже кэшировано: %s" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "MusicBot не может получить данные о продолжительности для этой записи.\n" +"Оценка времени может быть недоступна до тех пор, пока трек не будет очищен.\n" +"Файл записи: %s" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "Получена длительность %(time)s секунд для файла: %(file)s" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." +msgstr "Возникла проблема с разработкой EQ, вероятно, вызвана странной установкой FFmpeg. Это не повлияло на способность бота работать, но означает, что ваши треки не будут выравниваться." + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "Исключение при проверке входных данных." + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "Попытка получить длительность через pymediainfo для: %s" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "Не удалось получить длительность через pymediainfo." + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "Пытаемся получить длительность через ffprobe для: %s" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "Не удалось найти ffprobe в вашем пути!" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "ffprobe возвращает то, что не может быть использован." + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "ffprobe не может быть выполнен по той или иной причине." + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "Расчет среднего объёма: %s" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "Не удалось найти ffmpeg на вашем пути!" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr "Не удалось разобрать «I» в нормализации json." + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr "Не удалось разобрать 'LRA' в нормализации json." + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr "Не удалось разобрать 'TP' в нормализации json." + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr "Не удалось разобрать 'thresh' в нормализации json." + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr "Не удалось разобрать 'offset' в нормализации json." + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "Загрузка начата: %r" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "Попытка загрузить %s из 3..." + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "Загрузка не завершена, повторная попытка через %(time).1f секунд. Причина: %(raw_error)s" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "Ошибка загрузки, не повтора! Причина: %(raw_error)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Загрузка не завершена из-за ошибки: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Загрузка не удалась из-за ошибки yt-dlp: %(raw_error)s" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "В извлечении обнаружено необработанное исключение." + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Загрузка не удалась из-за необработанного исключения: %(raw_error)s" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "Ошибка загрузки: %r" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Не удалось извлечь данные для запрошенного носителя." + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "Загрузка завершена: %r" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "Десериализованный StreamPlaylistEntry не может найти канал с ID: %s" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "Десериализованный StreamPlaylistEntry имеет неверный тип канала: %s" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "Десериализованный StreamPlaylistEntry не может найти автора с ID: %s" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Десериализованный StreamPlaylistEntry имеет ID автора, но нет канала для поиска!" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "Десериализованный LocalFilePlaylistEntry не может найти канал с ID: %s" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "Десериализованный LocalFilePlaylistEntry имеет неверный тип канала: %s" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "Десериализованный LocalFilePlaylistEntry не может найти автора с ID: %s" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "Десериализованный LocalFilePlaylistEntry имеет идентификатор автора, но нет канала для поиска!" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "Получена длительность %(seconds)s секунд для файла: %(file)s" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "Не удалось удалить файл кэша: %s" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "Директория кэша аудио удалена." + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "Каталог кэша аудио не может быть удален или переименован." + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "Не удалось удалить директорию кэша звука." + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "Кэш аудио не имеет ограничений для удаления." + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "Кэш аудио удалён %(number)s файл(ы), всего %(size)s удален." + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "Аудио кэш сохранён %(number)s файл(ы) из автомата, в общей сложности %(size)s сохранен." + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "Кэш аудио теперь %(size)s над файлом(ями) %(number)s." + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "Директория кэша аудио отсутствует, нечего удалять." + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "Файл кэша звука из автомата, но помечен как занятый, игнорируя его." + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "Уровень кэша требует очистки. %s" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr "Автоматический плейлист не имеет карты кэша, перемещаясь вперёд." + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr "Карта кэша автоматически загружена с записями %s." + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr "Не удалось загрузить карту кэша плейлиста." + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr "Кэш автоматического списка воспроизведения сохранен с записями %s." + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr "Не удалось сохранить карту кэша плейлиста." + +#: musicbot/filecache.py:355 +#, python-format +msgid "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "Автоматический конфликт кэша карты плейлиста с ключом: %(file)s Старые: %(old)s Новый: %(new)s" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "Ошибка аргумента языка: %s" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "Не удалось загрузить discord перевод для любого из: [%s] в: %s" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "Загрузка JSON-файла: %s" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "Ошибка разбора %s как JSON" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "Не удалось получить данные из ключа JSON: %s" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "Пропуск настроек логгера, уже настроен" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "Уровень журнала ранее был установлен переопределение: %s" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "Изменение уровня журнала на: %s" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr "Логгеры MusicBot были вызваны для отключения." + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "Файл разрешений не найден, копирование из: %s" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "Ошибка копирования образца файла разрешений: %s" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr "Конфигурация 'OwnerID' установлена автоматически, правильно настроена позже." + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "Проверка прав доступа..." + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr "Установка автоматического 'ID владельца' для группы прав владельца." + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "Обновление группы в файле разрешений: %s" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "Удаление группы из файла разрешений: %s" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "Добавление новой группы в файл разрешений: %s" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "Сохранение файла разрешений сейчас." + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "ConfigUpdater не смог разобрать файл разрешений!" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "У вас есть дублирующий раздел, исправьте ваш файл прав!" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "Не удалось сохранить группу прав: %s" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "Dev Bug! Разрешение получилось, что недоступно." + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "Dev Bug! Разрешение имеет недопустимый тип, getter и по умолчанию должны быть одинаковыми." + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "Максимальное количество элементов для поиска не может быть больше 100. Параметр 100." + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "Очистка вызвана на источнике звука: %r" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "MusicPlayer.skip() вызывается: %s" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "MusicPlayer.stop() вызывается: %s" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "Гильдия или сеть недоступны, невозможно возобновить воспроизведение." + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "MusicPlayer.resume() вызывается: %s" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "MusicPlayer.pause() вызывается: %s" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "MusicPlayer.kill() вызывается: %s" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "Воспроизведение завершено, но _current_entry пуст." + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "Возможно предупреждение об убийстве_current_player()" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "MusicPlayer.play() вызывается: %s" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "Музыкальный плеер мертв, воспроизведение невозможно." + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "Гильдия или сеть недоступна, невозможно начать воспроизведение." + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "Музыкальный плеер был ранее приостановлен, возобновить текущий плеер." + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "Музыкальный плеер уже заблокирован для воспроизведения, этот вызов игнорируется." + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "Не удалось получить следующую запись." + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "Не удалось обработать запись для проигрывания." + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "Создание игрока с опциями: ffmpeg %(before)s -i %(input)s %(after)s" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "Играет в %(source)используя %(client)r" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "Пропуск удаления '%s', найдено песню в очереди" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "Удаление файла: %s" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "Файл удален: %s" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "Не удается удалить файл, он в настоящее время используется." + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr "Невозможно удалить файл из-за ошибки прав доступа." + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "Невозможно удалить файл, он не найден." + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "Ошибка при попытке удалить файл." + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "Не удалось удалить файл, отправка и перемещение" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "Десериализация вернула объект, который не является MusicPlayer: %s" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "Не удалось десериализовать игрока" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "Данные из ffmpeg: %s" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "Ошибка из ffmpeg: %s" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "Предупреждение от ffmpeg: %s" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "Неизвестная ошибка декодирования сообщения от ffmpeg" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "Декодированные данные из ffmpeg: %s" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "Добавление записи потока для URL: %(url)s" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Не удалось извлечь информацию" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "Это плейлист." + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "Информация о записи похожа на поток, добавление записи на поток..." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Недопустимый тип содержимого `%(type)s` для URL: %(url)s" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "Получен текстовый/html для типа содержимого, это может быть поток." + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "Сомнительный тип содержимого \"%(type)s\" для url: %(url)s" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "Добавление URLPlaylistList для: %(subject)s" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "Добавление LocalFilePlaylistEntry для: %(subject)s" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "Игнорировать видео из составного плейлиста с ID: %s" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "Не разрешается запись в списке блоков песни: %(title)s URL: %(url)s" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "Игнорирование песни в записях '%s', длиннее допустимого максимума." + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "Видео YouTube не добавлено, потому что оно помечено как приватное или удалено: %s" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "Не удалось добавить элемент" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "Предмет: %s" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "Пропущенные %s плохие записи" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "Переупорядочить циклы поверх записей." + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "Предзагрузка следующего трека: %r" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "нет длительности данных" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "нет данных о продолжительности в текущей записи" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Недопустимые track_data, должны быть типа `track` получен `%(type)s`" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "Игнорируется запись нетрека в плейлисте с типом %s" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "Получение URL-адреса альбома Spotify: %s" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Альбом Spotify может не быть завершён, ожидается %(total)s треков, но получено %(number)s" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "Альбом Spotify содержит больше треков, чем начальная сумма." + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "Получение плейлиста Spotify: %s" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Spotify Playlist Object не может быть завершен, ожидается %(total)s треков, но получено %(number)s" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "Плейлист Spotify больше треков, чем начальный итог." + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "Spotify Playlist содержит %s дорожки, пригодные для использования." + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Нет статуса ответа: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "Ответ JSON не декодировал немного!" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "Не удалось сделать запрос GET url: %s" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Не удалось сделать GET по URL: %(url)s Причина: %(raw_error)s" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "Не удалось сделать запрос POST на url: %s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Не удалось сделать POST по URL: %(url)s Причина: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Не удалось получить токен гостя из Spotify, попробуйте указать ID клиента и секретный ключ клиента" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "Создан новый маркер доступа к гостевому режиму." + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "Ответ API не содержит ожидаемых данных. Отсутствует ключ: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "Ответ API содержит неожиданные данные.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Запрашиваемый токен из Spotify, не получается" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "Создан новый маркер доступа к режиму клиента." + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "Неправильный статус ответа от API: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "Не удалось получить гостевой токен Spotify." + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "Не удалось получить Жетон гостя из-за этого: %(raw_error)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Только владелец может использовать эту команду." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Только пользователи dev могут использовать эту команду." + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr "Нельзя посчитать участников, если голосовой канал пуст." + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "Не удалось сохранить данные токена ytdlp oauth2 из-за этого: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr "Загрузка данных токена YouTube TV OAuth2." + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "Не удалось загрузить данные токена ytdlp oauth2 из-за этого: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "Хранение данных токена OAuth2 YouTube TV" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr "Недопустимые кэшированные данные токена OAuth2." + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "Маркер доступа истек, обновление" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "Предоставлены cookies YouTube, но используется OAuth2. Если вы сталкиваетесь с проблемами, перестаньте предоставлять YouTube cookies yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "Обновление ТВ YouTube oauth2 токена..." + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "Не удалось обновить токен доступа OAuth2 из-за использования: %s\n" +"Перезапуск потока авторизации..." + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "Запуск oauth2 потока..." + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "Приложение может зависнуть до истечения времени авторизации, если оно закрыто. Это нормально." + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr "Истекло время ожидания токена OAuth2." + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "Срок действия кода устройства истек, перезапустив поток авторизации для yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "Yt-dlp OAuth2 авторизация успешна." + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "Добавление OAuth2 плагина к Yt-dlp IE: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "Клиенты Yt-dlp по умолчанию: %s" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "Не удалось найти исполняемый файл git." + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "Попытка обновить с помощью `git pull` на текущем пути." + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "Результат git pull: %s" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "Обновление не удалось, вам нужно запустить `git pull` вручную." + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "Невозможно выполнить путь." + +#: run.py:180 +msgid "Error using -m method" +msgstr "Ошибка при использовании метода -m" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "Ошибка PIP при вызове подпроцесса." + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr "PIP не удался из-за ошибки разрешения." + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "PIP не удалось из-за отсутствия исполняемого файла Python? (%s)" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "PIP не удалось из-за ошибки OS." + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "Не удалось декодировать pip доклад обновления JSON." + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "Не удается найти или выполнить python -m pip" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "Попытка обновить с помощью `%s` на текущем пути..." + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "Результат улучшения Pip:\n" +"%s" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "Результат выхода из обновления Pip: %s" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "Обновление не удалось выполнить или мы не смогли понять вывод" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "Возможно вам нужно запустить `%s` вручную." + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "Нажмите Enter, чтобы продолжить. . ." + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "Начало проверки санитарии" + +#: run.py:361 +msgid "Required checks passed." +msgstr "Проведены необходимые проверки." + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "Пропущена проверка обновлений." + +#: run.py:376 +msgid "Optional checks passed." +msgstr "Необязательные проверки пройдены." + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "Проверка Python 3.8+" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "Требуется Python 3.8+ версия %s" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "Попытка найти Python 3.8..." + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "Не удалось найти py.exe" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "Не удалось выполнить `py.exe -3.8` " + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "Найден Python 3. Запуск бота..." + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "Попытка \"python3.8\"" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "Не удалось найти python3.8 на пути." + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "Не удалось найти Python 3.8 или выше. Пожалуйста, запустите бота с помощью Python 3.8" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "Обеспечение того, что мы находимся в правильной среде" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "Ошибка проверки окружения, %s" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "Текущий рабочий каталог не доступен для записи" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "Пожалуйста, переместите бота в папку, которая доступна для записи" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "Обнаружен FFmpeg установлен в: %s" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "Добавление локальной среды bins/ папок PATH для комплекта ffmpeg..." + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "" + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "В Windows вы можете добавить предварительно скомпилированный EXE в папку MusicBot `bin`,\n" +"или вы можете установить FFmpeg в системе с помощью WinGet или с помощью установки. в файл." + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "" + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "" + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "На этом устройстве осталось меньше %sМБ свободного места" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "\n" +"Проверка обновлений для MusicBot или зависимостей..." + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "Нет доступных обновлений MusicBot с помощью команды `git`." + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "Не удалось проверить наличие обновлений с помощью команд `git`. Проверьте вручную." + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "Следующие пакеты могут быть обновлены:\n" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr " %s к версии: %s\n" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "Нет доступных обновлений зависимостей с помощью команды `pip`." + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "Не удалось проверить наличие обновлений с помощью команд `pip`. Проверьте вручную." + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "Вы можете запустить обновление руководства, используя команду:\n" +" %s ./update.py" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "Значение превышает максимальный лимит." + +#: run.py:638 +msgid "Value must not be negative." +msgstr "Значение не должно быть отрицательным." + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "Значение максимального числа журналов должно быть числом от 0 до %s" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "Уровень журнала '%s' недоступен." + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "Уровень журнала должен быть одним из: %s" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "Запустите музыкальный дискорд с помощью discord.py, youtubeDL и ffmpeg." + +#: run.py:669 +msgid "Available via Github:" +msgstr "Доступно через Github:" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "Для получения дополнительной помощи и поддержки с этим ботом, присоединяйтесь к нашему разногласию:" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "Это программное обеспечение предоставляется по лицензии MIT." + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "Полную информацию см. в текстовом файле `LICENSE`." + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "Переопределить язык по умолчанию / система для всего текста в MusicBot." + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "Используйте этот язык для всех серверных журналов от MusicBot." + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "Используйте этот язык для всех сообщений, отправленных на дискорд от MusicBot.\n" +"Это не предотвращает выбор языка для каждой гильдии." + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "Печатайте информацию о версии MusicBot и выходите." + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "Пропустить все опциональные проверки запуска, включая проверку обновления." + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "Пропустить проверку только дискового пространства при запуске." + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "Пропустить проверку обновлений только при запуске." + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "Отключите MusicBot от попытки установки зависимостей, когда он не может импортировать их." + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "Укажите, сколько файлов журнала нужно хранить между 0 и %s включительно. (По умолчанию: %s)" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "Переопределить уровень журнала, установленный в настройках. Должно быть одно из: %s" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "Переопределить формат даты по умолчанию, используемый при повороте лог файлов. Это должно содержать значения, совместимые с strftime(). (По умолчанию: '%s')" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "Версия: %s" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "Открыт новый экземпляр MusicBot. Этот терминал может быть безопасно закрыт!" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "Загрузка версии MusicBot: %s" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "Открыт журнал: %s" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "Python version: %s" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "Изменение рабочего каталога на: %s" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "Не удается запустить бота! Вы начали `run.py` в неправильном каталоге, и мы не смогли найти `musicbot` и `. это папки, чтобы проверить новое расположение каталога." + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "Для получения наилучших результатов запустите `run.py` из той же папки, в которую вы клонировали MusicBot.\n" +"Если вы не использовали git для клонирования репозитория, вам настоятельно рекомендуется это сделать." + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "Ошибка сертификата не является ошибкой проверки, не пытайтесь certifi и выйти." + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "Вот точная ошибка, это может быть ошибка." + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "Чтобы легко добавить сертификат в хранилище доверия Windows, \n" +"вы можете открыть сайт с ошибками в Microsoft Edge или IE...\n" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "Не удалось получить сертификат эмитента из магазина доверия по умолчанию, вместо этого попробуйте certifi." + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "Ошибка синтаксиса (обнаружена модификация, вы отредактировали код?)" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "Ошибка синтаксиса (это ошибка, не ваша вина)" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "Невозможно запустить MusicBot из-за ошибки!\n\n" +"Проблема:\n" +" Возникла ошибка при импорте MusicBot или пакета зависимостей.\n\n" +"Решение:\n" +" Вам нужно вручную установить pip пакеты для MusicBot\n" +" или запустить без `--no-install-deps` и MusicBot попытается установить их для вас." + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "Попытка автоматической установки пакетов с зависимостью от MusicBot...\n" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "OK, позволяет надеяться, что зависимости работают!" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "У MusicBot возникла ошибка при попытке установить пакеты. MusicBot должен выйти..." + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "Исключение, вызвавшее указанную ошибку: " + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "MusicBot делает мягкий перезапуск..." + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "MusicBot выполняет полный перезапуск процесса..." + +#: run.py:1169 +msgid "Error starting bot" +msgstr "Ошибка при запуске бота" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "Цикл закрытия событий." + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "Перезапуск через %s секунд..." + +#: run.py:1183 +msgid "All done." +msgstr "Всё готово." + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "ОК, мы закрываем!" + diff --git a/i18n/ru_RU/LC_MESSAGES/musicbot_messages.mo b/i18n/ru_RU/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..e813ca51a7564331d2b2bcd18bf572c1207a3207 GIT binary patch literal 109317 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 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: ru\n" +"X-Crowdin-File: /fae/i18n/musicbot_messages.pot\n" +"X-Crowdin-File-ID: 28\n" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "Участник не включен голосовым путем и не может использовать эту команду." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "Вы не можете использовать эту команду, если не в голосовом канале." + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "У Музыкабота нет прав подключаться в канале: `%(name)s`" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "У Музыкабота нет прав говорить в канале: `%(name)s`" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "Подключение MusicBot к голосу было отменено. Это странно. Может быть перезапустить?" + +#: musicbot/bot.py:840 +msgid "MusicBot does not have permission to speak." +msgstr "У MusicBot нет разрешения на чтение." + +#: musicbot/bot.py:844 +msgid "MusicBot could not request to speak." +msgstr "MusicBot не может просить говорить." + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Что-то не так, мы не получили VoiceClient." + +#: musicbot/bot.py:1084 +#, python-format +msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" +msgstr "Пропуск следующей песни `%(title)s` в качестве инициатора `%(user)s` не в голосе!" + +#: musicbot/bot.py:1102 +#, python-format +msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" +msgstr "%(mention)s - ваша песня `%(title)s` теперь играет в %(channel)s!" + +#: musicbot/bot.py:1111 +#, python-format +msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" +msgstr "Теперь играя в %(channel)s: `%(title)s` добавлен %(author)s!" + +#: musicbot/bot.py:1122 +#, python-format +msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" +msgstr "Теперь проигрыватель автоматически добавил запись `%(title)s` в %(channel)s!" + +#: musicbot/bot.py:1333 +#, python-format +msgid "Skipping songs added by %(user)s as they are not in voice!" +msgstr "Пропускать песни, добавленные %(user)s , так как они не в голосе!" + +#: musicbot/bot.py:1555 +#, python-format +msgid "Playback failed for song `%(song)s` due to an error:\n" +"```\n" +"%(error)s```" +msgstr "Сбой воспроизведения `%(song)s` из-за ошибки:\n" +"```\n" +"%(error)s```" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Попытка отправить некорректный объект ответа." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Ошибка входа в Discord API!\n\n" +"Проблема:\n" +" MusicBot не смог войти в Discord API.\n" +" Ваш токен может быть неправильным или может возникнуть ошибка API.\n\n" +"Решение:\n" +" Убедитесь, что в конфигурации установлен правильный токен.\n" +" Проверка статуса API на официальном сайте: discordstatus.com" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "Запрошенная песня `%(subject)s` заблокирована списком блоков песен." + +#: musicbot/bot.py:2831 +msgid "Reset the auto playlist queue by copying it back into player memory.\n" +"This command will be removed in a future version, replaced by the autoplaylist command(s)." +msgstr "Сбросьте очередь автоматического воспроизведения, скопировав ее обратно в память плеера.\n" +"Эта команда будет удалена в будущей версии, заменена командами autoplaylist (команды)." + +#: musicbot/bot.py:2846 +msgid "\\N{OK HAND SIGN}" +msgstr "" + +#: musicbot/bot.py:2853 +msgid "Show usage and description of a command, or list all available commands.\n" +msgstr "Показать использование и описание команды или список всех доступных команд.\n" + +#: musicbot/bot.py:2888 +msgid "**Aliases for this command:**\n" +msgstr "**Псевдонимы для этой команды:**\n" + +#: musicbot/bot.py:2891 +#, python-format +msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" +msgstr "` Алиас%(alias)s`%(command)s %(args)s`\n" + +#: musicbot/bot.py:2924 +#, python-format +msgid "**Alias of command:**\n" +" `%(command)s`\n" +msgstr "**Псевдоним команды:**\n" +" `%(command)s`\n" + +#. TRANSLATORS: template string for command-specific help output. +#: musicbot/bot.py:2931 +#, python-format +msgid "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" +msgstr "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "Нет такой команды" + +#: musicbot/bot.py:2959 +#, python-format +msgid "The list above shows only commands permitted for your use.\n" +"For a list of all commands, run: %(example_all)s\n" +msgstr "Вышеприведенный список показывает только команды, разрешенные для вашего использования.\n" +"Для списка всех команд, запустите: %(example_all)s\n" + +#: musicbot/bot.py:2965 +#, python-format +msgid "**Commands by name:** *(without prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Command Prefix:** %(prefix)s\n\n" +"For help with a particular command, run: %(example_command)s\n" +"%(all_note)s" +msgstr "**Команды по имени:** *(без префикса)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Префикс команд:** %(prefix)s\n\n" +"Для помощи с определенной командой, выполнить: %(example_command)s\n" +"%(all_note)s" + +#: musicbot/bot.py:2984 +msgid " Block a mentioned user." +msgstr " Заблокировать указанного пользователя." + +#: musicbot/bot.py:2987 +msgid " Unblock a mentioned user." +msgstr " Разблокировать указанного пользователя." + +#: musicbot/bot.py:2990 +msgid " Show the block status of a mentioned user." +msgstr " Показать статус блока упомянутого пользователя." + +#: musicbot/bot.py:2994 +msgid "Manage the users in the user block list.\n" +"Blocked users are forbidden from using all bot commands.\n" +msgstr "" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "Вы должны указать пользователя или указать его идентификационный номер." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Неверная субкоманда. Для примеров использования используйте `help blockuser`." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot не может найти указанного пользователя." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "Владелец не может быть добавлен в заблокированный список." + +#: musicbot/bot.py:3059 +msgid "User block list is currently enabled." +msgstr "Блок списка пользователей в настоящее время включен." + +#: musicbot/bot.py:3061 +msgid "User block list is currently disabled." +msgstr "Блок списка пользователей в настоящее время отключен." + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "Не удается добавить пользователей, которые вы указали, они уже добавлены." + +#: musicbot/bot.py:3078 +#, python-format +msgid "%(number)s user(s) have been added to the block list.\n" +"%(status)s" +msgstr "К списку блоков добавлено %(number)s пользователей(ов).\n" +"%(status)s" + +#: musicbot/bot.py:3089 +msgid "None of those users are in the blacklist." +msgstr "Никто из этих пользователей не находится в чёрном списке." + +#: musicbot/bot.py:3094 +#, python-format +msgid "User: `%(user)s` is not blocked.\n" +msgstr "Пользователь: `%(user)s` не заблокирован.\n" + +#: musicbot/bot.py:3096 +#, python-format +msgid "User: `%(user)s` is blocked.\n" +msgstr "Пользователь: `%(user)s` заблокирован.\n" + +#: musicbot/bot.py:3099 +#, python-format +msgid "**Block list status:**\n" +"%(status)s\n" +"%(users)s" +msgstr "**Статус блокировки:**\n" +"%(status)s\n" +"%(users)s" + +#: musicbot/bot.py:3109 +#, python-format +msgid "%(number)s user(s) have been removed from the block list.\n" +"%(status)s" +msgstr "%(number)s пользователь(ы) были удалены из списка блокировки.\n" +"%(status)s" + +#: musicbot/bot.py:3118 +msgid "Manage a block list applied to song requests and extracted song data.\n" +"A subject may be a song URL or a word or phrase found in the track title.\n" +"If subject is omitted, any currently playing track URL will be added instead.\n\n" +"The song block list matches loosely, but is case-sensitive.\n" +"This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" +msgstr "Управление списком блоков, применяемым к запросам треков и данным извлеченных треков.\n" +"Темой может быть URL-адрес песни или слово или фраза в названии трека.\n" +"Если тема опущена, вместо нее будет добавлен любой URL-адрес трека.\n\n" +"Список блоков песни совсем не совпадает, но чувствителен к регистру.\n" +"Это означает, что добавление 'Pie' будет совпадать с 'вишневым пирогом', но не 'piecrust' в проверках.\n" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Вы должны предоставить тему песни, если песня в настоящее время не воспроизводится." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Неверная субкоманда. Используйте `help blocksong` для примеров использования." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "Тема `%(subject)s` уже находится в списке блоков песен." + +#: musicbot/bot.py:3187 +#, python-format +msgid "Added subject `%(subject)s` to the song block list.\n" +"%(status)s" +msgstr "Добавлена тема `%(subject)s` в список блоков песен.\n" +"%(status)s" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "Тема отсутствует в списке блоков песни и не может быть удалена." + +#: musicbot/bot.py:3204 +#, python-format +msgid "Subject `%(subject)s` has been removed from the block list.\n" +"%(status)s" +msgstr "Тема `%(subject)s` удалена из списка блоков.\n" +"%(status)s" + +#: musicbot/bot.py:3214 +msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" +msgstr "" + +#: musicbot/bot.py:3217 +msgid " Adds the entire queue to the guilds playlist.\n" +msgstr " Добавляет очередь в плейлист гильдий\n" + +#: musicbot/bot.py:3220 +msgid " Show a list of existing playlist files.\n" +msgstr "" + +#: musicbot/bot.py:3223 +msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" +msgstr " Сброс очереди автоматического воспроизведения, перезапуск в первый трек без рандомизации\n" + +#: musicbot/bot.py:3226 +msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" +msgstr "" + +#: musicbot/bot.py:3229 +msgid "Manage auto playlist files and per-guild settings." +msgstr "Управление автоплейлистами и настройками для каждой гильдии." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Неверная субкоманда. Используйте `help autoplaylist` для примеров использования." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "Недействительная ссылка на песню" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "Очередь пуста. Добавьте несколько песен с помощью команды воспроизведения!" + +#: musicbot/bot.py:3273 +msgid "All songs in the queue are already in the autoplaylist." +msgstr "Все песни в очереди уже находятся в списке автоматов." + +#: musicbot/bot.py:3277 +#, python-format +msgid "Added %(number)d songs to the autoplaylist." +msgstr "%(number)d треков добавлено в список автоматов." + +#: musicbot/bot.py:3287 +#, python-format +msgid "Added `%(url)s` to the autoplaylist." +msgstr "`%(url)s` добавлен в автомат." + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Эта песня уже есть в автомате." + +#: musicbot/bot.py:3304 +#, python-format +msgid "Removed `%(url)s` from the autoplaylist." +msgstr "`%(url)sудалён из автомата." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Эта песня еще не находится в автомате." + +#: musicbot/bot.py:3316 +#, python-format +msgid "Loaded a fresh copy of the playlist: `%(file)s`" +msgstr "Загружена свежая копия плейлиста: `%(file)s`" + +#: musicbot/bot.py:3327 +#, python-format +msgid "**Available Playlists:**\n" +"%(names)s" +msgstr "**Доступные плейлисты:**\n" +"%(names)s" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "Вы должны указать имя файла плейлиста." + +#: musicbot/bot.py:3357 +msgid "\n" +"This playlist is new, you must add songs to save it to disk!" +msgstr "\n" +"Этот плейлист новый, вы должны добавить песни, чтобы сохранить его на диске!" + +#: musicbot/bot.py:3362 +#, python-format +msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" +msgstr "Плейлист для этого сервера был обновлен на: `%(name)s`%(note)s" + +#: musicbot/bot.py:3373 +msgid "Generate an invite link that can be used to add this bot to another server." +msgstr "Сгенерировать ссылку-приглашение, которая может быть использована для добавления этого бота на другой сервер." + +#: musicbot/bot.py:3385 +#, python-format +msgid "Click here to add me to a discord server:\n" +"%(url)s" +msgstr "Нажмите здесь, чтобы добавить меня на сервер discord:\n" +"%(url)s" + +#: musicbot/bot.py:3391 +msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" +"Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" +msgstr "Включает или выключает режим караоке. Если включено, только члены караоке.\n" +"Группы с правами доступа BypassKaraokeMode контролируют членов Караоке.\n" + +#: musicbot/bot.py:3403 +msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." +msgstr "" + +#: musicbot/bot.py:3405 +msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." +msgstr "" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "Вам не разрешено запрашивать плейлисты" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "Плейлист имеет слишком много записей (%(songs)s , но максимум %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3580 +msgid "Bot was previously paused, resuming playback now." +msgstr "Бот был ранее приостановлен, возобновите воспроизведение сейчас." + +#: musicbot/bot.py:3589 +msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" +"You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" +"Playlist links will be extracted into multiple links and added to the queue.\n" +"If you enter a non-URL, the input will be used as search criteria on YouTube and the first result played.\n" +"MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" +msgstr "Добавьте песню для воспроизведения в очереди. Если песня не воспроизводится или приостановлена, будет запущено воспроизведение.\n\n" +"Вы можете предоставить URL-адрес для видео или аудио файла или URL-адреса сервиса, поддерживаемого yt-dlp.\n" +"Ссылки на плейлист будут извлечены из нескольких ссылок и добавлены в очередь.\n" +"Если вы введете не-URL, ввод будет использоваться в качестве критериев поиска на YouTube и первый результат воспроизведен.\n" +"MusicBot также поддерживает Spotify URIs и URL, но звук загружается с YouTube regardless.\n" + +#: musicbot/bot.py:3628 +msgid "Play command that shuffles playlist entries before adding them to the queue.\n" +msgstr "Воспроизведение команды, которая перемешивает плейлисты перед добавлением их в очередь.\n" + +#: musicbot/bot.py:3665 +#, python-format +msgid "Shuffled playlist items into the queue from `%(request)s`" +msgstr "Элементы плейлиста перемещены в очередь из `%(request)s`" + +#: musicbot/bot.py:3672 +msgid "A play command that adds the song as the next to play rather than last.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "Команда воспроизведения, которая добавляет песню в ряды, а не в последнюю очередь.\n" +"Читать справку для команды воспроизведения для информации о поддерживаемых входах.\n" + +#: musicbot/bot.py:3707 +msgid "A play command which skips any current song and plays immediately.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" + +#: musicbot/bot.py:3744 +msgid "Restarts the current song at the given time.\n" +"If time starts with + or - seek will be relative to current playback time.\n" +"Time should be given in seconds, fractional seconds are accepted.\n" +"Due to codec specifics in ffmpeg, this may not be accurate.\n" +msgstr "Перезапускает текущую песню в заданное время.\n" +"Если время начинается с + или - поиск будет относительно текущего времени воспроизведения.\n" +"Время должно быть указано в секундах, дробные секунды принимаются.\n" +"Из-за специфики кодеков в ffmpeg это может быть неточным.\n" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "Невозможно использовать поиск, если нет проигрывания." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "Невозможно использовать поиск по текущему треку, он имеет неизвестную длительность." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "Поиск не поддерживается для потоков." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "Невозможно использовать переключение без времени для размещения воспроизведения." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "Не удалось преобразовать `%(input)s` в допустимое время в секундах." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "Не удается переключиться в `%(input)s` (`%(seconds)s` секунд) в текущем треке длиной `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3840 +#, python-format +msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." +msgstr "Переход к времени `%(input)s` (`%(seconds).2f` секунд) в текущей песне." + +#: musicbot/bot.py:3852 +msgid "Toggles playlist or song looping.\n" +"If no option is provided the current song will be repeated.\n" +"If no option is provided and the song is already repeating, repeating will be turned off.\n" +msgstr "" + +#: musicbot/bot.py:3870 +msgid "No songs are currently playing. Play something with a play command." +msgstr "На данный момент треков нет. Воспроизводите что-то с помощью команды воспроизведения." + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Неверная субкоманда. Используйте команду `help repeat` для примеров использования." + +#: musicbot/bot.py:3883 musicbot/bot.py:3920 +msgid "Playlist is now repeating." +msgstr "Повторяется плейлист." + +#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +msgid "Playlist is no longer repeating." +msgstr "Плейлист больше не повторяется." + +#: musicbot/bot.py:3892 musicbot/bot.py:3901 +msgid "Player will now loop the current song." +msgstr "Игрок теперь повторяет текущую песню." + +#: musicbot/bot.py:3894 musicbot/bot.py:3908 +msgid "Player will no longer loop the current song." +msgstr "Игрок больше не будет повторять текущую песню." + +#: musicbot/bot.py:3898 +msgid "Player is already looping a song!" +msgstr "Игрок уже зацикливает песню!" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "Игрок в данный момент не зацикливается." + +#: musicbot/bot.py:3926 +msgid "Song is no longer repeating." +msgstr "Песня больше не повторяется." + +#: musicbot/bot.py:3930 +msgid "Song is now repeating." +msgstr "Песня повторяется." + +#: musicbot/bot.py:3938 +msgid " Move song at position FROM to position TO.\n" +msgstr "" + +#: musicbot/bot.py:3942 +msgid "Swap existing songs in the queue using their position numbers.\n" +"Use the queue command to find track position numbers.\n" +msgstr "Поменять местами существующие песни в очереди с использованием их номеров позиций.\n" +"Используйте команду очереди, чтобы найти номера позиции трека.\n" + +#: musicbot/bot.py:3961 +msgid "There are no songs queued. Play something with a play command." +msgstr "Нет песен в очереди песен. Проигрывайте что-нибудь с помощью команды воспроизведения." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Позиции песни должны быть целыми!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "Вы поставили позицию за пределами плейлиста!" + +#: musicbot/bot.py:3984 +#, python-format +msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" +msgstr "Песня успешно перемещена с позиции %(from)s в очереди на позицию %(to)s!" + +#: musicbot/bot.py:4072 +#, python-format +msgid "This link contains a Playlist ID:\n" +"`%(url)s`\n\n" +"Do you want to queue the playlist too?" +msgstr "" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "Воспроизведение локального медиа не включено." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "URL-адрес Spotify недействителен или в настоящее время не поддерживается." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Обнаружен URL-адрес Spotify, но Spotify не включен." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Вы достигли лимита на добавленные песни (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "Караоке-режим включен, попробуйте еще раз, когда он отключен!" + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Не удалось извлечь информацию из-за ошибки:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Это видео не может быть воспроизведено. Попробуйте использовать команду трансляции." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "Поиск YouTube не дал результатов по запросу: %(url)s" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "Не было добавлено треков, все песни были больше длительности (%(max)s секунд)" + +#: musicbot/bot.py:4254 +#, python-format +msgid "Enqueued **%(number)s** songs to be played.\n" +"Position in queue: %(position)s" +msgstr "В очереди **%(number)s** песни будут воспроизведены.\n" +"Позиция в очереди: %(position)s" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "Длительность песни превышает предел (%(length)s > %(max)s)" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "Следующая игра!" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "%(position)s - предполагаемое время до игры: `%(eta)s`" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "%(position)s - невозможно оценить время до игры." + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "Добавить медиа URL в очередь как поток.\n" +"URL может быть реальными потоковыми медиа, такими как Twitch, Youtube, или такой сервис.\n" +"Вы также можете использовать непотоковый носитель для воспроизведения без его загрузки.\n" +"Примечание: FFmpeg может случайным образом отбрасывать поток или если произойдет ошибка подключения.\n" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Потоковые плейлисты еще не поддерживаются." + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "Теперь стриминг `%(track)s`" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr "" + +#: musicbot/bot.py:4432 +msgid " Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr "" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Вы достигли предела в плейлисте (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Пожалуйста, укажите поисковый запрос. Используйте `help search` для получения дополнительной информации." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "Вы не можете искать более чем %(max)s видео" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "Поиск видео..." + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "Поиск не удался из-за ошибки: %(error)s" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "Видео не найдено." + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "Для выбора песни введите соответствующее число." + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "Результаты поиска от %(service)s:" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "**%(index)s**. **%(track)s** | %(length)s" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "\n" +"**0**. Отмена" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "Выберите песню" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "Добавлена песня [%(track)s](%(url)s) в очередь." + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "Результат %(number)s из %(total)s: %(url)s" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "Хорошо, приближайся!" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "Показать информацию о том, что сейчас играет." + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "Играет сейчас" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "Сейчас стриминг:" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "Сейчас играет:" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "Добавлено через:" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "`%(user)s" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "Прогресс:" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "Нет песен в очереди! Очередь что-то с помощью команды воспроизведения." + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "Расскажите MusicBot, чтобы войти в канал, в который вы находитесь." + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "Вы не подключены к голосу. Попробуйте подключиться к голосовому каналу!" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "Подключено к `%(channel)s`" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "Больше не следует за пользователем `%(user)s`" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "Теперь следите за пользователем `%(user)s` между голосовыми каналами." + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot не может следить за пользователем, не являющимся членом сервера." + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "Будет следовать за пользователем `%(user)s` между голосовыми каналами." + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "Приостановить воспроизведение, если трек воспроизводится." + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "Пауза в `%(channel)s`" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Плеер не играет." + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "Возобновляет воспроизведение, если плеер был ранее приостановлен." + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "Возобновленная музыка в `%(channel)s`" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "Возобновленная очередь музыки" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "Игрок не приостанавливается." + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "Перемешать все текущие треки в очереди." + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "Перемещает все песни в очередь." + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "Удаляет все песни, которые сейчас находятся в очереди." + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "Все песни из очереди очищены." + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "Удалить трек из очереди, по желанию можно в указанной очереди.\n" +"Если позиция опущена, песня в конце очереди удаляется.\n" +"Используйте команду очереди, чтобы найти номер позиции вашего трека.\n" +"Тем не менее, позиции всех песен меняются после начала воспроизведения новой песни.\n" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Нечего удалять в очереди!" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "Удалено `%(track)s` добавил `%(user)s`" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "В очереди у пользователя `%(user)s ничего не найдено" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "У вас недостаточно прав для удаления этой записи из очереди.\n" +"Вы должны быть тот, кто поставил его в очередь или имеет мгновенные пропуска." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Неверный номер записи. Используйте команду очереди для поиска позиций." + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "Удалена запись `%(track)s` добавлена `%(user)s`" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "Удалена запись `%(track)s`" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Нельзя пропустить! Игрок не играет!" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "Следующая песня `%(track)s` загружается, пожалуйста, подождите." + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "Следующая песня будет воспроизведена в ближайшее время. Пожалуйста, подождите." + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "У вас недостаточно прав для принудительного пропуска циклической песни." + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "У вас нет разрешения на принудительный пропуск." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "У вас нет разрешения на пропуск зацикливаемой песни." + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "Ваш пропуск для `%(track)s` был подтвержден.\n" +"Пропущен голос.%(next_up)s" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr " Следующая песня!" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "" + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "Текущий объем: `%(volume)s%%`" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` не является допустимым числом" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "Изменена громкость с **%(old)d** до **%(new)d**" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Неприемлемое изменение объема предусматривается: %(old_volume)s%(adjustment)s является %(new_volume)s.\n" +"Том может быть установлен только от 1 до 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Неприемлемый объём: %(volume)s. Предоставьте значение от 1 до 100." + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "Скорость не может быть применена к потоковым носителям." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Вы должны предоставить скорость для установки." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "Предоставленная вами скорость является недопустимой. Используйте число в диапазоне от 0.5 до 100." + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "Установка скорости воспроизведения в `%(speed).3f` для текущего трека." + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr "" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr " Удалить псевдоним с заданным именем." + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr " Перезагрузить или сохранить псевдонимы из /в конфигурационный файл." + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "Позволяет управлять псевдонимами из discord. Чтобы увидеть псевдонимы, используйте команду помощи." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Недопустимый параметр для команды: `%(option)s`" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "Псевдонимы перезагружены из файла конфигурации." + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "Псевдонимы сохранены в конфигурационном файле." + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Не удалось сохранить псевдонимы из-за ошибки:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Вы должны указать псевдоним и команду для псевдонима" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "Добавлен новый псевдоним. `%(alias)s` теперь является псевдонимом `%(command)s`" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Вы должны указать имя псевдонима для удаления." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "Псевдоним `%(alias)s` не существует." + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "Псевдоним `%(alias)s` был удален." + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr "" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr "" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr "" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr "" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr " Показывает текст справки для определенного варианта.\n" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr " Отображение текущего значения параметра.\n" + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr " Сохраняет текущее значение в файл параметров.\n" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr " Проверяет опцию и устанавливает конфигурацию для сессии, но не для файла.\n" + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr " Сброс параметра в значение по умолчанию.\n" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "Управление конфигурацией options.ini из Discord." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "Конфигурация не может использовать канал и упоминания пользователя одновременно." + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "**Отсутствует опция:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"установлено по умолчанию: %(default)s```\n" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "*Все настройки присутствуют и учтены для!*" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "Похоже, что настройки конфигурации не были изменены." + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "**Измененные параметры:**\n" +"%(changed)s" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "## Доступные опции:\n" +"**Опции для редактирования:**\n" +"%(editable)s\n" +"**Только для ручного редактирования:**\n" +"%(manual)s" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "Настройки конфигурации успешно перезагружены из файла!" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Не удалось перезагрузить конфигурацию из-за следующей ошибки:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Не удалось определить название секции с названием опции. Пожалуйста, укажите корректный раздел и название опции." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "Указанная опция является неоднозначной, укажите название раздела." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Вы должны указать название раздела и название параметра для этой команды." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "Раздел `%(section)s` недоступен.\n" +"Доступные разделы: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "Опция `%(option)s` недоступна." + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "Эта опция может быть задана только редактированием конфигурационного файла." + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "По умолчанию эта опция установлена на: %(default)s" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Опция:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "Параметр `%(option)s` не редактируется. Невозможно сохранить на диск." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Не удалось сохранить опцию: `%(option)s`" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "Опция `%(config)s` успешно сохранена" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "Параметр `%(option)s` не может быть отредактирован, значение не отображается." + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Опция:** `%(config)s`\n" +"Текущее значение: `%(loaded)s`\n" +"INI значение файла: `%(ini)s`" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "Параметр `%(option)s` не редактируется. Не удается обновить параметр." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Вы должны указать раздел, параметр и значение для этой подкоманды." + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "Опция `%(option)s` не была обновлена!" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "Опция `%(config)s` была обновлена для этой сессии.\n" +"Для сохранения изменения используйте `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "Параметр `%(option)s` не является редактируемым. Невозможно сбросить к значению по умолчанию." + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "Параметр `%(option)s` не был сброшен до значения по умолчанию!" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "Параметр `%(config)s` был сброшен к значению по умолчанию `%(default)s`.\n" +"Чтобы сохранить изменение используйте `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "Устаревшая команда, используйте команду config." + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "Команда опции является устаревшим, используйте команду config." + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "Отображение информации о кэше или очистка кэша в соответствии с заданными пределами.\n" +"Использование опции обновления будет сканировать кэш для внешних изменений перед отображением деталей." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Указан неверный параметр, используйте информацию: info, update, or clear" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "Отключено" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "Включено" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "Неограниченный" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "**Видео кэш:** *%(state)s*\n" +"**Лимит хранения:** *%(size)s*\n" +"**Лимит времени:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "Кэш был очищен." + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Не удалось** удалить кэш, проверьте журналы для получения дополнительной информации..." + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "Не найден кэш для очистки." + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "Аргумент очереди страницы должен быть целым числом." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "(время неизвестно)" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "В настоящее время играет: `%(title)s`\n" +"Добавлено: `%(user)s`\n" +"Прогресс: `[%(progress)s/%(total)s]`\n" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "**Entry #%(index)s:**Title: `%(title)s`\n" +"Добавлено: `%(user)s\n\n" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "%(progress)sВ очереди ` записей%(total)s`.\n" +"Вот следующие песни %(per_page)s , начинающиеся с #%(start)s\n\n" +"%(tracks)s" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "Песни в очереди" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "Поиск и удаление сообщений и команд бота из текстового канала.\n" +"При необходимости поставьте количество сообщений для поиска, 50 по умолчанию 500 макс.\n" +"Эта команда может быть медленной, если указаны большие диапазоны.\n" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "Неверный параметр. Укажите количество сообщений для поиска." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Нельзя использовать очистку в приватном ЛС канале." + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "Очищено %(number)s сообщение(ов)." + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "Бот не имеет разрешения на управление сообщениями." + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr "Сбросить отдельные URL плейлиста в файл." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "Указанный URL не является допустимым URL." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Не удалось извлечь информацию из входного url\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "Похоже, что это не плейлист." + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "Вот дамп плейлиста для: %(url)s" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "Ваш идентификатор пользователя: `%(id)s`" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "ID пользователя для `%(username)s`: `%(id)s`" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "Допустимые категории: %(cats)s" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "Ниже приведены идентификаторы ваших запросов:" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permissions of the mentioned user." +msgstr "Получить список разрешений, или разрешения упомянутого пользователя." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "Неверный ID пользователя или имя сервера, проверьте ID и повторите попытку." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Не удалось определить пользователя discord. Попробуйте еще раз." + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Права доступа к командам в %(server)s :\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Разрешения команд для %(username)s в %(server)s :\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr "" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr " Перезагружает права доступа из файла permissions.ini.\n" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr "" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr " Удалить существующую группу.\n" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr " Показать текст справки для опции разрешения.\n" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr "" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr " Сохранить группу прав доступа в файл.\n" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr " Установка значения прав доступа для группы.\n" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "Управление конфигурацией permissions.ini из дистрибутива." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Права доступа не могут использовать каналы и упоминания пользователей одновременно." + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "Права доступа успешно перезагружены из файла!" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Не удается перезагрузить разрешения из-за ошибки:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "## Доступные группы:\n" +"%(groups)s\n" +"## Доступные параметры:\n" +"%(options)s\n" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Вы должны указать название группы или опции для этой команды." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Вы должны указать группу, опцию и значение для этой команды." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "Субкоманда %(option)s требует имя группы и прав доступа." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "Группа `%(group)s` недоступна.\n" +"Доступные группы: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "Разрешение `%(option)s` недоступно." + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "Это право может быть установлено только редактированием файла разрешений." + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "По умолчанию это разрешение установлено в: `%(value)s`" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Разрешение:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Невозможно добавить группу `%(group)s`, она уже существует." + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "Успешно добавлена новая группа: `%(group)s`\n" +"Теперь вы можете изменить права доступа с: `setperms set %(group)s`\n" +"Убедитесь, что новая группа сохранена в: `setperms save %(group)s`" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Невозможно удалить встроенную группу." + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "Удалена группа: `%(group)s`\n" +"Не забудьте сохранить это изменение с: `setperms save %(group)s`" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "Группа владельцев не редактируется." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Не удалось сохранить группу: `%(group)s`" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "Группа успешно сохранена: `%(group)s`" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Разрешение:** `%(permission)s`\n" +"Текущее значение: `%(loaded)s`\n" +"INI значение файла: `%(ini)s`" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Разрешение `%(option)s` не было обновлено!" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "Разрешение `%(permission)sбыло обновлено для этой сессии.\n" +"Чтобы сохранить изменение, используйте `setperms сохранить %(section)s %(option)s`" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Не удалось изменить имя пользователя. Вы изменили имена слишком много раз?\n" +"Запомнить, что изменения имени ограничены дважды в час.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Не удалось изменить имя пользователя из-за ошибки: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "Установить имя бота в `%(name)s`" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "Изменить псевдоним MusicBot." + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Невозможно изменить никнейм: нет разрешения." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Не удалось задать псевдоним из-за ошибки: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "Установите ник бота в `%(nick)s`" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr " Установите префикс команд для каждого сервера." + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr " Очистить префикс команды для каждого сервера." + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "Переопределить префикс команд по умолчанию на сервере.\n" +"Сначала должен быть включен параметр EnablePrefixPerGuild" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Пользовательские эмодзи должны быть с этого сервера, чтобы использовать в качестве префикса." + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "Префикс команд сервера очищен." + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "Теперь префикс команд сервера: %(prefix)s" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Префикс на сервер не включен!\n" +"Используйте команду конфигурации для обновления префикса." + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "Вы должны указать URL или прикрепить файл." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Невозможно изменить аватар из-за ошибки: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "Изменил аватар бота." + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "Принудительно отключиться от сервера discord." + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "Отключен от сервера`%(guild)s`" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "Отсоединил голосового клиента без проигрывателя? [BUG]" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Сейчас не подключен к серверу`%(guild)s`" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr " Попытка перезагрузки без перезапуска процесса. Параметр по умолчанию.\n" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr " Попытка перезапустить весь процесс MusicBot, перезагрузка всего.\n" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr " Полный перезапуск, но попытаться обновить pip пакеты перед перезагрузкой.\n" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr " Полный перезапуск, но сначала обновите исходный код MusicBot.\n" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr " Попытка обновить все зависимости и исходный код перед полной перезагрузкой.\n" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "Попытки перезапустить MusicBot несколькими способами.\n" +"Если опция не указана, то будет подразумеваться перезапуск `soft`.\n" +"Он может быть использован для удаленного обновления MusicBot, но должен использоваться с осторожностью.\n" +"Если у вас есть менеджер служб, мы рекомендуем использовать его вместо этой команды для перезапуска.\n" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Недопустимый параметр, используйте один из: мягкий, полный, обновление, uppip, или upgit" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "%(emoji)s перезапуск текущего экземпляра..." + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "%(emoji)s Перезапуск бота..." + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "%(emoji)s попытается обновить необходимые pip пакеты и перезапустить бот..." + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "%(emoji)s попытается обновить бот-код git и перезапустить бот..." + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "%(emoji)s попытается обновить всё и перезапустить бот..." + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "Отсоединитесь от всех голосовых каналов и закройте процесс MusicBot." + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr " Оставить сервер discord, заданный по имени или ID сервера." + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Вы должны указать ID или имя." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "Не найдено ни одной гильдии с ID или именем `%(input)s`" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "Неизвестен" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "Слева от гильдии: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "Команда, используемая для тестирования. Она печатает список команд, которые могут быть проверены набором тестов." + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "Эта команда выпускает журнал на уровне CRITICAL, но ничего не делает.\n" +"Может использоваться для закрепления событий вручную в файле журнала MusicBot.\n" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "Логированная точка останова с ID: %(uuid)s" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr " Просмотр ограниченного вывода objgraph.show_growth().\n" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr " Просмотр наиболее распространенных типов утечек объектов.\n" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr " Оценить заданную функцию и аргументы на обджграфе.\n" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "Взаимодействовать с objgraph, если он установлен, для получения понимания использования памяти.\n" +"Вы можете передать произвольный метод с аргументами (но без пробелов!), которые являются членами objgraph.\n" +"Поскольку этот метод вычисляет произвольный код, он считается опасным, как команда отладки.\n" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Не удалось импортировать `objgraph`, он установлен?" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Не удалось выполнить отладочный код:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "Создайте «markdown» для опций, разрешений или команд из кода.\n" +"Вывод используется для обновления страниц GitHub и, таким образом, не подходит для нормального использования ссылок." + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "Подкоманда должна быть одной из %(options)s" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "Делает INI-файлы по умолчанию." + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "Запрошенный INI-файл сохранен на диск. Проверьте" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Не удалось найти исполняемый файл git." + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "В ветке `%(branch)s` нет обновлений." + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "Новые коммиты доступны в удаленной ветке `%(branch)s`." + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "Ошибка при проверке, смотрите журналы для подробностей." + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "Обновление для `%(name)s` до версии: `%(version)s`\n" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "Обновления для зависимостей не найдены." + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "Доступны для скачивания обновления MusicBot." + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "MusicBot полностью актуальен!" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "%(status)s\n\n" +"**Обновления исходного кода:**\n" +"%(git_status)s\n\n" +"**Обновления зависимости:**\n" +"%(pip_status)s" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "Отображает время загрузки MusicBot или время с момента последнего запуска/перезапуска." + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "%(name)s был онлайн для `%(time)s`" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "Отображение информации о задержках для API Discord и всех подключенных голосовых клиентов." + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) в регионе: `%(region)s`\n" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "**Задержка API:** `%(delay).0f ms`\n" +"**Задержка голосового клиента:**\n" +"%(voices)s" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "Отображение задержки API и задержки голоса при подключении MusicBot." + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "авто" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Среднее) в регионе `%(region)s" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "**Задержка API:** `%(delay).0f ms`%(voice)s" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "Отображать номер версии MusicBot в чате." + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "https://github.com/Just-Some-Bots/MusicBot\n" +"Текущая версия: `%(version)s`" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr " Обновите файл cookies.txt, используя файл cookies.txt." + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr " Включение или отключение файла cookies.txt без его удаления." + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookies уже включены." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Cookies должны быть загружены для включения. (issing cookies файл.)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Не удалось включить куки из-за ошибки: %(raw_error)s" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "Cookies были включены." + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Не удалось переименовать файл cookies из-за ошибки: %(raw_error)s\n" +"Cookies временно отключены и будут повторно включены при следующем перезапуске." + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "Cookies были отключены." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "Не найдено приложенных загрузок, попробуйте еще раз при загрузке файла cookie." + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Ошибка при загрузке файла cookie с дискода: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Не удалось сохранить куки на диске: %(raw_error)s" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "Cookies загружены и включены." + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "Вы не можете использовать этого бота в личных сообщениях." + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Эта команда не разрешена для вашей группы прав: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Эта команда требует, чтобы вы были в голосовом канале." + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "**Команда:** %(name)s" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "Ошибка исключения" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "**Пример с префиксом:**\n" +"%(prefix)s`%(command)s ...`\n" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "Нет описания.\n" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "Использование не дано." + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "**Пример использования:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Описание:**\n" +"%(desc)s" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "Выход голосового канала %(channel)s из-за неактивности." + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "Левый `%(guild)s` из-за отсутствия владельца бота в нем." + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "Укажите свой собственный идентификатор клиента Spotify для включения MusicBot для взаимодействия с Spotify API.\n" +"MusicBot попытается использовать API веб-плеера (гостевого режима), если здесь ничего не установлено.\n" +"Использование собственных учетных данных API увеличивает лимиты использования, чем в гостевом режиме." + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "" + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "" + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "" + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "" + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "Префикс команды — как должны начинаться все команды MusicBot в сообщениях Discord.\n" +"E.g., если вы установите это значение * команда игры триггер при *воспроизведении ..." + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "Включить использование команд с @[YourBotNameHere]\n" +"Префикс CommandPrefix все еще доступен, но может быть заменен на @ упоминание." + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "Номера идентификаторов текстовых каналов, которые MusicBot должен использовать только для команд.\n" +"Это может содержать идентификаторы каналов в нескольких серверах.\n" +"Используйте пробелы для разделения нескольких ID.\n" +"Все каналы используются, если это не установлено." + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "Разрешить ответы во всех каналах, в то время как для сервера не установлен определенный канал.\n" +"Используется только когда BindToChannels отсутствует ID для сервера." + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "" + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "MusicBot будет пытаться отправить сейчас воспроизведение записей непосредственно участнику, который запросил песню вместо размещения в канале сервера." + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "Отключать теперь воспроизведение сообщений о песнях, воспроизведенных с автоплейлиста." + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "Вынуждает MusicBot использовать определенный канал для отправки сейчас воспроизводимых сообщений.\n" +"Только один идентификатор текстового канала может быть использован на сервере." + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "Музыкабот автоматически удалит сейчас воспроизводимые сообщения." + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "" + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "" + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "" + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "Этот процент слушателей в голосе должен проголосовать за пропуск.\n" +"Если SkipsRequired меньше, чем вычисляемое значение, он будет использован.\n" +"Вы можете установить это значение от 0 до 1, или 0% до 100%." + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "Разрешить Музыкаботу сохранять загруженный носитель или удалять его прямо сейчас." + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "Если включено SaveVideos, установите ограничение на количество памяти." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "Если SaveVideos включен, установите ограничение на время хранения файлов." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "Если SaveVideos включен, никогда не очищать автоплейлисты из кэша вне зависимости от ограничений." + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "Упоминает пользователя, который добавил песню во время ее воспроизведения." + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "Автоматически присоединяйтесь к владельцу, если он находится в доступном голосовом канале при запуске бота." + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "Включите MusicBot для автоматического воспроизведения музыки из автоплейлиста, когда очередь пуста." + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "Перемешает автоплейлист дорожек перед их воспроизведением." + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "Включить автоматическое пропуск треков в списке автовоспроизведения, когда пользователь играет новую песню.\n" +"Это применимо только к текущей песне, если она была добавлена автоматическим плейлистом." + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song block list." +msgstr "Удалить песни из автоплейлиста, если они находятся в списке блоков песни." + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "" + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "Автоматическое удаление правильных команд после задержки." + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "" + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "" + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "Разрешить MusicBot сохранять очередь песен, так что песни в очереди будут перезапущены." + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "Включите MusicBot, чтобы загрузить следующую песню в очереди во время воспроизведения.\n" +"В настоящее время эта опция не применяется к автоматическому плейлисту или трекам, добавленным в пустую очередь." + +#: musicbot/config.py:550 +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "" + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "Если включено, сообщения о состоянии будут сообщать о приостановленных игроках." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "Если включено, MusicBot сохранит заголовок трека в: data/[Server ID]/current.txt" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "Позволить участнику, который попросил пропустить песню, обходить голоса." + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "Пытается использовать ffmpeg для нормализации громкости для использования в воспроизведении.\n" +"Эта опция может привести к задержке между воспроизведением песни, так как трек должен обрабатываться." + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr "Разрешить MusicBot форматировать свои сообщения как вставки." + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "Количество записей для показа на страницу при использовании команды q в списке очереди." + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." +msgstr "Включите MusicBot, чтобы автоматически удалить невоспроизводимые записи из автоплейлиста." + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "Отображать настройки MusicBot в журналах при запуске." + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "Разрешить пользователям с правом InstaSkip пропускать пропуск голосования и пропускать пропуска." + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "Если включено, MusicBot оставит серверы, если владелец не находится в их списке участников." + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "Если включено, MusicBot позволит командам иметь несколько имён используя данные: config/aliases.json" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "" + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "Полностью удалить нижний колонтитул с вставки." + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "Музыкальный робот автоматически отключается при входе в голосовой канал." + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "Если этот параметр включен, MusicBot покинет голосовой канал, когда пользователи не слушают,\n" +"после ожидания периода, установленного в опции LeaveInactiveVCTimeOut,\n" +"Слушатели являются участниками каналов, за исключением ботов, которые не являются глухими." + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "Установить период времени ожидания перед выходом из неактивного голосового канала.\n" +"Вы можете установить это количество секунд или фразы: 4 часа" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "Если включено, MusicBot сразу же покинет канал, когда очередь песен пуста." + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "При паузе или больше не играть, подождите это время, затем оставьте голос.\n" +"Вы можете установить это количество секунд фразы, например, 15 минут\n" +"Установите 0, чтобы отключить оставление таким образом." + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "Если этот параметр включен, пользователи должны указывать выбор результатов поиска, отправляя сообщение вместо реакции." + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "Устанавливает количество результатов поиска по умолчанию при использовании команды поиска без определенного числа." + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "Разрешить MusicBot сохранять префикс для каждого сервера и включать команду setprefix." + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "Если включено, и несколько членов добавляют песни, MusicBot организует воспроизведение для одной песни на одного участника." + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "Разрешить MusicBot использовать временные пинги для обнаружения перебоев в сети и ее доступности.\n" +"Это может быть полезно, если бот подключён к каналу или играет музыку 24/7.\n" +"MusicBot должен быть перезапущен, чтобы включить сетевое тестирование.\n" +"По умолчанию это отключено." + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "Включить сохранение всех треков, исполняемых MusicBot в глобальный файл плейлиста: %(filename)s\n" +"Это будет содержать все песни со всех серверов." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "Включить сохранение треков на сервере в файл плейлиста: %(basename)s[ID сервера]%(ext)s" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "Включить воспроизведение локальных медиа-файлов с помощью команды воспроизведения.\n" +"При включении пользователи могут использовать: `play file://path/to/file. xt`\n" +"для воспроизведения файлов из локального пути MediaFileDirectory." + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "Разрешить Музыкаботу автоматически освобождать от паузы при использовании воспроизведения команд." + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "Экспериментальные настройки HTTP/HTTPS прокси для использования с ytdlp медиа-загрузчиком.\n" +"Значение, установленное здесь, передано `ytdlp --proxy` и aiohttp проверка заголовка.\n" +"Оставьте пустым для отключения." + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "Экспериментальная опция для установки статического заголовка User-Agent в yt-dlp.\n" +"Обычно yt-dlp не рекомендуется изменять строку UA.\n" +"Примеры того, что вы можете разместить здесь, смотрите следующие две ссылки:\n" +" https://developer. ozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Оставьте пустым для использования по умолчанию, динамически сгенерированных UA строк." + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "Экспериментальная опция для включения yt-dlp для использования учетной записи YouTube через OAuth2.\n" +"При включении вы должны использовать сгенерированный URL и код для авторизации учетной записи.\n" +"Токен авторизации затем хранится в файле `%(oauthfile)s`.\n" +"Эта опция не должна использоваться при включении cookies.\n" +"Использование лицевого аккаунта не может быть рекомендовано.\n" +"Установите Да, чтобы включить или запретить отключение." + +#: musicbot/config.py:920 +msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "" + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "Вкл/Выкл функцию блокировки списка, не очищая список блоков." + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "Необязательный путь к файлу с текстовым файлом, в котором перечислены ID пользователя Discord по одному в строке." + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "Включить функцию списка блоков песни, не очищая список блоков." + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "Необязательный путь к текстовому файлу, в котором перечислены URL, слова или фразы по одному на строке.\n" +"Название или URL песни, содержащие любую строку в списке, будут заблокированы." + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "Необязательный путь к папке, содержащей файлы автоматического воспроизведения.\n" +"Каждый файл должен содержать список доступных для воспроизведения URL или терминов, по одному треку в строке." + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "Необязательный путь к папке, в которой могут храниться файлы воспроизведения.\n" +"Все файлы и подкаталоги могут быть доступны с помощью 'file://' в качестве протокола.\n" +"Пример: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "Необязательный путь к папке, где MusicBot будет хранить длинный и краткосрочный кэш для воспроизведения." + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "Настройка автоматического вращения лог файлов при перезапуске и ограничение количества сохраненных файлов.\n" +"Если отключено, каждый запуск заменяется только одним журналом и его содержимое.\n" +"Установите значение 0 для отключения. Максимально допустимое значение %(max)s." + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "Настройка формата даты в журнале, используемого при включенном LogsMaxKept.\n" +"Если оставить пустым, предупреждение регистрируется и вместо него будет использоваться значение по умолчанию.\n" +"Подробнее о кодах формата времени из таблиц и данных здесь:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "Потенциально снижает использование ЦП, но отключает управление громкостью и скоростью.\n" +"Эта опция также отключит опцию UseExperimentalEqualization." + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Ошибка при проверке параметров конфигурации.\n\n" +"Проблема:\n" +" Опция конфигурации AudioCachePath не может быть установлена из-за ошибки:\n" +" %(raw_error)s\n\n" +"Решение:\n" +" Двойная проверка правильности, доступный путь к каталогу." + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Ошибка поиска конфигурации.\n\n" +"Проблема:\n" +" Не удалось найти или создать файл конфигурации из-за ошибки:\n" +" %(raw_error)s\n\n" +"Решение:\n" +" Проверьте папку конфигурации и файлы существуют и могут быть прочитаны MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Ошибка загрузки конфигурации.\n\n" +"Проблема:\n" +" MusicBot не смог прочитать конфигурационный файл из-за ошибки:\n" +" %(raw_error)s\n\n" +"Решение:\n" +" Убедитесь, что файл доступен и ошибки бесплатны.\n" +" Скопируйте файл примера из репозитория, если все остальное не удалось." + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Ошибка загрузки значения конфигурации.\n\n" +"Проблема:\n" +" ID владельца в [%(section)s] > %(option)s недопустим.\n\n" +"Решение:\n" +" Установите %(option)s на числовой ID или установите его в `auto` или `0` для автоматической привязки владельца." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Ошибка загрузки значения конфигурации.\n\n" +"Проблема:\n" +" Параметр конфигурации [%(section)s] > %(option)s не является допустимым местоположением файла.\n\n" +"Решение:\n" +" Проверьте настройки пути и убедитесь, что файл существует и доступен для MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Ошибка загрузки значения конфигурации.\n\n" +"Проблема:\n" +" Один из идентификаторов в опции [%(section)s] > %(option)s является недопустимым.\n\n" +"Решение:\n" +" Убедитесь, что все ID числовые и разделены только пробелами или запятыми." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD не имеет заголовков..." + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "Извлечение информации о треке не дало никаких данных." + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Невозможно продолжить извлечение. Цикл события закрыт." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "URL-адрес Spotify недействителен или не поддерживается." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Ошибка yt-dlp при загрузке данных: %(raw_error)s" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Невозможно провести некорректный URL-адрес." + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "Локальный медиа-файл не найден." + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Не удается загрузить ссылки Spotify, ошибка обработки типа %(type)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Загрузка не завершена из-за ошибки: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Загрузка не удалась из-за ошибки yt-dlp: %(raw_error)s" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Загрузка не удалась из-за необработанного исключения: %(raw_error)s" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Не удалось извлечь данные для запрошенного носителя." + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "Список названий команд, разделенных пробелами.\n" +"Не будет работать, если установлен CommandWhitelist!" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "Список имен команд, которые можно использовать только в голосовом канале с MusicBot.\n" +"Некоторые команды всегда требуют, чтобы пользователь был в голосе, независимо от этого списка.\n" +"имена команд должны быть разделены пробелами." + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "" + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "Список ID участников Discord, которым предоставлены права доступа в эту группу.\n" +"Эта опция переопределяет Гранты Роли." + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "Максимальная длина песни в секундах. Значение 0 означает неограниченное.\n" +"Это разрешение не может быть исполнено, если продолжительность песни недоступна." + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "Максимальное количество элементов, которые могут быть возвращены при поиске." + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "Разрешить пользователям добавлять в очередь плейлисты или несколько песен сразу." + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "Разрешить пользователям пропускать без голосования, если включена опция LegacySkip." + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "Позволяет пользователю пропустить циклическую песню." + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "" + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "Пропускать песни, добавленные пользователями, которые не являются голосовыми при воспроизведении их песни." + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "Позволяет пользователю добавлять песни в очередь, когда включен режим Караоке." + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "Автоматический вызов голосового канала пользователя при использовании команд воспроизведения, если бот уже не в голосе.\n" +"Команда вызова все еще должна быть разрешена для этой группы!" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "Укажите имена экстракторов yt-dlp, разделенные пробелами, которые разрешены к использованию.\n" +"При пустых словах используются значения по умолчанию. По умолчанию отображаются выше, но могут меняться между версиями.\n" +"Чтобы разрешить все экстракторы, добавьте `%(allow_all)s` без кавычек в список.\n\n" +"Сервисы/экстракторы поддерживаемые yt-dlp перечислены здесь:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites. d \n\n" +"MusicBot также предоставляет один пользовательский сервис `spotify:musicbot`, чтобы включить или отключить извлечение Spotify API.\n" +"ЗАМЕЧАНИЕ: MusicBot может не поддерживать все сервисы yt-dlp!\n" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Не удалось извлечь информацию" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "Это плейлист." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Недопустимый тип содержимого `%(type)s` для URL: %(url)s" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "нет длительности данных" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "нет данных о продолжительности в текущей записи" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Недопустимые track_data, должны быть типа `track` получен `%(type)s`" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Нет статуса ответа: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "Ответ JSON не декодировал немного!" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Не удалось сделать GET по URL: %(url)s Причина: %(raw_error)s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Не удалось сделать POST по URL: %(url)s Причина: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Не удалось получить токен гостя из Spotify, попробуйте указать ID клиента и секретный ключ клиента" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "Ответ API не содержит ожидаемых данных. Отсутствует ключ: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "Ответ API содержит неожиданные данные.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Запрашиваемый токен из Spotify, не получается" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "Неправильный статус ответа от API: [%(status)s] %(reason)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Только владелец может использовать эту команду." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Только пользователи dev могут использовать эту команду." + diff --git a/i18n/sv_SE/LC_MESSAGES/musicbot_logs.mo b/i18n/sv_SE/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..851afcaaaa09672276b5032ebfe9b5796f279610 GIT binary patch literal 110939 zcmdqKd4QZ%mG@t*4r-&XD7$P=0wLXyt|Y7>5R#CMK$a%mAuK|=y1TklbahozOOj@A z0T~r=+&9!wM?eKP6v1I!M$FF*QO5-x9Ti~!bwreLbkG^~{d~{4_o=74J0Uo~zg`r+ z{XBKobI(2J+;h*p&yQd5j5p`_XUWrZxx>L{yiiZM+@mM9@Ff2HCC_gJXY+6hcqe$U z-h;~WS10FkM}P^KfMhtaf_d;8;Pb&hfd_#5QHg$^11jGs z;DO+JQ1uLf&jGIjj|N`@s=kkd2Z8s1O7{S$a{mk-20s7PT<$2a2UPm?pnfj~+yS1z z^R?ii;HN>g=eyu6@E71A;ByzzXYg2XAvh1*1YQb~B=<3JCHQkt?aQB*%h9#mCh#2a zRiM&+8%)4`7khp4z%HIwgBp)2DEhn_JQn;^`29g}8PEHkp37;d)`8vN%fLC{t)S}v zXK)R8;2F6bLzTM()bks_XM;Zgmw^v~Dre3T@Bf7$P0zg=RQtaGo(=vSRJkXd$ryt> z_|I(cPEd6FJ_xCE&spm4SAb{nJOb+dE#UFsPr$iKx6Iph5~%V^py>H=Q0;vP+yWlD zJeOMmUJgRC+#R6$@hk9f@Kh>U5B7t{f$s(9fnNh>fqww$V(xGX5g%O$9tu{$Bf)FI zqreYyTEEW$A!%+EsCHfjYFusyHJ(2JmF@+rJl_f6e4hJ2(eve? z+W%?r2=I5|{Q;|;{_8<27hJ&aw}U<4L!jvP0y;ehJQLLWVNm1#29T!aJ`F0Jh^g_M z2ks9JfXl!JsC;*TB+dOBcr1AQT5r!LkS66OK>dCvSO@ec@GuP#Ez2Hrt`uAIqrswu&aOQ#+ff|>qL0BpGQBdRjOYmH9_6Db41?2y^*YKYg zf6XS zYF=FjD&LntmHQZ|@jmz>r}xr;W1#5xR#4-0A1FE=ad9s9Qt(1h?f*VF06qbV4i~=2 z>H8{>DVF;*sB$_kfv3TxU^n;)Q1$*8RD1Th)aQE-$dKh$fct`P24{hP4~jo`fv13- zTfKkF!2@{yYw!s0b>Ly(M*`jh9?tV4;rZzUKCVZBYR3uS67WT!=H=T#wfn~)ESfvI z;P30;GM+yPE(f0gnKHS>gZ}=Npvw6&cqX_H%%^c)1?v54!54yG12rFi28s`#I}BYr zC=*=7^NWkl4|jqm^Ze`)Z^u%QDUf?D_$=@zpy>T`@M!RmQFJ(X26!6yPEh^(E~s(N zZS(on4N5Lt2--XYmG0xC%(qrm?LMaRQR&KIYG2k|@vs-0JW;_KVNGr*sLYVVxO zd^|1&B_}4p1Hn&&&jh~(s@xxdbHU$%N_XU#mvb4Y_P;;i1EA6!R`zzR0GIMy1=atL zf-3*Vpyu~~g4T|4pC=cC|H%8Rz;Ap;Q02ZG zyjj14-vckM<#P9fC)T~5{bB0w@Vpkhl5sq;>GJO#+jF_E^Zv8o9pK;Y@b<3Q>HJ&+ zMdvq#=TCso{sNp2E_;dF z6BD4GZvyxO)vHKT>&1-^DW>B;4Ux$e+Mev!7uaqvlLv+^GiUby9>Ms zd=yms*IecEWE?z+=g)!4|6A~d;1Li-&x=5%9{^{8uK=yzU>DEd09F1Ipy+-4%bm}9 z!83Ti5>)wjfoFn`flA+Vjmzf&P~%nujjo`6{{Z-Q@L$2j;P$`q@;?Ti%=33awdXmn zaCwpsH~}8b`;UXiDjf)`<^BkYZkNB(<=pk4#^n}J^Wcl1>isQvJlORr?|(liy>KO{ z_iqAK@8>{``-7nR_rh!ac_Wzc{7P^(_yO>A@T=kXXI|%Wc`0}r@6QEQ&fkFQ*JnVL z_Z#p)uz_;cY>?I zN5K`~iLZ0q0qXsyK#lLyUhj6o67VpduLqw6z8^dSybV;nUkBB$ec#}E?ig?(&)Y$x zHz@ji6+99AFHrqC{*5lD`@s1;zZevKKMbn;U7+~y0Z`>X^G!~l1QfltfQ!H@L8ZR~ zOu%o0qQifJ&jaVY+39dHD89KARDIjQW5M@<7l2;_H9p6_#rgF-P;_VpybV-+zW}?z zW8Uih+5qNxz5-N#ZvmHq_kzp8=f2J9zY#3({8sP;@b@4rn45P4YclXo@R=QqJ(EoR zTk{TVTb|3H=FjNgx!k-SJeB9WK+*qkP~)9{m$$bLp2hP=K+*kiQ0b0%H){d#B5;X* z2WNqgf*ZmA^B&iimx6l#Vo>?t4XXaHf*QA9fvWG|zjr#m2vm8m2D`v}zyms%FQD>2 z>qe)~N#G#QL!iq0B6ueF@8P-oCYQ(S!IOAD44wzx0L}t`0UiK8_hz5Jvq8PT6cpWG z7M^beRsI*k^UnkB`#zU1J)qK`18N+{!PCLFg5sNRgJ*-!c)#~+J*e@z9#nmw4bMLT z594|N5BPY@2gUcJ;2Q7-Q2h4*I2U{zyc9h27GLM=1efvrSy1W!465C0ZuM~(1ABPB z4(ta10bC6}2#RjqA9Ojf4HQ3r06Yr(7f|`00ABze`ypflcpCUp@LrH1&#n8g^Vy>T zpZ^h;1E+x7`TYv;67X?wDY)^Y!R`YkC%*=YZqK~U>stXH!}I0f+2C8iBf$Sv+40>ixZ79{dBSa=P#IdGaD~5zjY(D)(F9I`E0``>Ibm zpI!~B9XEh0z|Vl1XC43Gd~_zLajk;KgP#O7KK}-u4?g`ams=Nsi+J7%E&x9U>h}jh z@!M(t==m=O_viVQ;3?oc!uxN5YX6@=^=ILyeEtl8^LTzUsNX*iia&n~s$X+I?djHo z8sDoy)%$r+{XO(E-o6oVG0)e4;=g|a4+i)7tn=lOp!oZ2Q1wiJhk-YOs^_0TrGFSa z6#OH2DtPcedHXhk13X^|YP^309s%z2IiIJ;fXcrHJP6zh9s+I;&#whFp6>(I|L+8R z`rTpt!NYk!0IL5l2Gy>Qf-3huQ04tH{JziUT~93nm+-y}9tYkE9;@`A+VMZ2+PVKO z=Yxfy>fa2i{A)nb<5qAf_@nTA#Q*2z^nwZRcYy1`w}GnX5m4js{4aQWw}Il1w}Tgg z-v%|VJzwkAoY)uYkvZhkV(`a|t+? z=TT7gz7`byz6_oLJ`Ae<*mW@_TJ;=ybUby{7q2xp7>R4 zfADH>HTW2)dQZOB%fAHF^L5~C@Z;b{@IJ5$obxqr?*?!=&pSbl*FS>uz$d^2obz?( zgVmt=*#K_wZp6cpcI3yQx!1zrI@0vmA`;%(q_z)yf@f_H-lfVqElIv)tC-U~p{1jScP@C@)>pz{4IsPxH?1HXf(@_Zer{GSJ}1Rn)O=hFSI z&)xwl-_bvD{@(;@K3*U2pFr{TZ^H9I4|x6OfT!`k4yyhSgPK?W0WJp*dC>XwB5)bc z?*bF>e()$T_ixTG38?<`f>(o+p!o5B!2LR)<5npE8ug$H-odm_kst5UjW5tKML=E2a4Yh{iWwW9#sBS zpvo}*IsS`6kT2g&H--*)vvFDO7|F;2akE&`KJ$D&GXAajn6&d z{WJf=$NN<9T;30Y8^Di%r+|M1*MTSf#@E$XfoJmkx8UjEy`buQ)_?juIuq19+77C` z_kgPJQBd->`?qdKmcT_kzY5gvcY|vGpTK3{tlxS62f^cbej_M)em1;+7~I11LI36b ztAHo+{4Vek@LS-?;DRT-T_fNY{SK;}--YKRe(&vQf*Qw>bnnAd-neyf4>+!mFE#~ z75FYt{P7T|`g{Hu^f0J$-v)}V-vpKK`G4~FYr#`^z8Vz$?gGyM9|BJTXZ_jBKObDe z^E*M6_XBW$aQ|F~?Jv#+PvE%*t_N=h)&AdrM}bFmbQs?*1@-%zz`q6`1eb%CKCQ#r z^&U`s`Y+&7$caCJZ{hjKXLQ(j-2sYj`~Ovk_4j0OKF==!PX|8&_JaQoo(Z15Plv64 zuK?AKuY>1-kAW`)m$CRh0=yWM+?)iLg6{=S10Mv{-ou~OVf45R)cCy{6y5&;Tn7FL z6#bSy+xv4FsB|9!4+Xyf9t_?OicbFpsvXC5c9^`s61t?{w`C_)<{i-3qFn?*x1r&IgVA0&obt3S0(04Bh}9 zdtisn*Uy0yJpT|>`_>=SVfySPp!Dut;4<(};ETbf2YY>=0maWh1=a8U5ApUd16A(@ z;IqM7K+)-TP;&H}pvLczLp#ilJqJ9H=eL9E$8F$j@CV`fkD&6;eWBwj@cBFsflA*5 z)y{W==YS7|=lO^ExHmxY?Y-a{aG%4SA2)#gJiiXqe18~JIfozN^e%wn$M=AekN*K` zejIzG*Sj2C%<~xdGWhU)pz5ESbl84P4HO@J3)}=gZ_~?32bo&IT^1cU(ZhsEXM;znrUj?4U z`vGtTcq4c&_)}2hbK)H5iz~njczz3b5cn%lX`>BT|X%P{4lr#{3R&) zd;DCdQv(!#eH2^{{sfdfo!!-8cF`74{V9W@_uE0u&#!|&0sjR49=yN1BligS{o^`v zsEpj_j_=4l1b%9s&)4_#czK@#HGl5|?*e}dq6%^!&3D*7&xhvwJbm?oj@(aq|9SA8 zjN`2fU7oHvu_O0O-j~21gIi8=K04)O=lcmz_U8 zzjuJ*hr7UK;B!uOIkz5^-SN-h0QhHc8SNQZiH75AGpuT4)ezy z4EFGxfQ!Hl;QPT>g6h}&RZjQILCx#G2Q|Jw21S>S)lQGqpy=~jQ1kWQK)t^M+zkE^+ywTW=lDKQ{r)|;3_N#}%duC3 zhx7a}sQLV~KBwn?pxSv7D0z4V*ayBI)VMqhsy#34_j$D*6hB@Is$HJ})vw1u@y{Wf zeH=D}s;>lU++G1np4;K0Q?}h5PZf3E>}(g#ZMQ5;^%jPqTj!P%6I&Q&X*U0l2fk(RsTPM%J(oR z`gC37<5L00c>W})dXB!hBll)-Gk7KV3-HJe!WUlTba~|^9l3p;#(09F(?4u=`aKA$ z{Ra&=fAxam_iI7X=PRJ-`Dajkbwc^d+>`v*bEh0lXWf*sqOKN3*S%fJNO8lGPk@ZI2S-hUPpJs$u? zw|z@)Uz`i7+?RvrgP#ZW`=OWle7+DohUd3};_FX?vQK{nYCN7f=6t^#?B#hosP=v- zy#FzHEzkRxo!);3uIKr2@H}woxbxBL!C5?i4wQU(5EMP0U2%S23a;b%72sO%+u$kS z5mg_*eo*?b2JQ#G7yLW$cJMmzyb0I;KLk(Z`7M{b-uOBwe*FXZT5wsd!~A&v46fjL zb=~d5>p<0eKPdUp-Ee-m5|kdg3sk=z0X1(=YWleJgZuJa2XBKvUJ6QIF4*Dr_awNL z=lyp&pVvXntM`NAyYGUc$Nz-)M^AeDH-XZ7*MSLmC#doJ9w>Q}zrueX1T`;T18V%f z35rh7_-h}xlR)*W1Zv!G2Q`0w14=#|cBS)i13ZxD+rR|;BB=B~1($Xf zSAmifUj-!}eh#X<7hdDf%fLfH1^?D0wsns=a>~-tPhr z;rS<^+V%T@3tr`P7zM>Iw}UGG5%4JRuxp*)PY0!swt;H@8$rpzFM;CA--4pstn0%1 z2-G}zA1Jx^ZEy?tU!cn0c)ibqYe3QWAyE8r;H#ZZy`cJW7pU~V0M*arZ=F9c0@a?k zfNICxp!o1t;6dR0*Es!FgO~6;0GeC`mG1#i`JVGyFLyDhdDjTf?*P^Q`#_cZwAcB( zItvtE{0%q^-Uv!xKI`>9KE0sodj(hk9|B(mu6~2_={G>lw*%kk?N|aPJZ}rn*Mgdd zp8z!ucn$ciclbDMd8dzm1=Kjd8`SuG2V4&R8C3bp|IX#|4sadM_kyCsq3`nc zTmWhwz8DmLei(ci_yD*P9DKLe^L|k6{ufZ=@M}=xdB}UbzEeQ;e`mmd0AJ4Y6QJb9 zm4EN}Wl-fD@Ln%x9w;doH`=4?>u zcYuB1-QoR#?{|8w1V!I#LAC$O;7;&y@Ko@!4|L?N2j2^d?)h7M{$2`-FK+-fU%v>7 zF1cG>4ju!lJ(qwhz*hyl7nB^??}JYNGeDy^D7o-uP`^L@L(cE>L5n`sHsy$)Qhz;=`YTnm0$>=Hqe^sB+&A zO1^v_Ou%1*&jp|VF(3D%K#k{Oa9?mEnCo1ztvEDRs*ENh)mqY=7%nu5^`ucv);H^= zp|h%ugxABxiDG5ASQ#o6>-l^>*STS1|JoI+7I*enlhM-lVlvt287@yGg`uHh-EvP> zn>9UFo0Z1AWP7PzYAo(dk~#Ix{%yrdQmizJwWP7FR8I=c#Tq$f zrMs}&Otuv$drm#67l*2qVJmp3IzCY@Hj3@}@}0TP-bo6oBq!z<(UoRpIG-e&iaq5* zvof?z{Trk&^rZC0A~;;_+n&TukZnDmnSOXJ0Avq4S6v2#{q>wVg3-qT!-$o68b z4vm~Vyk2gUOG=e`qtH_yD@}xk^S;{CTcF~$7xbW9s;kZ}GBld??t0Qytqm7zdS!of z*So#kYENHtd|Y)|k5*L2#|xF=WTI9aDeVj|R~84Gqse+3FiW+vI8tbq8_D)+xjC-7 zhv&?pxIo?Ya7JOYSdY1@J1XUBVHo1ntCi7uvZGWkCxaSp@~j#kgq$Jix}w;i(6EHC z&hY%=_(Wqexx86y#x8oAQl&7|5I>&3qAhO)zMwwn*Ybnqh%t**M(GIK;Agi?yD5vBv1Yy))2hlbA8tR2?i;lJhc6?kg5*L)(&dJ|^mQ zU$Hy_xe6o2NccWRm1$Bd*0)v5!!*9D(j4y|hQyks%*;7m6UEvP4eHJ>7%_79O;j7D zkxAI1Q5>z=tO}j(vr$jReIUZiEwvJpX{cGNQAijHcx|Lq4y5g&j?reRJltKMKc{PG zTcJ`Zmb+;#Kh$%u=C(qeaf6b>Ov|AL1Ih~STvOKMYdFK#^W-?cS{f>@D3?@W zg-OZWu2{x-$&Ny)q2v^sne)`i=xD}QdnUx!bS|+r*<8pSciid%?HxYuI8BpbpUp#s zp>4%^3I7=yOUhL^OagAaT2tImxq*C1Bf==^WT%fL~0hu{)zEOE0^+&SSSL+lpvopZWs zg&kXqwOX|Xh1+rsmxd#;lpCgy)XC;f)|cuMZ^>A3Qk=5eqI~wNucH3Oa~CHUw?x7v zh?}ljvB0EM6QV#LlhEEdQK}V(=h2lBaU^w-;PR$k`t(ZHu0+-s5?anL%tY9a1`V5} z7^Kv(3CPqSnHtz^mS8H5qeLOlRqxg`pQxfOqzvFMepCtTszZhHYQ|XOBq_G4(x^>p zL{(6|Id~al^scKo39{=u^Ea__03PWS9 zPAJc4t=dEYkgHf5*YLtYVQyxqQ*S`paVb@&iK7o^M2b|f2{9`m{2dGFDl$S6i^{C&RH|&JP^N`dAtr9mmLxrAsv-6} znL}fcT@on$|4(ZPDXIj&+Q zZbTxPTFEeTbqFzU43k^lXh=@e209;vtO@62h4-GWn?fx$Cg&xC%|;@7Fvtxi)^-VU z<8m)Z)lrfeBq;OLf=tcF$z%c+mla^d8mH+@tnwsfbjH?%LL^V0+JLmRK{FP;*0Kqw zH?ui`dK@ldcr>;#JD3(?{-6jaL`12Gwo==(jFym9&2o8q#+;2tV#ARdHuVO&XBg^; zznBObFmweY7E~76L+X97i10TSKpxJ6pbcbCb%Y;fYVuR9I9}ae9Hw#EB5Y)<2mowu z6qQ6f)>KF2o%IG{b$jopU#5Ht#;U*7AKT@lX8*@b2 zXnZ$bsEt88SsKkc44au?CF$S{A=I`?H7S?IOUSc&5kdPTRa0vP6F;Rd#Fb$+btu}Z z(XHr zo5gwqV`x~S(3cSds0$1ksfWT~o#xC-#ch`l*l>4LF&d*_eT!_^?~?48XJ!Uz2AgPz z^S8d(e@utexqiGbA?Y+yE+LYbd*`~{B2IwIlZ|fhqHguHp}0dj5~UccN=pkPo)$Wf zj%`;Xsuk;9OXnu0V%ukkiYa1RCv$4n%3xteOH?v97<4{&8r4*6Ie}D@i~gY5BbAtQ zMxvCnw9=qjV5%5b{bc+jC-EL55kd5NzTh4N6d z?7C;1*J0I%pz_A?yDT9}#j0s+mC0?K&98Ga7Ta8zL512Vrh)z%+aVhvDN?aW%vcb`}MjWlp=oBEgmfz8*@t+$xn#+O0lx1NK?)|_0E;TwcA9RK)NY04)zFw;hQ20dJ;A49%pmc{ z+sUNBS|;YS@o!~}a}k~2Taz7LoWB8sX^j?gahP4wsMjpj(<;-P8EZ&G;tfiFg=J)c z1^daEI%Jr!SZrrwGp)pfC*Vo*i2kKYQ|laKB8=a8iCImo=c*GjM25;$+$(9f&E3QT zS2`4rf|mCth_=S2kp(g!^g@3k8_1X%rY3q-$k^I$tId=e1!R^`uon={m@5p^ZqrJR zXh_{PHKqQ@RkP>RXCu7=L#E01m>ONzS{$S)gLfr~dW6;J7&9zmt-2X%#!q8%LW}(_ zp>w;cHWrUG2(meFJUGbKr|on6TqXBCoiu`-H%jr~ey*l!fi0Wvhwxk4zA(qF1KFb?v?`Y?Md(ly0J}GwK5y9P)E=5%14$YOgA_)^^U|gFE zl;@2a$g`9hpk{ei%*&4jE+1yW9CWSnEIY)?G*13JbLus)T~M`h^_jI)&nFvw*}M+t z-}=JNb6G`uw^#V;s1)3{`q9WVjOG$r4z_%n*40uea(r$>t~yfwuX*@smvrEm7B6KqK%$f zk=73B?NGH$`%E^}Ckl8EVp#CPUCw#MVgUR2bWHli>blXA9>hUXj%N ziZ;BYx@;_OIt8|+mUd*9z^qW1&+NyHPhHa}b+%heXUMIo51VU1gF`l-tSr@oA(r;B zEoW>UB9|7he~@vmW7DHCf{v9H5dM@Q5Zdp%g5KP00vv2TW+;nr=G|M7-ArsbUyi4! z%r0Z7!Df1@=-owu)5<(bX?i>std+JgMWK%uOU2RFtl@z;L)`r=-zUwBLZca_#utQwh_KL4iYiM*8pHDU$ z-G;-KU`xz;3%w5aa%IfoBpr5fd7(_FDwMa~cb!A;;9c{Es*6mRi9$^~tV34tthfo{ z^UvOGwmofa&P6R`S*-Uh%h}t4MOS4Hm?7%Fpx?U`ceV0Ubmv4tJKfTl$VlJ+&UeP# zTA8VR3=iIPY!0p2#tW1767^Gexv96Jr+zVGh@rG?5|!ls@S)Hi6N~6&*rhnwGl&yd zqggBADv%s-Hl;f_V-TWd0IK9pD5PN?l)q=FAdWx{z=PVT;PqvKYM}#|aNonUu)Mt+`~ITLuJ7iq#g3?;foOSIK}*_N&9*NjTeoTX-X-ks z-Me(vkrAwwy-Vw{E>D)W$_z2rdh`~^?vHyvs^Zf4M+ zo}f>~yabrY2(k5gmIl14mNEM^O%oRQ2&S2SPE9Qti6*6jaj2cde3Xq$#_c6^PSj2@ zmztGLpP5AFrHYz?@uDkZd*FUc?(VrdAun3=xy%bngV4j}1xDIYiwzR?? z3lm`^*xRX%JcD#~=SOs+hMhMz6Ea(9#B8yZSGIt#wkDYCq&;^Y1>nMMrhPm(!c6+5 zZAB(nzVd`?unLvQ9axLB|KwEtYoU_L$e{I2S!D!vOI9;4w9V+gl@NxdD85$oCc!?G z*p_aMZ5Zw$nJ;a8Wy1m{WY)Yw*=f6LxQMM#lH@V`V3AzfZ0srV6#Sh0WnK#{fP+VK zxN${IlyKK>b70icd{5K1R0KsMAj@i^nv%SuT!dTsjH!U;NPhZ(ll3Qdlg5LlVd zvEU;5!<4Iq5ZN-u11-(03+rF920Mu?7F=b&)-dg@r$x-fuI}CZhTGkLQ=aJlo>rxY za)!7m=Mwl^)L*IiI#EB$xXde$SF#RFU0TJ=kqZ=?z-m}Qb2Qt%u&7aAYKpQ2UvTvr z3r)+-3S{P(u(0?wn~wD|vBgdk-{(?W(-!Pi8F2+|gncT71eaTA1Kafqpg~Q=0>!ZS z_{W+Pv-YY{Do?Z8ovg7G_dEKyWIEPo5k8__D_ZU;QRc}Ci1qKDEHjnx7t>^Sh3z## zFu48~)YxP0Cnv?U?0+#GW-Mv%h@dI!Mw2+tCUS_^UA#@B71F&# z+ThV(QM0j>(1eZac(^$f9D;w)YUa-h0=RtxMNWqH-`(#*p)tFhbaAbpXS*W?nqyT; z5Vc~*k*6M)2t^RBp+03fJ9y98kWx4W+fm_1`TU5jRrr8Jh8>$lIXX)^Up_#u z%G|veX>z8w$;cQ{B3ZxNjBzVNvVyg~7o(cvnltJswbLDfq|6lAn?|2Lm4-~o^%u9o zZR?i%&8hCY43IG_VO!g4a^KnBKkM)y^TPVqh@4v)jCK7nRH#|Z&3bJ}xvFs&NWpdh z+(=Ty05+DAy9+q_p`}}p%2c9&Z!Mx*X~c=rsvZe7IGNZ__)HYmtsubE)1M8iPr6p1 zmCX$g5{Z&r+_#urSKO*RU6LtZ)A{^NB)!`*V&^g2+G8j)oyxXeIop)0tjVxzVN*Ws zr>E3*sasZ=`q~NN3EACct2C2n&jrJPir-LPZDOYbY(*3PIchV6RSc(7%qJbqL#!J+ z_|av5V5hB2Q@f$3EI!}JvSbNQt(1Q3#McXM8Pq*|8nH$};pgbX94g@0%SglYcaIB& zT#_XxdXq!mkjI)bTpAfc^bmi`N~~B>0C#)Zus0xKTWeL{iuMnuonmlG*yj?1Wc_Dp zyW2NN3h`i8SXAy^CT$b4qhpcmY4Gur)aV;;7WKry&DxzqV@f-x^tx0*I@;+joiPae zi123Ew#qN$w3VL(!!frhxJ-7_r?5rsHLP+^bZ%9p-n63}nT3Pg=ct6%Z##-}wbSbU zz8Zc&X|^=jpLDh$k+yUz)f5WJFKloGZc{krv67fZtu~1e_5krE{k0HAfI#pal)RP2 zI$lP9yLHF_-rKSj2d5304C^0H&9U^tir!$Qc!o@~S$kMt3_)~>{z%QDLM z?sT5VcgfHh$(ax=6`-(6P{dP$Pi$_$0_-iSFx$amGq$D(ecz?37x569@1R=IMinRI zCfLHab7)31PIv8X)B9T%(O$LLry4Y1?ifp$3s=%~iiu{MI--dDwwi#pRF$z~E>z~f zn`2f;IP{`lp^KkhEwO^vbTH*f2<=nr6I_gm#$u1b*z+i;N7kPyJ?KMbWX6k@V1&eh zP{|k_k}DWD{5BvS;s8P|8CakQ8g@;2A=mU!IFhBvOJ>E)-Du~h*kx?h=yAu>68Bb} z?o$;JMsC}5Y#)yGa(TDYyq(Y@J#&n9bEM2nW;3!ifYGLINdUdoZdO7(jQF%z#50U{sY1+Hj@{yTyfI11Cho2#Em}6GeQ|saR9;u|J#X>BM$*f3~7xargV<<|@ z8c~@(k=}7^F)FYswUra*lPNR(LdaBj!1Mpm(NSa0tJt6c>)*e^DrID;J%YCk49 zHu8Pj2{_J0BDcb_bV|cFS#Xt0H7hD*M7U2!D#hqpxzZ^%?O2m&k((q6T&XXfKc8(f z&LQNH;PcPHaoN+yYP*Nwtj~}9Ilpb(fpXB{OYVqOtY%nHdXbm7YuYV9Hj7Z{Ro1bJFG6$TsN}$w+zr}7f-yx(lMRHD zo1nJBLSwurixt6vt1WZoi5?hLO{9Po5v975zyuwkhU{u7gehfJl$%*-s#Fr61Hl|^ zYbSnKAD{#?QT**m_EH?$@v#+J>GjHJXlIp{E<~h=X`Y&XSXpg~sXRQyXc$Zq=|MLD zu&(TomsuXIm_y%q&PtZO?9Php;3rc$7sVz{FU5|Ds(Vt|W<{Y20#UG@+*ES&%8Zk6 zAbNhL#M~;KZIyRBb4tUOh!(nPdRybhsZ$omjF}~`R<>$FP1;&$gy!iuy~UHdUTt;tTY2d2)- zl;8@?##Bjdd1T8tx{_AoiPG}IvO+6@bcI3c2`nI$(Y_Y2DX3!Q%L+>y$YH|U+_GfE z@K7)x(OzMfCY*Yo@Kf&$bacqNUL3cjtc8~;_>YZ5LVM|@I%elIUHyjrYAr$uW&IEERUVQPC{R(ifOYL@7qOV5wEgIe)T^>B;? zQ9xJX!isRR&Q-SX)v7EkAk*VPG@j|If%Cr1;K$GiS#N27>|Wh(;z;+SWQ3Kqk1jp$ zv2t=qKn06o9#lY(*&yjKX+xGfC334hJ~cH~aP<*=UaGXayj#6b?QBJ@GZxjXmr!EU z>;>0g3KB#F$w^{+#1fX0(AWk3i}Vx~x|y@vS*^)zf?C2T7UeZax-mIOA&WuoXEkAk zEvZzpypT=Amg`l*I!Z%q=rTVVj6_(Tdm332kr-#MTD}tMF|sHHRwzDbfl^rwZ1agz zfc2P@6`Q7pLS|xqC`6!FTM;3Z1;^|m89B94g8_&~p0HB36oMo-2|&m_kr?LF54s8ufcuq`i)t{Iesa#u}3=9lN zuI`ME5r1&M2*0%zYEv!l(;L6Wp=5?yYVzEvh)wiQZJz#%SvHKWgMk&uf+bRH5Y;ot_Uop)#t=Lk=jM@W?nMO1bw6%`gS zF=9d&1r9f-ReP^2*2m@RlnOJ!pkWFJ&bN&ihUZWG3KoA1~ggo{~mMZsvu+?_U3uI`YNw#620qn4jL+ zpE_JPr8*_^#Rv6}&i|ev;ZtKD3pWcSMiJYAk!dr_5(RlJO*=INt!?Z=v=p7PL)$Y3 zzQsLN@pXGNn$KE^fAXBr*PuMb?Ud57eDv5sSxTRK28}LUDuD zOEcxt4@Wt}SeGiLI)_BV0)P~HMnmWXuo&H&WUG%5ZGp>gb+rt~>t|_njipd0Q<=^o znaaghg%vHLCC)pmKEd$nO$_O38jGPK23 zvlOD|xVcZJC25g=H>V=kgfrVH9gD7zZQ++d$$#37%>*&=r)CP+re2ga7Q-kZrECrrX^xtBkGi! zo{mT(?mfW(GPgh&J$h3}BfO)BDipyi_G5h6v`jIx_5(lqr8&VoQfE^uj2*Phv35D! z?5t#acpLX#d&KBma#XnuQTxG z5E;}_GJa3}-MdN9tV~NnXe*($gqcVk&|2*^4|$Ag5XvC{Rs8CAe2Ocr{;o7kr5l%Q zg)5b?S(!S;+Pt7f3$`4yyX=s@FrMXG$DaD)@OPnsBZKHi`BwEeO(@BG-@4JqPLggZ z*fn@|;ZMlf=HXAb!Od49)nH@O*0+!kB3FtHh3(=+Na>LlVA9GDY`7KXZGMtmt}0rl zn`a8~){LujpDlMch2?HBdV>}xIr~B3!kR$71jor5PPWQ!J6mgc2qOyx3CN{LWV|$tgyE!scR{NB4weXJp-L zl9FZOQ#${Jd)z6*Hj3qL6ZxTS%CQ_HvgaJeDbDqI_R6o86%kUs5+<@!&>E`z8s~5w zQ?RV!pavgDt8tN!O@BwpqP=mu+Jsi`Ch7QOU6-zQ&Ee+TwBEMD+zT!N+@8oM0VGM! zg40iHar?C;Q~K0Wl&SC%nf96{w&g-il4NoYvW+-*PMvF%QhA2qF^cN9`w+~wCR9ng z-#bg=&2dJj!by161Xt+rsqQ^P8tM8~5nQUljfzY<{g9eHB4oJp(E`uc;c4Y65)V5d z<^mUW6A?38Ckl&|d1m3N08KL$Zzt|0W}@kfpos;BxT)aAY%SQ-7IS^mRKH)hshfm3 zP#dmxu}azHVE!sXVcf)s|AjniW%i2@#S$_Wg)$bE&8&oYUuMi;$|8i|=s>fZbMB#x zEul-cne1=lRS6iUv5-I-7yIF2O)77#I;JEHbdv>V8z{O?t6m+!?$aG`^RTMz)MLmTsYYK7_687XxUw44db#7Y6mkxQ3(wTQzNs@&z|)U_sfhX>pkg+Zf)aC+GQ z#GT4aZ}(V?ogWnc{%^~mL$$pwqcw7|f8Hs~a!j;67h{rjs}@%Ja%Hm1=UcHSed$5IEeis>>u(;H>E!H6ch3+s3tPj$ppbdv08}HIOzHRuV)m!#>=Vn_I^{6iV8r zOj=4OD1er@&68tLmc>xI>3KO>R!pC6r0S)m)t@U?el?U$ zPi(U!u8h)&s{QA18=-#n%U+BPLanJ`=-EAi;tq5id>vq0CLh&&j&6tt#Oj$!em z606+U=vPOI;-gy0m(Y1qs-s~=nht=i(LzJ9UV=$aoP*z2VlB{nRz~m=NBl7R;>F__ zp4xW_mZt4(?lHaZv}p@e$?Tg3rsYy|%Z5r?*#77y21RaV+i|t&r=Q{*#h`1Raxsdy zr^^aKYg2IB=5C0z4 z2+b>M8%7pE)WJEk1-9%Q0Q+(teB~&&^IqJTwCx zm3%*oDH_HXml#er1ivY`wzDX7OBXMihNP3oMCMGkgkWe&hVnHFb0xJMpJ?5{M^v218Z7F3XMcNqmf1U@97`xwVRvdVD3pQi%VtkoOJn?_ z8FwmM-BmD^e1WNLHDea0e#;n7N5$u)c9ip-=jkgDe!mu-)5VF}J`cONne}Se0k^Ea z$Wwb|x3#vxQ<2{qsFXYwBU?E3($qN1AS<_z&_s@Zn=m@X+n-Vk(Rdmo(jsD za{Kl7F??!9l7xm7l5j6Xw8SjLB}umEz)Ivq#u8e)1KlKo8bw%0CTKt_ABE7HgEqK; zTU?L&wwr6hl`XDX{G@yAdwr53$35D}KgQ5T4-=My88>mhb9w77B9uZfkWwFmnQ)R` z(iE;QXQV^eyc55|Lj|^f(ost<2h^fYtRS@r`-dU1`*<>;-~Du6+j?=tT3bxAM@$Lh zr>Sx)m72xoMl{DkB-hq{-7A5WQ{jWL8htxjp=D(3M4^mR))KG zTB+mdbdSh$S#6}U0KXv0jc0T}({A#$Hs&-?E5gw?`rGEM`O7m8M2Fh;f%^{LiAb;8;LgCWBhx9Ns2&#Wmf#p>6+u^EpYgk~1vdr4`9F@;f;thJj$ZCMp= zN`!GGN1*pK&Q8+Y<64U9MnkiHA{&J=XNY+c&4Ss5KJ%TmU`3{7+KJ@0jUdd}w(>J6 zdb#JV%2kfcvFv&MjEynnPC`1XYb&Oe7o6HbkGJunstZ5c%rPfbTMCFg%+gnf8RZ*^ zC#|Bz&{kO{t-L9_OC!_W%Zyj+vO~t@sZ+~BNlUIWOrhyflm*u0Vm6%{qd2pf!&_N{ zakR=>FL3axb-$V~1XPgfwurY3$7mDQ9LHQOp-)1w6VSFq4DJCL5;9!v0>f5q?(o(I zTezvvc{YlqRzlfheCSR3wSD@>d%09|yB6mx-v8qY-0s$~<3qkdX@l5nn;;tEHs-Lj zGGOBEHd-2oGh$lDwwvX7vx2vJw2&^EW@5up9$-Rcc=t1tD%_H>RNv5xH)co=3^n|! z;5L7Eh_sykdfnm4|y z(B2G*2<*&slW2n8x2NEe5>d0gQ&ao}_I)x6u^A`f6z}3yap`i%JCWB(?XGUo)F*$2 zIYJ66?n#nR@Saon?B8=5eLLYvQXqJyr`Qm-+59Fc+02mJPs8VP(|=S~GiSbclO)*J zeCIA>PshUe@||r~=r;?qN$=tb)=m_0NYX(f;6F-5N5fA3x(ReAIWOiKv~_6 z;Im)j(h?FYv^!&0yX`xz<*WnRTdp;sO+$CdO>s}CQ2#-!>t>AAEYa@g3oUF211aA8 zt}J0&$=CmCtvLYjHS(Ky+Z3YvX)rfb)*AD>X1f|MN+Y}VZRUJ?$`Kqv8VUR21wLei zQs%AsSlH}pEy3Br=D9oFr0-UX`L2!*df0}Co;d5#z2KJmO+kik(Ed3Ck~6QW53^^?WpgU;W&5^vwEREoM+b zD#aJ$;af=YYBQSJ7E6^W#YRZ8Kr-Ewi^%2CBKFRmms9+-RzQrbawkAvHCNLYxFVTWY zjh7X_r^1SrDp!+7$GZ|v6o|jq*&?x|ITpowjkHy10oh#>+jB3~bt?=eQ@pIVz4cy9 zSVXCRHi^s?5O>Pm1%_Vn9g5VoQz~ z+;wUNS&kqXp6+w2h3PBZkBP_LFl@J6v zuPVtpTxmOX)iGm<6erA0-VC;%f=j8jW|hzlei%-XYw@mJK#fKGiu7*Ya3iSE*8Em8 z=aExG8%};k1}@cw-?;Q>()z;C#y$_diw7lw?H-p{p>1l>HXI}zk=c>&+z7wac9iPu zmfDya|Dq;9vH*GbWIU&=MDBDTStSv@8Su8N=ste%ZKFlxxLnA^Bl z)t1sA1QYAt2EJuwe{{3C=){lGT|Lj1&O}T%{o{s%0_&tV`9ikhCPaSCc-qU{k$RAo z9a^`i{P|>s=fu+Uj)qn|wcH*?Z80FYCZ9^Z(JSZMD>LVnwV~ckZ6k8S>EG7FnA%I0 zyzxXbO|XE_|0=6lDIxG6SYwC2K&(*na3ZyiA7+!^a%va-N0Tybn<|KVNv-|9_%qJQ zAjx&ldutf@G}=bi_U65ucHS;bFXpqB;F0y1S=twLZeZ!g%#s{(m7Y!%m{T3HnV^|x z*Wi@d1!Usu*b>X}^q^oX=6{yH!0vfsNkP)dMT9){h2gn!uxkRxMA26=t23M(q*4Ci zS&v&pXRFmj{+;qp|pm1Bn-79_SL%s?Us_5nH$I)=UDA>7~Tna4qI(_lmgY?q2 ze@{4%5oJC_Kp^PjU#o^xfvh7;Zu?k5BwcP}x&=#hahlDKN+k87mZ4Tt>O@wYH9~Q~ zD81Nu#(1WZSS(r|wqw*J22kG*^Di1efAw54lRMmP4C9UPzFPMQY%-Hg4RgAi%0dH< zC`ObUH%6?i*=4qwMB@ z`GF>bp^t^fV!Ynn8PbQ(z;KHnEXUA`^RgMFI8`tW<)10*htz%0nd@EK8?QnOCeFq_ z^JeB}_^CHN=iz}QGo^_WGF-0Sx<#FjeOdTjrp9pOfDx9?Q{<7^Vs#qd8x4xEpUNE> z1#y6OOcah^V`ID*lUf;#D|#hsF{Is2i$3;XteCY1DPkzBT~yl*SxiDJA-*)SENq^xU#BNy86N_+|SXNQ{vIW;vun4uz zW_cv>D;l;BlDQ&9)AU%Y244#Rrh%=uyHOeVskPRop<$8TO#|$M3Hn5_=>>@x>cL0v z_u|C0WO`e2$iO0)i@o*DuMo=twb(58n;sqig#W417gO3*<5s zG8VL5BWkjbmNVhfj~Aohbq>Nm$p@2Lz>Up5JK~T(F}-_F=f8b2Y@J|XnLmMF<|}O$<`)3jPw8HVCXpAumDm861?1ZTBwBe=3rJg%ahjQ8DFlSTn ztJyIM-S_4Jy|axt;gEP2h@YEmNOn8{c#UE(<9JY}1@wFsf0{P5M~5`eTkG^Gk@KC0_Kw-}txRuV*um z@k%qn@gz=Ni$0}eo;~GfnV?GL!YqYTVw!Pr4HjOxtsE>ltcO8r!Ux5z9@Nh3aq4#J1$QA z`f+681XD9Z2CMgjAybObbYr*`JrJ@pFzQyzprQiTAPPZg+dZ?X8EgQF z+D*Yq;83o2(yhO(=60Xq*J$ZjYREK060@``{x&%gtBa<$%kb)Y=#R6=P}lV*#VmTW?H5ymaIU<7$=&D3ivS8Y+Jyb#frPUu%P zBD>vdY-1`Sq)|?@3lye-^zf5gzF;@~h-|Py@FJDm<3!{MXmZ*ouB~{a`kcb~aMhBG z!ME>1*f%T@wc5E*AgY>_*(0YNX_g(dEPPC2s`OwkOYyWZbZ{8=Y5ylZYo=X)#if|N zB$4EwdqyMZ(plSf>!wOIP?Hi)=B%PcyJCm<$3H5l4!ga;lBFl8((^Xv8N!;KmFo*D z1bLingCTXvNdJr#ix4P!0vDLI%P1QA)H#fn&$wT7+K!^ zgOwd`d`aKer4;ckYx~TSb8cjPII7S-n<0l*_S)6A&Cckpjw>Ig!NL<3$>P_H)utS^ zSMBojjI}@QtR{)1a3qo@0xt3DDN&DeY~Jk0WPo^SdwY8vZF1tZI-D$_(LG3SPN%2w+9rkFuQa8ijnk<{Fby4apb7#ZwqdA!4tv{dgVUr`=dFjADeC>LEeO=P9cUbAx&On1!_ij)h^?;C>=ajdGRaXlqYX+?>o zYB5!G`IBwvb)1O^2@7lM3Rb4Aq5W_=pIPyWd`INoXGch`}0*=C#krgMk>-HC) z?6GuqYFP)ltwxQ0{2n3iynQ}VmpqXn*hT(>V+p?CqE?(z1Qm);8dMxuElm}-nlmLh zImllaA1sYFIn0=z_>G!Mo>n);w5b|e>ibD8t7ur~NnlY`n-#8Bl_hqnhPf4Yw7s;9 zJlc!Cn@qILS`ntDor8xY6d5g;V46E)yB+FN(^oO3$Ffe2me)Gy3t8t(L@eDoU6x0m zAI#_!d*=+{<}F=}p=2`uO%7P+y=7i6iGl=MPMC-8r3t>&U=*m6QM}ADE|Mg7SC45h z2-U9ULZp^%de9(DQ*#=LIFQQhV;Xd1JBwN1aLVj4*KYaS;?mSlZ5K;}+1s<^0PESNnkW^_1J zqLf`oKgEZ<^|+j%2PIB52z-G`c2tydwx?(URAU-6i|TZDu1V|hA}avnGV_bdu4GGH zg(3W48o$ItU4R~`Eb!`RPjv^irHtB|ikVyXq9AN9A~h{E^3s6nBK@^>q%1=G#HQA% zHZ>(O-@)_?f;7EC+ekO(}-t>(EKK4?`iw_bMrDF9t@E zvq5tzQ(a6cO3CJ&IVENVdmfCgFMi`Tp9q$_!zfDvZxcnyIA9B zLqUEL!g)GHI{4X+h}*OsA+}W7UYF&nMe9pL#K!3;%Bo>_h+5aK!e5Rq(=D$aiLhhkrB;!b9lM$cMoYZ*R*O*d3qTe8Fq|p2n|?Lg~R)~&8?$CvZ;|Z z+i`cKu?FVMrMM{<+)m3CZx30F0LUE8$!E&16&0r*KO7i>4@9|^3FWozwysb@Z^knj ziqT%O-TpBxFP&=tQkYA%LinJwE&}MT+5KK<&+IqLHc$V^SX7+%!SR!k=>T8(~mdYX^hBT7l?y9u_rw7pu!)oikj5sLCi3vX@g z_^;h{mQcf&G0PQi(QS(r-`k15=R402<3djYc~WA8Y{q9{yyZaz1847&a$U_D!IVn>=cfmVxGuWl%FYv-~i< zl+3SU2J(e%g!On>)>R2)JGaQe@95-7ZARpM)@5HM?h=BkYJ$XB+^dSQ~; zk6|&bY^pMMynW$9e2*YVzj9$k;HpD`vsDpV#FR#y74yNYQkfoHl}Q~Ix*;i&C446% zZn@>Q6mSzW4`jT=uok8l0?yBjdO{Y=>RvW+aCgW>W?r$j(3$voJdIBHA#=@~??Rd` zj9%s~QZ-C)bb6VQ8RB~dd@^B7LdLXpo1-yKQQx7Y21F&^rm~wN?bokjA;@NOnbp42 zYSK>f$nKupVu7yMA2zZg$#(Pe#3NzB>!H1uDz-o#Zn1!jh-#tZ^qh)w0I7)+vIyc>tw;xLuC z?Fmz^)*P~)vg)AsGR9QV6gSr_t3^C1nQAtr)^yHZT3`Csu%=!VC0KN_>5}|>PsI&h zu@FtG5UQm<_}&Ey8|h;kKkoDN22-b!yZ-_fkE<06vDGh(uB!FXN|zWS3e!gk%s_1k z8g-ajkybjmD25}9g1(5Pd28X`%F0DD>Bff=npvH!dO6n09r_D^ru-&M(S!Hc`QjcA&^0wn%<~JGM}?nvE9cPuMRLS9@N2>z!q393b_sb z3B-$^*?lbO#w^h?w(K5O%uOR|Ql48?d_BDm&)#Vdy=Arge&GB!G&qr1$+ z3l`kSC~8N?1_rldK6mj-PXC?N9K8g~!Mv>ToRJP1A~)CqC65R4VGUzM=W{4Jg)zo; zYHKqid=$myUoJXWTB|=fF8xD8?wU0JxUa+WY4VimTCQ7DXKlq8&*#Eb6foS5o-o1V zLMmKSt?j4iqd`@%0?6msWNQ*{H81p%DO!N5C!okvaC_>v( zR7khRrf2PNPr4Rj8loCXLyR+DqtdaLp7r(7(r^#MUGM3q+|J&O{XO=r0wR)nR-%>{ zCnqd8;iR603wstUN*0{D_~aA#W5EIv_G}_NT|wp3(=A-Ic;N}1>+ntX^oP&BA$({Pd)oS&^{DRIEeq};Wzg^#Lx92mwrON3R zkbn|fvbleC&!Sd3)ruFfXBA&Z6YUl!iv~*#?zL;y3gw>FoD#qq|~Jogveo zOS&q_tR>09?$bLjfDY9i`YAYWMTf~p7Fs2 z3p;b2eY@@)!yMsGT>gtcvj!y z&egl_G{Xe9Y`n2XIY)Qh3@=(499L~5V~h<~Ne>q5)M%e1t#>ZBOFE0gTJ9Drl>#vX zV~Q3*e9?sZSe5f$4lc0a zHcv@1io>}Ei!=M|l$#be(55q|rAxo=s7KtDDub6bX`W4`><<;Y&atd7wbw1jCd#G_ zlqp|+xu|c^?z&T_5XN->t1Z@4Kr3CfP}#ogCX65J%A8>wC{W!B>-XRV3ddLtJq|w% z*LU6AFxsl>?5{jIxwA(f)Ey1bh%85Kn`qOiN0xbLxz@AectePRRGe+*Z4di+9FikF zFVlGHqzf09R*8CPq3Bx7CcZ8nL-@&u5lT7NO&SEA9cT$}SCax3up^@7T{n%!)C@~y zxKJBLJxuC`>ft$aC^wD-qeKWKDT;A0HWY`;Y^^}|qzp|M&@t+R(sUJt!eH3Ytdca0 z{aUx{rg7MeP02)jGoQX&W=)LHypV*Wx?}i=lJi$gdCxUR39W{h?LSm@-9+3hB;yx` zo(BpKNp@XR9)|cCvTq3dQ%{z~V|XDg$9c4}F{V(5B-_oi8kBlSwuxy_NH$eD?Vp^x z>(202vpEi#__FV^T{o4t55tHd!P(V`iGnjG-oIUU*4duqr!G`)HyWE4k^?^1i7YF! zRK{tYUoc{W5#myMEV!~}lQdRrj^oxK#n&+Z_5?~cDU#K;kCO=nTOfEc`I^m1V_zEy ziV`1W!VmQve67ikY-;SfX=n^n5(O{fTC|T#D|SaL!bpqBJUKS0BT$0I!}6>e^$|I~ zBvRqXJabOWl9@bCY_Sb~2nv)a370)3C3hdWhw!-L*0Y^dp5)#MBngKel!r5-CMzt^ zdmc<^J>{M@DzQ-%Pi78ONph~LB;0givbEQoP|3DkH=BT+*mbj&>J7#UsS@ep_DYQc zM+@W7F>PMYHc1doId06Q&>&JY(^bH(J87PLTiRMGY#*#mYINFp zns#^t&Tu;qcG&ed4JJgr;Rjp96Lb&G-{+8fqAsMLs(NYkMc2OZXOgD4vNim#UZ!F zF#TufBe4;??&Nk$d45T%nw2V?$6Id8<$+8{;x>sh+HRWG9xizicr6W zJgg!aVk@f)@2{?{$&_K$^6lMnqcqAyQ;nJn)`~PY`;up>S@v^L(WX{h51mTw3}a}C z13o~enacuZ9PO|*^d8H1-VIGOxr)Fv$}cS_rsd3JP-wyBl@ zxh6F!Doxo(n)K=flH0z8kSTX+#(3Cmx7l;+u#^3$lh_ryNHvxVR1aCja)`_{NsYnf zU-;0M{N1>RN@dMPT@C^{b>KmtY~Tm!R(Jw?KDR>7TnREp#+CuDG}vWv4UCOJ#aKIp zyI_eU$f!{_Q(41$#^5(?na+@PcS)sWsJuiOYDaq$MkJxiRKa~jC_6=Ou%2POTSkGG z+vD}qMH()48mX~3GQMzw(M&e3a_8sq0{3KzHZpQl!ytPgx?Zwn12E&fT&K6%s0AC_ z@E8MF0=sR8r&j}5zN7?p**SeEGIiKEayx7=6Q-w~(j)6nI+V)h^OE@+t7YcO9%JD_ zZ}CaNo-yiKf4l7_%`N+fQAZM@HujKfgfBSRx~N_&G3iyvC?cnU+!3g7F#k~9T;hx zA(`{6LlN(l5yAvHO{$q`_L7!3U1AsbKUq^i{F{+ZP>Eh_&=sljq_tO{DrYm7#ftce zG-F_V>X`>QZmvn9VjbplD`C`8KK1HTNGxltC_~E3bTVh;R;%gid(FCIm!YQSw5&_a zO{{NQV$_04Zk5q0qOIWnTi&@Q$9Y_78o#lMq9!;b-3BPz;Rz38x)qd2No7bz+Lz40f8i#nJO4Cfc&9@WRrX;plVxtAHstFS>^5`5r>Y z-0d>-Vf(2BT7lUHN^9nUKb^(2e?frHiU;`$GV+V|qi>84_IWC~uF~)tes9|{x58$> z!{!~I-+zMTv-OShrHmtHN%6$dez#CRIdI7un(j4seC4+w-^o^d-QJWvFzcF6VF}|avR}b$ftfx#z+YYu5LmD85m!RM zjqEFN(Ee3%i)*HNRyVI$)*(1W_gu8{L@r18GD92{b3&=b^@D?ny3A@BqiBFi2ErR$ zBPfg4Pb*$Slf#;!4Tk3~&zIU*a2-~YK1a`9-CjRbwf!Nu)#0$(No|sST|}DaMNV!( z0W(;;e5&I)DSpNQsokur7c3CGwIVHoOfU_TJpLlu126FcSOn?(eBn_3 zuCusfD`i9LsUxZYr%aF-9Z5oh96ARTQOHMrGCnH_#R6JLC-|bRQ}Q&s)xa8O3H=j8 z@5nBONGHz6LfTlC)ky%~-rIu%v=kZ09b5ud=Hw^0NiN&tL08lRmkL4{ zL43l5@qGJU`{?3K4$=RtpD(C*V+TsRWK*~hx zjHleI@EABi)yya2NQ2G=3*fYnRZT zt-froE63SFam^z;7UtdRI2XC%8aG*CTVT+w%}pXYin1#Z@;K2-)OCKU?&Z*ypZE|= z>OzTKW_%HZv3bc$JJ0ZT>dLhkp^}sL@09JY92DjV(W-?C1){deC^fN`wV4;IGfEs&!7*ghFExX&=dNuQ{^IX|&Sy}|63 zwi|yy;O<5QhOn@yte9*1<|QNt=U4nfdW+cVX!j(8l-|}Zy|AE3rQYDqNzbdc1}Rdb zE9L;I;mpcqi3>_ut=qDR14g2_{@pE>pmR! zht(-sHJrnXHhcfhZ^QsgGy1FM3IhSL@V)adh}1&@OYi3Q(<1;3lEaT+Z(-D}Zay|+ zJd~(0w(2&yHVSFLP-q2(Ro|3RPV??_5@2`uGpvu)Vp7u-aej*bMk;!gt&+X56_YZITWyZ4x3^eC+Nsor<{q5#uZ+!zSo#k+ju2OqF`D9!-yS{1 zsfs5uU}lWzXNLJk4Cb!ZAn;T~MXaVPK`1Cv=Y2Zl*Y*_q;HnX4LsO!SDU~BS2=9Ag zi|mBEF0Q|M%>H5cLwv7eAHDKjymi4VVQmwM?(?xsPXzLkJ*|NEoM4d971WxJ4=*lp zM+JpcMOFYHY9)_tSc)V+lUXyK%}?=4o0{Zef@rWoY#AVH9N2mo;bW}%(7R1|L915Q zp<(EefY-E01k?`xqTTLTM+X`F5(a4#%5vvf%=W{0da4)5xEUUUQx~&3fYX6XSPx zWIf`64!d^AF_bsssaGU5BPwA^5VjUmW73yds-mmq?>-pCTp7)9_=uWeqaC$dVbdB)$%mkb91IuN4>} z;^Z2l3OkO~?MU=hkqZf2w>r}04uC-yYHN`Jjw#zdCV0tqyOnRH12Y(#e~Ee@%*iHo zJ+s%06vL4g{FUB{#aaLIUtT%_BARfdc6+U^kZP2)1KXl+ozX_~{#=HO)t!T5_8r48 z!Gdz1;K0xOKgzuen`)58)J#J4wLItY5uUV2l>h77Jvf(`{mdwZ~z1sKCaTSUGU zmJzQJ4}Smij~FP(gVP!N50{cZvgvP+_T)>%Rsf5sQYdz`X0x=Nc;|=^@lR!pEYR>! zZ6xyO;R0Wlyu*!qYxGRPV;`JOj&p-eCH(&q$fBuin3PsHc)@}C8CZ(qo;G}M6 z>qSrdrmbTkM#D2gA(8`v9F2<lu^=}W52^|}+OuZFEZeP7&UG&=BPg<7` z11$kT#z(bejF|A%hy!w63eglHHQ3nr5?j!wt!|@8q{SR9R7Rd!$qmMXL$>}*JNRVn z!8D>tx`cPOKlmPrmxw}CM;HIh_i^}0e9DUp0KZPf+q%u*Lj@7)?GFqQ^b+55AC>RG z9X9Ch+1qXKVzfo$)!k9QtMF0^YF%PODoFA&kz+)j?=XL0^Tq}G0l@&9oGu1RF#M66 z!8nMyB5f6rlG_#s_?rs=?bn1oIf7x-OVzP`H;pPa72PdBlHm^HJUyW;NT}M~Mq@%gv?AovP|+#q zd4O+ZdFhhY8*8o|=#&LVgrK}DuFAGwAm-{f!sP;G9(f} z*koHGPXYid=RE*%h(=UC4%T@ENyYTEPl##C#e@@HP*+A3PM-nz(1sS0Y3L3p z9P+F;VvgVRZ_0k{c3Suh!CRUts<^v;kjjgclVKdv)Oj9l@|J~Po98+G2g7xFG)CtS z%2UJ6>nJTI*l1M_EA8Pi)5G^U0Bj_w3=WsNX*`l9t1W%x)WW3mPgMr?B4Jk zS2ulxvQs*BA!)go$Hzaa4e)Jwq8f;=SYUhf{%=SD7~tCQxZD`FioO`GJi=&+@C}3_ z%>iVC>;1mzGqM@l*NYm1qSA*`BXI~j`e^KQDP8F7ZQYC1LSkm`x)eQZ#xmBPx51BL z>386$gB8fHJ|AMuu}B6PsP!ZyOllB%KABYdpA02tQc-#4Qv{WBI7W#$UZ9UrDNv{FnPL<9PUEO|}_2aL_x6 z-axf@gyana#cMy350MJi~=SCArny)@mTWu$7U{91uh%WM}b6&6**as}wGc(tk^yYUD#J z%*u9$`J_VfhRir6lmqi(6lW%65>EzyU&@}6TAiGgrZMF&5dx0&y7*bkGkjEV=HIaX zqKmBJ17=KN#~5b54uMt#i-Y+{;sRYe^rdc*eVhVovp%b>nhFwUFWL8kMMQuXIE)g9 z)r*Yqs$cC@#Swn%gEpsiF(YEW!;QMY!LfGS z)pMA&`YGV~fOT$w&AJtSF<`D*^aiM)IsS5x+_cCI@K~Ati-ECr#cLn|_JcrhhG1Tx z&iBP{R9<})8Mb(mouNU7b)?<%r7D3PMAl|WB#Zg5*P{KP<$N0<`S5r_{sTu?=VBX% z=w$=WHY6tRyD7m zas_eow&2+Q#1&R|v()q6Vi+V$4-oRZ|5$S4^aM3o7k)mS=dlwk(*faQ$dBVTDRStV zhe!%_o?7Xl8GN3c5UYeixNh{8T$pQ}o48wrj4oG0!f~|9lcnyWGB`JkyZq3lO2iE& zC65cP0*b%1uOe*Hs}@pN>2^w==+^(TC1gnQe!%Xoo&2f$c~VV`=2%U&JNbLK$r{bz zuFZPA$hip@0u*5`>=?5=4ftZWH`?k-+yFN55wWU-SD3IsVD>ir%<8ac86rHZnnQ#~ z6jD+`;1?TT%juq}vSIAy4n4*=jC zfJhmMJWoetDp2@VoRgtEQ97SuPsN!-pINtfC^mtXLh+VDpk=?2cvcq%Sum|1tU-vs z1x-t^Lm9gOByF^Gg_uEB2GoX@>X#SFKs39s1t+eh6MyoO3)f+6!BKgPz5c{$#D~H= zt<=&8Pz8vdsTR-qNyRUQIv{)dciMmZHRd_{Y^1cBaE8mQ*SPL$uF%t3E&`qRKe3Tg z_6f%f{xC4@WSk&-1e4zQ?pGh6?8@W_O8l}lPP53M6*gS6ACA=TXy9EG|GR}5P252@ zBzO;wg@ib9_Sawu4O@nquJ6=N&gsG66M-a-#%}*cZ+0Eo!k6)0zk1b2Aw-f!@|GTE z{9zyNEInOyID{jQ#AVXV!ou0%FT`3b6cIt(7F4Rusm6jtLk@CGsgfRN6SMX&vXg*P zh`{OSU(e~6@TY7s@Q4?Iu+cr03?g+)_{W!XwG$KFXnl@zX*U3C#m&rWEa5U@{Ua@8V9NS+zKctt`)Xt{FPO2Tkv1_wMsF2rY$#;if^dzeF1V!7+*W zW28z$E`sqei@OicsCX?Ikz%UV@dX;%{4?ppm|M^+W&c_OY8|hraW)11*mH0_IcNa$ z3Z9k~O7uY7h84U`9%6H6kk6KBM3Z9Kq3sH)NFX?r6wiRsTI?0xBN(98(7%+Q4Lj5l z(^8vm*H`0d+JF#q-DfpaPIR+H#h4nl*!izCVaEMg|)NFn+4s^C7d z-c0`l!L4j!3a~kSW8f?NK=vS-B|P9t*vhPi38;q(z=zR9faWhrUT06FEHz zohikbw2me!;pUZiRWe(giqPfYB*Wu(4%6`S1j#^Q)YpS_gQ>EhhEDyWpj;1vAE4RD zT^uf#HE=$@QWS~%hoseCq}ux;tbLVhYKK&GsBkniG#OY5M^+$MoQo|IRIPtZo3G5< zI@zK<`ssfC9feX|E|Q}UciSwAkA3=1XUS#+=p&J@cnl9 zURqVmCpf-zV&#>n5_)1WKOdFCXBRP#{`=b6=6jh`v~-%sK zouFf72wC!rQH(}PM_W9&f1k)O^z-SLLl88dq&`=ZpIV*Y8)f>?$MHX&OWJ zQ)h{K3Z`EL;30^f*b0VVMlVm*`GurIl8QjQtEMw14jYOt&1wc&+)DPqNj}zPip)magdVfcx zKtUDUa@KNG{irvqoKozRX5EqsSfnJHIS0ETC?M*M6?3;Gfs%}2G8|EtM5#SnqyJ4f z@(L-mA33Qw7&RKldF7#T%j;4UW)UfJ3envzrxLDI78ps1d$bXs!gGh^^M(Gh{i1EY zU}kBW$+rGb!PV<6k1qDW!)S%Fq>YJRhO#4rEwV*IHR%~BeA8*pzwES6dkNDycj1mp zfT&!YJ1L(YVk2wS6g6E***g>VBh#-C0(y0AK~P48O2$~n8SmF`Y+$=bHtm`cx{{v| z3X47(9yml6`Ac=CFDQFE%Qrc`eDhXYK)4&}Cu)hGofRVLCPnb{5?%lN{W~RE+RxDj z$+B{nax5uwxZJWCGpa7a@7=%LtifzX>6mVygBrk5BdHwAHS*_`Dq5G2B>}t)QE_I4 zX0YUed&s8v5|Gg8%!fatUE}%1 z-sFGLbLOAy%J|IFXj^pQjH5*)g~bAqxQiqSnq(n3y0&pZDSXfjJOtsa^|v>R__NMo zm4r|}3aQl)T(NFL7OaL67jYl$nuKj>0pfb{wkZ9gfQ2)}7QmCA;n_wsvA$K$7HvOt zWOZ*-OG=&b!LS*qVL|c)%|NAnhftFB>D}`NW+(<+(;m;J=-E$=G34~G?TzQXk6FKU zu4BrSl-ebsJq+A5m|O_Y4V97v=HqmWSZRabMSr2HxM5%z=E=S3zh(f-&XUqC=>kYP zZEjhXcP4pqitus8cM5w{hN&{>3Kwzmc$hVf@#rh^d($&X7M1Rhgskc7DVWQP^dvaj zNLH=}P8d1XW3;rT4uFIO2&0hrE1T%s#}6MFnc~_DpA*G(9?4WO`ID=;ZS z-c1{9y$0}BPf$ie1*M30V|CQPXIb)CW@`qnD+*rSo|8c&DJ0WGY3|R6d^mgiDgrZ` zg?B#~?e6YMa{N>ra`BJw$MM^mO;qNbnIVEcFbwQ~OK?`K`xz2q1#oSu`Nj%P@bNwh zurmKJ(tn+d6hzrCvFsVVYI=z}w`JD(XY*SSZX1{W&0L`Q3IH z*J4(vqsO0bFaAQM=2aA2SClY{KA|#;KXo<7-rg!AGRil81COol4Uu{Mzj#CD>OL0M+OSEaD1=j@U(uTJ=I(%jtm9rW-}vQjJ9)JA__cb*m_88w zCEs#|-NaZ32HlBrkSBk9lED}DeHFUJoIb4Me7W+Ct2R_3M%PkTtXZR(~*3muy}M;J$H)iXPRUZXJf^oRcb9QOmlN-?dY)9>5$W zG-VPhaC6pih_V4bW$s5rL)Wkxv;4)$gf>B+sNO&?rRm!eLSeYn?f~5=X^|9Uxmm#4 z^C9oMTzbH7M=xAYq6K$ct-O-^0#CQpDE=>yaffJz$h<2QZ7pk9qwFz^CA4mO6k^?e zUHej2g^vyat#6lgE05M^TH&u7eU)mxVs7ARFi&VL1|p&u9v_?J_A-;@MIku5Z}~NP zp6~?@=!>u&ax*+>NPUXAm-Il-!nJfstV|g(GP+cxJ)!(oN+Gkg0eXA^c0i4>75h{@ zcJ?fh>t1%&zU`i{>)@kq+vPt^sqB8I{BQKG^U2YJjhB~_J)?hp`RLhqR!0k@nvSf# zd9dQRi5Q=$DLA2=ykia8l>@r}tCLhp-kgI*7*aXX*OlwnA+<32K#heWK}G|IH?_Wx z!8h5;g*yN(>DM4Fvadz7s7V(ZgM_@sg~Cfp$>O(G>gFX4pC%4_yb1QlD0(2VC1A2V zs&KsV6(hB&lP)bdaG+)il~Vc9=!uNPb?r8H6d|$;gZdREFv&fd$p!!BG-KkvVkmfA z%I@&pDpN+9nN8!=(u73sBy1HF@$)!R-JaN5cES*K&C1r{%_FHN(~|R`qtBsKy1$7P zKK|)7@2pwtW0W_wjox?ttaX+IvwTCI{w)Xr)&j*Ko)(R4Od%j=oGU9bwu6a9yw`- zph{8+`D89~P}3aezGRWI2nn;q`IReU>^r$;;PUH&c11=dgGy7JsBv05!PDqRea@Av z=B}$I*ee0OE)^&c6}L}Q?jo`$)EU08m@C3qp(qR^ z1jPKv5@F>7FnZmS|Biy2oh6)+pSrO$>VVb9u9w0O*&}eu#waWCry|acK!N>GSM=dE zPT4Hwf%GMgsG+E(X;5%M{}U`D_8A9lzdgArRSRe5QCQ$%t5 zazi4&zc6%Y6_iX}08g3mc*B(gBR(eivNSHJ zGV2Z9bcW<5K|-{Ft2lrW$kbMEXl=c~JN|fpIa_RMynv`U@SWR>J9IheJmb1)nuu|M zaS8e`0zl7#Vt^?9jt3QuX=;n_28^OlUM&~nLBWD`ae>n|a^4g|umay6-DiYK zj=N|eeE>@$?q~Ag(2fB$P>mz_h`z8l&ZO6o`}~Oi=vOyKsf)XHEBUo)^V*!3;j>-7 zURi2teIjf0T({k)pbX@dh%^PO_Z#UN)LZCV{@3E(ye?F2dI=5b*!&NANhS&ZoyktA7Lny8keU|OdeM|KRqF$J*GI1=r?uG0*{*lJy1$vSKk4A4IMsw?EU^pxVf z>ZW?~=p0DW{W~`$&TjREl zG?RHbMPC1TgV8PlBHo>ZRwTm2(Mn!coI$s^$SlkbOdqtW%Qe-O_&<3`wMzc@CEJ+` zG|oqH`uXGx&G!RVB=)Qp z)LG2OB#fw)r#gpA;waX{{>I>+h*#=()NCUR|6iA~GS zft#a~4ZN}pfSt$9(7`B)mJpCcj-xOuviaK-n^xxWA2?M$6(Tvo{ckUxf2npoDv!_B zZlfbm$ZLg-J(&?qjrs(#eLHosqK@gxH?IA|_{71UIc91j^%?RdXs>A~Yes&M^Lg!O z=Jv75%V)&$r#p!RwkT;mEBUbyDGRC|WK1(I~K&x|`DD9NPHz=QxKPt+w?A+@c$$mQ(jlp(i0nVy)9u zih+*9zMcG897^aBj+0@~&x~ken=2m)Ndk2^b@^fASKZV%E8W2VfvI%2Pw@(3*Ux&- zm^U@l={uR@J6C4kJ^d?U9b4|%Qm5L^sEN#2_OISrMkrRCdqy$ff;myHiFnk1o1EgJ zX@-|&k7yFbd4PI9`HAOy2$D%Fgsg>}p#u2}S$C}^=-KI%ohHhnq%ODS}P=DTd4*t=>S~m_a_IxwKirV3vDr*-GBCZV)6*=g2GH#m)zhpNG z*7+zTK;^3?%IojOgAE+D{1sP0kjWyNkcPUxBUNxddPOsM9-Mqt9=Z(+X{CB*BZr4K zvJrjRw5vJTOL-2kud@pk+Nw(xS*83>u#{*kKXCZ6M7;xk;|(IKZ&?m2>Qkg$H9rD1 zhXwGm1Eb+Vw@UkXT$C>a4I!T+Kt~tswa5ioE_BXg0?p5}?a3G2cBEv*Cu7a*aBMpT z8uLSkO&mumEqN=}>(j(8u`dO|;?isHbP0`i^!BaLkNI-J7S4{p7?D1{ykbU#t2>J) zikJlAq;*Lt`r%Pr4L4g*1gduj#Ek`Wqx@;l0}VMh*@jQpz!JQy*^(C2YNd(iFkw zc7+{82OXV7j)=D?4kw8&ip0Hx>C-S%b#A7P<)Fp(=EGXy-8c8CjwIp$nLsBQ6{*zg z!IR#bJpDVIyT{6-5Fw(1ZGj*0sHf0F#8K%^$w_f#`;%c}RbFQJq_gA>_!|dhWVx#? zSS^6r{YryHlx(Y~&aZX3d=QVs-)OLjVB*WgKEO8xeF;~w)3U+3Kz79*jo$xqG>^ zsdv**H5e_i%O28-l1bt9Gun2 z1O2ojnr?t2hP4^bdCo2dpYaF|;vpOqM;SerhuXt%1<3+649HeOQljY|Cl#@5U2A5b zBQ${(M9yEWOF5FNh;E&)2r3qx*DeZjoP2Bfmfw50{2DBHre%^tdPm`CVd|7>h$V zosqB=hSwLHFZ^gmy0P9!Ra%f2(FZQdcZ{i1j7@rh1aJOtx9^hF`dT)TX!W~jO%l2) zAuFk_;J9@VL{xD>IN*eONK^^jy+6L;{F-Zlvfi+xeV7)9c zk#1H9#12fUA8JK@bL@6}91hS*-8G3$B&U4Me7k#ip3th*`J|JtX1jxNaV-M%d;nDR zZO9GAB~Qp1FN4dWQK^=QU+rp_tb72HZCpC^g+nf*+EI=#XH0ix+gfmP-S6D&H9sq_ z=j6KixRlPWnJ<>L^z%#lEDH;()^m0m{wrCMdI4>FLqpP%T^$yDnMx4ZdDo7#VN^T$ zsPlz*Sl0__d*hE8D&~8HS;Ry&$i4a#Gdi9rP6*;FGx~{8#&DM21POpSC0DDruT&OC z!)pQ{t!uX9VocwgzB%>77fe6S<_F+HanG*zO7n7B`a_u|h92Ea<+Ajy09%bRA^o9x zXB!P2J)^JRT5Fcc0P{K#aZ0}VRK+~F@ldGH%ZHLECN0f$9Zt+8e~UiBp!ltv)WWD1 z*E<~#jjgl@m$TnqOY5yA;s~01x1tG`AEsYwI{HRg4v{mUAF1|2_XQ}$R&-Ahz`r`P z0BJn;9BInSlkzLv!6b5Rh+WC1%D;=2(`kekOy+;7AtLL7uqd`iY4}1k*zOt(3*`V* z;hGSl`f)lwe@oYZV-;s%Piu5O91^j5-Co2D4GV7G&pn04*X#OWX!|*bLt0RT%-?*N zvAh9AVChEsNHX`LlIV;$7(@)El^6IS5ZW2lmaR`(`?hTQrH6bg@&>H?M&LgfXMKk? zd%=dKI>>A!7UIS%ZOtM{VVTp`J#|d@7pE!m$x#9nX?u#7+~+UhnDAH5gQY_`lNPrc z8s;wk5PXdj*V8qRC7?KJ0xWn#%O zm8lDv&aM$qG~d~wecOmcs89~`~+%XvY^mQ zfZ!mA)F}t+i?2>sQeq|{w8Eohn=m_F(OO_rv4u1xvp2kMz`fz^0UM4l{xDv`D~T*} zztQh)+q-){e*I!c=DplfxJ5$=s>e)sqomm(Z2

    lfU9NBiex>qoJD7)$PXct*%b4 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 literal 0 HcmV?d00001 diff --git a/i18n/sv_SE/LC_MESSAGES/musicbot_logs.po b/i18n/sv_SE/LC_MESSAGES/musicbot_logs.po new file mode 100644 index 000000000..55cd18a12 --- /dev/null +++ b/i18n/sv_SE/LC_MESSAGES/musicbot_logs.po @@ -0,0 +1,4077 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: 2024-11-08 18:12\n" +"Last-Translator: \n" +"Language-Team: Swedish\n" +"Language: sv_SE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: sv-SE\n" +"X-Crowdin-File: /fae/i18n/musicbot_logs.pot\n" +"X-Crowdin-File-ID: 26\n" + +#: musicbot/aliases.py:52 +msgid "Aliases file not found, copying example_aliases.json" +msgstr "Alias-fil hittades inte, kopierar exempel_aliases.json" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "Fel vid laddning av aliseringar.\n\n" +"Problem:\n" +" Dina aliase-filer (aliases.json & exempel_aliases.json) saknas.\n\n" +"Lösning:\n" +" Ersätt alias config fil(er) eller kopiera dem från:\n" +" https://github.com/Just-Some-Bots/MusicBot/" + +#: musicbot/aliases.py:80 +#, python-format +msgid "Failed to load aliases file: %s" +msgstr "Det gick inte att läsa in aliasfilen: %s" + +#: musicbot/aliases.py:88 +#, python-format +msgid "Failed to parse aliases file: %s\n" +"Ensure the file contains valid JSON and restart the bot." +msgstr "Det gick inte att tolka aliasfilen: %s\n" +"Se till att filen innehåller giltig JSON och starta om boten." + +#: musicbot/aliases.py:114 +#, python-format +msgid "Aliases skipped for non-existent command: %(command)s -> %(aliases)s" +msgstr "Alias hoppade över för obefintligt kommando: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "Alias(er) hoppade över för ogiltiga aliasdata: %(command)s -> %(aliases)s" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "Alias `%(alias)s` hoppade över som redan finns på kommandot: %(command)s" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "Fel vid laddning av automatisk spellistfil: %s" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "Tar bort ospelbar låt från spellistan, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "Tar bort låt från spellistan, %(playlist)s: %(track)s" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "Kunde inte logga information om spellistan URL-borttagning." + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "Uppdaterar spellistans fil..." + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "Det gick inte att spara spellistfilen: %s" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "URL finns redan i spellistan %s, ignorerar" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "Lägger till ny URL till spellistan, %(playlist)s: %(track)s" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "Initierar MusicBot %s" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "Loop är stängd, kan inte skapa uppgift för: %r" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "Ohanterat undantag för uppgift: %r" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "Ohanterat undantag för uppgiften: %(task)r -- %(raw_error)s" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "Spotify gav oss inte ett token. Inaktivering." + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "Autentiseras med Spotify med klient-ID och hemlighet." + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "Kunde inte starta Spotify-klienten. Är ditt klient-ID och hemligt korrekt? Detaljer: %s. Fortsätter ändå om 5 sekunder..." + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "Konfigurationen hade inte Spotify-app-autentiseringsuppgifter som försökte använda gästläge." + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "Autentiseras med Spotify framgångsrikt med gästläge." + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "Kunde inte starta Spotify-klienten med gästläge. Detaljer: %s." + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "Experimentell Yt-dlp OAuth2-plugin är aktiverad. Detta kan brytas när som helst!" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "Initierades, ansluter nu till disharmoni." + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "Testet för nätverkspolning är inaktiverat via konfiguration." + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "Testet för nätverkspolning stängs ner." + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "Kunde inte lösa ping mål." + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "Test av nätverkspolning avbruten." + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "Nätverkstestning via HTTP har ingen session att låna." + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "Kunde inte hitta `ping` körbar i din omgivning." + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot kunde inte hitta en `ping`-kommandosökväg. Kommer att försöka använda HTTP ping istället.\n" +"MusicBot försökte med följande kommando: %s\n" +"Du bör aktivera ping i ditt system eller behållarmiljö för bästa resultat.\n" +"Alternativt inaktivera nätverkskontroll via config." + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "MusicBot nekades tillstånd att köra kommandot `ping`. Kommer att försöka använda HTTP ping istället.\n" +"MusicBot försökte med följande kommando: %s\n" +"Du bör aktivera ping i ditt system eller behållarmiljö för bästa resultat.\n" +"Alternativt inaktivera nätverkskontroll via config." + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "Din miljö kanske inte tillåter systemkommandot `ping`. Kommer att försöka använda HTTP ping istället.\n" +"MusicBot försökte med följande kommando: %s\n" +"Du bör aktivera ping i ditt system eller behållarmiljö för bästa resultat.\n" +"Alternativt inaktivera nätverkskontroll via config." + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "MusicBot upptäckt nätverk är tillgängligt igen." + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "VoiceClient är inte ansluten, väntar på att återuppta MusicPlayer..." + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "Återuppspelning av spelare: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "MusicBot upptäckte ett nätverksavbrott." + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "Pausar MusicPlayer på grund av nätverkets tillgänglighet: (%(guild_id)s) %(player)r" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "Söker ägare i guild: %(guild)s (obligatorisk röst: %(required)s) och får: %(owner)s" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "Söker efter kanaler för att automatiskt gå med eller återuppta..." + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "Guild är inte tillgänglig, kan inte anslutas automatiskt till: %(id)s/%(name)s" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "Hittade återupptagbar röstkanal: %(channel)s i guild: %(guild)s" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "Kommer att försöka återuppta röstsessionen istället för att ansluta till kanalen: %s" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "Hittade ägare i röstkanalen: %s" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "Ignorerar återupptagbar kanal, AutoSummon till ägare i kanalen: %s" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "Ignorerar Auto-Join kanal, AutoSummon till ägare i kanalen: %s" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "Redan ansluten till kanalen: %(channel)s i guild: %(guild)s" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "Försöker gå med i kanalen: %(channel)s i guild: %(guild)s" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "Kasta MusicPlayer och göra en ny..." + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "MusicBot kommer att göra en ny MusicPlayer nu..." + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "Inte anslöt till %(guild)s/%(channel)s, det stöds inte röstkanalen." + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "Avslutade anslutningar konfigurerade kanaler." + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "Medlemmen är inte röstaktiverad och kan inte använda detta kommando." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "Du kan inte använda detta kommando när du inte är i röstkanalen." + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "Få bot Application Info." + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "MusicBot har inte behörighet att ansluta i kanalen: %s" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBot har inte behörighet att ansluta i kanalen: `%(name)s`" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "MusicBot har inte behörighet att tala i kanalen: %s" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBot har inte behörighet att tala i kanalen: `%(name)s`" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "Återanvänder robotar VoiceClient från guild: %s" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "Tvingar frånkoppling på inaktuell röstklient i guild: %s" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "Kopplingen misslyckades eller avbröts?" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "MusicBot kan inte ansluta till kanalen just nu: %(channel)s" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot kunde inte ansluta till kanalen.\n" +"Försök igen senare, eller starta om boten om detta fortsätter." + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "MusicBot har en röstklient nu..." + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "Återsöker anslutningen efter ett timeout-fel (%(attempt)s) vid försök att ansluta till: %(channel)s" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "MusicBot VoiceClient anslutningsförsök avbröts. Inget försök." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "MusicBot anslutning till röst avbröts. Detta är udda. Kanske omstart?" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot har inte behörighet att tala." + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "MusicBot kunde inte begära att få tala." + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "Kopplar från en musikspelare i guild: %s" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "Koppla från VoiceClient innan vi dödar musikspelaren." + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "Kopplingen misslyckades eller avbröts." + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "MusicBot har ett röstprotokoll som inte är en röstklient. Kopplar bort ändå..." + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "Kopplar från en oseriös röstklient i guild: %s" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "Kopplar bort en icke-guild röstklient..." + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "MusicBot.voice_clients lista innehåller ett icke-VoiceClient-objekt?\n" +"Objektet är faktiskt av typ: %s" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "Vi har fortfarande en MusicPlayer ref i guild (%(guild_id)s): %(player)r" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "Guild (%(guild)s) vill ha en spelare, frivillig: %(player)r" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." +msgstr "[BUG] MusicPlayer saknar en VoiceClient lite hur. Du bör förmodligen starta om boten." + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "MusicPlayer har en röstklient som inte är ansluten." + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "Musikspelarobjekt: %r" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "VoiceClient obj: %r" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "Hämta en musikspelare för guild: %(guild)s I kanalen: %(channel)s Skapa: %(create)s Deserialize: %(serial)s" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "Skapad spelare via deserialisering för guild %(guild_id)s med %(number)s poster" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "Botten är inte i en röstkanal.\n" +"Använd kommandot för att föra botten till din röstkanal." + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Något är fel, vi fick inte röstklienten." + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "Körs på" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "Ställer in URL-historik guild %(guild_id)s == %(url)s" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "Ingen miniatyrbild har angetts för post med URL: %s" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "ingen kanal att lägga nu spela upp meddelandet i" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "ignorerade nu-spela meddelande som det redan var publicerat." + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "Kör på_player_fortsätt" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "Körs på" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "Kör på_player_stop" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "Körs på" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "Händelseslingan är stängd, inget annat att göra här." + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "Logga ut på gång, ignorera denna händelse." + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "VoiceClient säger att det inte är anslutet, inget annat vi kan göra här." + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "Spelaren är klar och kön är tom, lämnar röstkanalen..." + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "Loopa över kön för att expunge låtar med saknad författare..." + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "Författaren `%(user)s` frånvarande, överhoppad (borttagen) post från kö: %(song)s" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "Inga spelbara låtar i Guilds autospelslista inaktiveras." + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "Inget innehåll i aktuell autospellista. Fyller med ny musik..." + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "Loopa över spelare autospellista..." + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "Fel vid bearbetning av låt \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "Fel vid extrahering av låt \"%(url)s\": %(raw_error)s" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr "MusicBot måste stoppa auto spellista utvinning och borgen." + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "MusicBot fick ett ohanterat undantag i spelarens färdiga händelse." + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "Expanderar automatisk spellista med poster extraherade från: %s" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "Det gick inte att lägga till låt från autospellista: %s" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "Undantag data för ovanstående fel:" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "Inga spelbara låtar i autospelarlistan inaktiveras." + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "Kör på_player_entry_added" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "Hoppar över automatisk spellista automatiskt för köad post." + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "Musikspelare undantag för post: %r" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "Musikspelare undantag." + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "Det gick inte att spela upp låten automatiskt spellista: %r" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "Logga ut pågår, ignorerar statusuppdateringshändelsen." + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "Uppdatera botstatus: %(status)s -- %(activity)r" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "Serialiserar kö för %s" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "Deserialiserar kö för %s" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "Skriver aktuell låt för %s" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "Kan inte skicka icke-svarsobjekt: %r" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Försökte skicka ett ogiltigt svarsobjekt." + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "skickar inbäddad till: %s" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "skicka text till: %s" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "Kan inte skicka meddelande till \"%s\", ingen behörighet" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "Kan inte skicka meddelande till \"%s\", ogiltig eller raderad kanal" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "Meddelandet är över meddelandets storleksgräns (%s)" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "Kunde inte skicka privat meddelande, skicka i reservkanal istället." + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "Betygsätt begränsat skicka meddelande, försöker igen om %s sekunder." + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "Avbrutet meddelande försök igen för: %s" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "Betygsätt begränsat skicka meddelande, men kan inte försöka igen!" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "Det gick inte att skicka meddelande i reservkanal." + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "Det gick inte att skicka på grund av ett HTTP-fel." + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "Kan inte ta bort meddelandet \"%s\", ingen behörighet" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "Kan inte ta bort meddelandet \"%s\", meddelandet hittades inte" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "Betygsätt begränsat meddelande ta bort, försöker igen om %s sekunder." + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "Betygsätt begränsat meddelande ta bort, men kan inte försöka igen!" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "Det gick inte att ta bort meddelandet" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "Fick HTTPException försöker ta bort meddelandet: %s" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "Kan inte redigera meddelandet \"%s\", meddelandet hittades inte" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "Skickar meddelande istället" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "Betygsätt begränsat redigeringsmeddelande, försöker igen om %s sekunder." + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "Avbröt meddelanderedigering för: %s" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "Det gick inte att redigera meddelandet" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "Fick HTTPException försöker redigera meddelandet %s till: %s" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "Avbruten borttagning av meddelande (ID: %(id)s): %(content)s" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "Fångade en signal från OS: %s" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "Koppla bort och stänga MusicBot..." + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "Undantag kastas medan hanteringen avbryter signalen!" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "MusicBot gör nu avstängningssteg..." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Misslyckades med Discord API-inloggning!\n\n" +"Problem:\n" +" MusicBot kunde inte logga in på Discord API.\n" +" Din token kan vara felaktig eller så kan det finnas ett API-avbrott.\n\n" +"Lösning:\n" +" Se till att du har rätt token inställd i din konfiguration.\n" +" Kontrollera API-status på den officiella webbplatsen: discordstatus.com" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "Väntar på nedladdningstrådar för att slutföra..." + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "Väntar på uppgift: %(name)s (%(func)s)" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "Kommer att försöka avbryta uppgiften: %(name)s (%(func)s)" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "Väntar på väntande uppgifter..." + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "Stänger HTTP Connector." + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "Stänger aiohttp session." + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "Utloggning har kallats." + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "Undantag i %(event)s:\n" +"%(error)s" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "Undantag i %s" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "MusicBot återupptog en session med oenighet." + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "Slutför" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "Inloggad, nu blir MusicBot klar..." + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "KlientAnvändaren är på något sätt ingen, vi måste borgen..." + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "Ägare: %(id)s/%(name)s#%(desc)s\n" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "Lista över gillen:" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr " - %s" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "Vänster %s på grund av bot ägaren hittades inte" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "Fortsätter inte med kontroller på %s servrar på grund av otillgänglighet" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "Ägare kunde inte hittas på någon guild (id: %s)\n" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "Ägare okänd, bot är inte på några guilds." + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "För att få bot att gå med i en guild, klistra in denna länk i din webbläsare. \n" +"Obs: Du bör vara inloggad på ditt huvudkonto och har \n" +"hantera serverbehörigheter på den guild du vill att boten ska gå med.\n" +" %s" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "Har ingen för bunden kanal med ID: %d" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "Kan inte binda till icke meddelandebar kanal med ID: %d" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "Bundna till textkanaler:" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr " - %(guild)s/%(channel)s" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "Inte bunden till någon textkanal" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "Har ingen för automatisk anslutning kanal med ID: %d" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "Kan inte automatiskt ansluta till en Privat/Icke-Guild kanal med ID: %d" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "Kan inte automatiskt ansluta till icke-anslutningsbar kanal med ID: %d" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr "Automatisk anslutning av röstkanaler:" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "Inte automatiskt gå med i några röstkanaler" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "Hittade saknade konfigurationsalternativ!\n\n" +"Problem:\n" +" Du konfigurationsalternativ saknar vissa alternativ.\n" +" Standardinställningar kommer att användas för dessa alternativ.\n" +" Här är en lista över alternativ som vi inte hittade:\n" +" %(missing)s\n\n" +"Lösning:\n" +" Kopiera nya alternativ från exempelalternativsfilen.\n" +" Eller använd kommandot config för att ställa in och spara dem.\n\n" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "Händelse på _ready har avfyrat %s gånger" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "Hämtar applikationsinformation." + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "Det finns säkra datamappar" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "Validerar konfiguration" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "Validerar behörighetskonfiguration" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "Inaktiverad" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "Aktiverad" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "Alternativ:" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr " Kommando prefix: %s" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr " Standardvolym: %d%%" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr " Hoppa över tröskel: %(num)d röster eller %(percent).0f%%" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr " Nu spelas @mentions: %s" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr " Auto-kallelse: %s" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr " Auto-spellista: %(status)s (ordning: %(order)s)" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "slumpmässigt" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "sekventiell" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr " Automatisk paus: %s" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr " Ta bort meddelanden: %s" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr " Ta bort inbjudan: %s" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr " Ta bort nu spela: %s" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr " Felsökningsläge: %s" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr " Nedladdade låtar kommer att vara %s" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr " Radera om oanvänd för %d dagar" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr " Radera om storleken överskrider %s" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr " Statusmeddelande: %s" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr " Skriv aktuella låtar till filen: %s" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr " Författare insta-skip: %s" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr " Embeds: %s" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr " Spotify-integrering: %s" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr " Äldre skip: %s" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr " Lämna icke ägare: %s" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr " Lämna inaktiv VC: %s" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr " Tidsåtgång: %s sekunder" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr " Lämna vid slut/tom låttext: %s" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr " Lämna när spelaren är tom: %s" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr " Timeout: %d sekunder" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr " Självdöv: %s" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr " Prefix för kommandon per server: %s" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr " Söklista: %s" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr " Runda Robin Kö: %s" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "Den efterfrågade låten `%(subject)s` blockeras av listan över låtblock." + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "Försök att hantera röstkanalens inaktivitet, men Bot är inte i röst..." + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "Kanalaktivitet väntar redan i guild: %s" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Kanalaktivitet väntar %(time)d sekunder för att lämna kanalen: %(channel)s" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "Kanalaktivitet timer för %s har löpt ut. Kopplar från." + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Timer för kanalaktivitet avbryts för: %(channel)s i %(guild)s" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "Ignorerar spelarinaktivitet i auto-anslöt kanal: %s" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "Spelarens aktivitets timer väntar redan i guild: %s" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "Spelarens aktivitetstimer väntar %(time)d sekunder för att lämna kanalen: %(channel)s" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "Spelarens aktivitets timer för %s har löpt ut. Kopplar från." + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "Tidtagaren för spelarens aktivitet avbryts för: %(channel)s i %(guild)s" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "Spelarens aktivitet timer återställs." + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "Inget sådant kommando" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "Du måste ange en användare eller ange deras ID-nummer." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Ogiltigt underkommando angivet. Använd `help blockuser` för användningsexempel." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot kunde inte hitta de användare du angav." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "Ägaren kan inte läggas till i blocklistan." + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "Lägger inte till användare i blocklistan, redan blockerad: %(id)s/%(name)s" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "Tar inte bort användare från blocklistan, inte listad: %(id)s/%(name)s" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "Kan inte lägga till de användare du listade, de är redan tillagda." + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Du måste ange ett låtämne om ingen låt spelas just nu." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Ogiltigt underkommando angivet. Använd `help blocksong` för användningsexempel." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "Ämne `%(subject)s` finns redan i listan över låtblock." + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "Ämnet finns inte i listan över låtblock och kan inte tas bort." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Ogiltigt underkommando angivet. Använd `help autoplaylist` för användningsexempel." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "Länk till medföljande låt är ogiltig" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "Kön är tom. Lägg till några låtar med ett låtkommando!" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Den här låten finns redan i autospellistan." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Den här låten finns ännu inte med i autospellistan." + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "Du måste ange ett filnamn för spellistan." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "Du har inte behörighet att begära spellistor" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "Spellistan har för många poster (%(songs)s men max är %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "Spellistans poster kommer att överskrida din kögräns.\n" +"Det finns %(songs)s i listan, och %(queued)s är redan i kö.\n" +"Gränsen är %(max)s för din grupp." + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "Ignorerar automatisk paus på grund av nätverksavbrott." + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "MusicPlayer har ingen VoiceClient eller har inga kanaldata, kan inte bearbeta automatisk paus." + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "Behandlar redan automatisk paus, ignorerar denna händelse." + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "%sRöstklient inte ansluten, väntar %s sekunder för att hantera auto-paus i guild: %s" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "Auto-paus väntar avbröts." + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "En ny MusicPlayer håller på att anslutas och ignorerar gamla auto-paus-händelser." + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "Spelar i en tom röstkanal, kör automatisk paus för guild: %s" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "Tidigare automatisk pausad spelare avpausar för guild: %s" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "Kan inte använda söka om det inte finns något att spela." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "Kan inte använda sökningen på nuvarande spår, den har en okänd varaktighet." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "Sökandet stöds inte för strömmar." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "Kan inte använda söka utan tid för att placera uppspelning." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "Kunde inte konvertera `%(input)s` till en giltig tid i sekunder." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "Kan inte söka till `%(input)s` (`%(seconds)s` sekunder) i det aktuella spåret med en längd av `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Ogiltigt underkommando. Använd kommandot `help repeat` för användningsexempel." + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "Spelaren loopar inte för närvarande." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Sångpositioner måste vara heltal!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "Du gav en position utanför spellistan storlek!" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "Kunde inte fråga efter uppspelning av spellistan, inget meddelande att lägga till reaktioner på." + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "Lokal medieuppspelning är inte aktiverad." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "Spotify-URL är ogiltig eller stöds inte för närvarande." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Upptäckte en Spotify-URL, men Spotify är inte aktiverat." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Du har nått din köade låtgräns (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "Karaoke-läget är aktiverat, försök igen när det är inaktiverat!" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "Problem med extract_info(): " + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Misslyckades att extrahera info på grund av fel:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Den videon kan inte spelas. Prova att använda strömkommandot." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "YouTube-sökning gav inga resultat för: %(url)s" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "Bearbetade %(number)d av %(total)d låtar i %(time).3f sekunder på %(time_per).2f s/sång" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "Inga låtar lades till, alla låtar var över max varaktighet (%(max)s sekunder)" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "Extraherade en post med \"youtube list\" som utsugningsnyckel" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "Sånglängden överskrider gränsen (%(length)s > %(max)s)" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "Lade till låt(ar) på position %s" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "Kan inte uppskatta tid innan du spelar för position: %d" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "Misslyckades att hämta information från strömningsförfrågan: %s" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Streaming av spellistor stöds ännu inte." + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Du har nått din gräns för spellistans objekt (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Ange en sökfråga. Använd `help search` för mer information." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "Du kan inte söka efter mer än %(max)s videor" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "Väntar på stämningslås: %s" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "Kallelselås som förvärvats för: %s" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "Du är inte ansluten till röst. Försök att ansluta till en röstkanal!" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "Ansluter till %(guild)s/%(channel)s" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot kan inte följa en användare som inte är medlem i servern." + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Spelaren spelar inte." + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Ingenting i kön att ta bort!" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "Ingenting hittades i kön från användaren `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "Du har inte behörighet att ta bort den posten från kön.\n" +"Du måste vara den som köade det eller har omedelbar hoppa över behörigheter." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Ogiltigt postnummer. Använd kökommandot för att hitta köpositioner." + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Kan inte hoppa över! Spelaren spelar inte!" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "Du har inte behörighet att tvinga hoppa över en loopad låt." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "Du har inte behörighet att tvinga hopp." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "Du har inte behörighet att hoppa över en loopad låt." + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` är inte ett giltigt tal" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Orimlig volymförändring angiven: %(old_volume)s%(adjustment)s är %(new_volume)s.\n" +"Volymen kan endast ändras från 1 till 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Orimlig volym angiven: %(volume)s. Ange ett värde mellan 1 och 100." + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "Inget spår spelas, kan inte ställa in hastighet.\n" +"Använd konfigurationskommandot för att ställa in en standard uppspelningshastighet." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "Hastighet kan inte tillämpas på strömmade medier." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Du måste ange en hastighet att ställa in." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "Hastigheten du angav är ogiltig. Använd ett nummer mellan 0,5 och 100." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Ogiltigt alternativ för kommandot: `%(option)s`" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Det gick inte att spara alias på grund av fel:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Du måste tillhandahålla ett alias och ett kommando till alias" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Du måste ange ett alias namn för att ta bort." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "Alias `%(alias)s` finns inte." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "Konfigurationen kan inte använda kanal och användarnamn samtidigt." + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Det går inte att ladda om konfigurationen på grund av följande fel:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Kunde inte lösa undervisningsnamn från alternativets namn. Ange ett giltigt undervisnings- och alternativnamn." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "Det alternativ som anges är tvetydigt, ange ett avsnittsnamn." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Du måste ange ett namn och alternativnamn för detta kommando." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "Sektionen `%(section)s` är inte tillgänglig.\n" +"De tillgängliga sektionerna är: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "Alternativet `%(option)s` är inte tillgängligt." + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte spara till disk." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Kunde inte spara alternativet: `%(option)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "Alternativ `%(option)s` är inte redigerbar, värde kan inte visas." + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte uppdatera inställningen." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Du måste ange ett avsnitt, alternativ och värde för detta underkommando." + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "Gör set med på %(config)s == %(value)s" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "Alternativet `%(option)s` uppdaterades inte!" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte återställa till standard." + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "Återställer %(config)s till standard %(value)s" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "Alternativet `%(option)s` återställdes inte till standard!" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "Alternativkommandot är föråldrat, använd kommandot config istället." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Ogiltigt alternativ angivet, användning: info, uppdatering eller rensa" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Misslyckades** att ta bort cache, kolla loggar för mer information..." + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "Kö sida argument måste vara ett heltal." + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "Det finns inga låtar köade! Köa något med ett spelkommando." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "Begärt sidnummer är utanför gränserna.\n" +"Det finns **%(total)s** sidor." + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "Hoppade över den aktuella spellistposten." + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "Inte tillräckligt med poster för att paginera kön." + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "Kunde inte posta kömeddelande, inget meddelande att lägga till reaktioner på." + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Försök igen. MusicBot kunde inte göra eller få en referens till kömeddelandet.\n" +"Om problemet kvarstår, skicka in en felrapport." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Kan inte använda rensning på privat DM-kanal." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "Den angivna URL:en var inte en giltig URL." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Kunde inte extrahera information från indata-url\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "Detta verkar inte vara en spellista." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "Ogiltigt användar-ID eller server-smeknamn, vänligen dubbelkolla ID och försök igen." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Kunde inte bestämma discord-användaren. Försök igen." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Behörigheter kan inte använda kanal och användarnamn samtidigt." + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Det går inte att ladda om behörigheter på grund av ett fel:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Du måste ange ett grupp- eller alternativnamn för detta kommando." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Du måste ange en grupp, alternativ och värde för detta kommando." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "%(option)s underkommandot kräver ett grupp- och behörighetsnamn." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "Gruppen `%(group)s` är inte tillgänglig.\n" +"De tillgängliga grupperna är: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "Behörigheten `%(option)s` är inte tillgänglig." + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Kan inte lägga till grupp `%(group)s` det finns redan." + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Kan inte ta bort inbyggd grupp." + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "Ägargruppen är inte redigerbar." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Det gick inte att spara gruppen: `%(group)s`" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "Gör set på %(option)s med värde: %(value)s" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Behörighet `%(option)s` uppdaterades inte!" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Det gick inte att ändra användarnamn. Ändrade du namn för många gånger?\n" +"Kom ihåg att namnändringar är begränsade till två gånger per timme.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Misslyckades att ändra användarnamn på grund av fel: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Det går inte att ändra smeknamn: ingen behörighet." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Misslyckades att ange smeknamn på grund av fel: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Anpassad emoji måste vara från den här servern för att använda som prefix." + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Prefix per server är inte aktiverad!\n" +"Använd konfigurationskommandot för att uppdatera prefixet istället." + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "Du måste ange en URL eller bifoga en fil." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Det gick inte att ändra avatar på grund av fel: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "MusicBot hittade en %s utan guild! Detta kan vara ett problem." + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Inte ansluten till servern `%(guild)s`" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Ogiltigt angivet alternativ, använd en av: mjuk, full, uppgradering, uppip eller upgit" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Du måste ange ett ID eller namn." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "Ingen guild hittades med ID eller namn `%(input)s`" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "Aktivera debug brytpunkt ID: %(uuid)s" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Kunde inte importera `objgraph`, är det installerat?" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "Felsökningskoden gick med eval()." + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "Felsökningskoden kördes med körning()." + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "Felsökningskoden misslyckades att köra." + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Misslyckades att köra felsökningskod:\n" +"%(py_code)s\n" +"Undantag: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "Underkommando måste vara ett av: %(options)s" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Kunde inte lokalisera git körbar." + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "Det gick inte att söka efter uppdateringar via git-kommandot." + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "Paket saknar meta i pip rapport." + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "Det gick inte att hämta pip-uppdateringsstatus på grund av något fel." + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "Har en konstig röstklient post." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookies har redan aktiverats." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Cookies måste laddas upp för att kunna aktiveras. (Missing cookies file.)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Kunde inte aktivera cookies på grund av fel: %(raw_error)s" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Kunde inte byta namn på cookiefilen på grund av fel: %(raw_error)s\n" +"Cookies tillfälligt inaktiverade och kommer att aktiveras igen vid nästa omstart." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "Inga bifogade uppladdningar hittades, försök igen när du laddade upp en cookie-fil." + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "Kunde inte ta bort gamla, inaktiverade cookiefil: %(raw_error)s" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Fel vid nedladdning av cookie-filen från diskett: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Kunde inte spara kakor till disk: %(raw_error)s" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "Har ett meddelande utan kanal, på något sätt: %s" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "Ignorerar kommando från mig själv (%s)" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "Ignorerar kommando från annan bot (%s)" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "Ignorerar kommando från kanal av typ: %s" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "Användare i blocklistan: %(id)s/%(name)s försökte kommando: %(command)s" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "Meddelande från %(id)s/%(name)s: %(message)s" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Detta kommando är inte tillåtet för din behörighetsgrupp: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Detta kommando kräver att du är i en röstkanal." + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "Ogiltig kommandoanvändning, saknade värden för parametrar: %(params)r" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "Fel i %(command)s: %(err_name)s: %(err_text)s" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "Undantag vid hantering av kommando: %(command)s" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "Kan inte generera hjälp för saknat kommando: %s" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "Saknar hjälpdata för kommandot: %s" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "Lämnar röstkanal %s i %s på grund av inaktivitet." + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "MusicBot har blivit ansluten." + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "MusicBot har blivit frånkopplad." + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "Har ett uttag: %s" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "Rösttillstånd uppdaterat innan on_ready finished" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "Ignorerar %s i %s eftersom det är en bunden röstkanal." + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "%s har upptäckts som tom. Hantering av timeouts." + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "En användare anslöt till %s, avbryter timer." + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "Botten blev flyttad och röstkanalen %s är tom. Hantering av timeouts." + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "Botten blev flyttad och röstkanalen %s är inte tom." + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "Följer inte längre %s" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "Följande användare `%(user)s` till kanal: %(channel)s" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "Röststaten kopplar ifrån innan kanalen är ingen." + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "Frånkopplad från röst med Discord API i: %(guild)s/%(channel)s (kod: %(code)s) [S:%(state)s]" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "Kan inte använda auto-join-kanal med typ: %(type)s i guild: %(guild)s" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "Kan inte hitta den automatiskt anslöta kanalen, togs den bort? Guild: %s" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "Återansluter till auto-anslöt guild i kanalen: %s" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "Kan inte ansluta till kanalen: %s" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "Bot har lagts till i guild: %s" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "Vänster guild '%s' på grund av bot ägaren hittades inte." + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "Skapar datamapp för guild %s" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "Bot har tagits bort från guild: %s" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "Uppdaterad guild-lista:" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "Guild \"%s\" har blivit tillgänglig." + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "Återupptar spelare i \"%s\" på grund av tillgänglighet." + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "Guild \"%s\" har inte blivit tillgänglig." + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "Pausa spelare i \"%s\" på grund av otillgänglighet." + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "Guild uppdatering för: %s" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "Guild-attribut %(attr)s är nu: %(new)s -- Var: %(old)s" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "Kanaluppdatering för: %(channel)s -- %(changes)s" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "Skapar %s" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "Laddar konfiguration från: %s" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Fel vid läsning av konfigurationen.\n\n" +"Problem:\n" +" En eller flera obligatoriska konfigurationsalternativ saknas.\n" +" De saknade avsnitten är:\n" +" %(sections)s\n\n" +"Lösning:\n" +" Reparera konfigurationsalternativsfilen.\n" +" Varje [Section] får bara visas en gång, utan någon annan text på samma rad.\n" +" Varje avsnitt måste ha minst ett alternativ.\n" +" Använd exempelalternativen som mall eller kopiera den från förrådet." + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "Kan inte lagra mer än %s loggfiler. AlternativloggarMaxKept kommer att begränsas istället." + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "Konfigurationsalternativet LogsDateFormat är tomt och detta kommer att bryta rotation av loggfilen. Använder standard istället." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Fel vid validering av konfigurationsalternativ.\n\n" +"Problem:\n" +" Konfigurationsalternativet AudioCachePath är inte en katalog.\n\n" +"Lösning:\n" +" Kontrollera att sökvägen du har konfigurerat är en sökväg till en mapp / katalog." + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "Ett undantag kastades vid validering av AudioCachePath." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Fel vid validering av konfigurationsalternativ.\n\n" +"Problem:\n" +" AudioCachePath config option kunde inte ställas in på grund av ett fel:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Dubbelkolla inställningen är giltig, sökväg för tillgänglig katalog." + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "Ljudcache kommer att lagras i: %s" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Fel vid läsning av konfigurationsalternativ.\n\n" +"Problem:\n" +" Ingen bot Token angavs i konfigurationsalternativen eller miljön.\n\n" +"Lösning:\n" +" Ställ in konfigurationsalternativet eller ange miljövariabeln %(env_var)s med en app-token." + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "StatusMessage config alternativet är för långt, det kommer att begränsas till 128 tecken." + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "Standardhastigheten för uppspelning måste vara mellan 0.5 och 100.0. Alternativvärdet för %.3f kommer att vara begränsat istället." + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "Cookies TXT-fil upptäckt. MusicBot kommer att skicka dem till yt-dlp.\n" +"Cookies rekommenderas inte, kan inte stödjas och kan helt bryta.\n" +"Kopiering av cookies från din webbläsare riskerar att avslöja personuppgifter och \n" +"kan i bästa fall leda till att dina konton förbjuds!\n\n" +"Du har blivit varnad! Lycka till! \\U0001F596\n" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "Validerar alternativ med tjänstdata..." + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "Förvärvad ägar-ID via API" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Fel vid hämtning av 'OwnerID' automatiskt.\n\n" +"Problem:\n" +" Discord-appinfo är inte tillgänglig.\n" +" Detta kan vara ett tillfälligt API-avbrott eller ett fel.\n\n" +"Lösning:\n" +" Ställ Manuellt in 'OwnerID' konfigurationsalternativet eller försök igen senare." + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "MusicBot har ingen användarinstans, kan inte fortsätta." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Fel vid validering av konfigurationsalternativ.\n\n" +"Problem:\n" +" Konfigurationen 'OwnerID' är densamma som ditt Bot / App ID.\n\n" +"Lösning:\n" +" Använd inte Bot eller App ID i fältet 'OwnerID'." + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "Kan inte hitta konfigurationsalternativ. Kontrollerar alternativ ..." + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "Byter namn på %(ini_file)s till %(option_file)s, du bör förmodligen aktivera filtillägg." + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "Kopierar existerande exempelfil: %(example_file)s" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "Genererade en ny %(example_file)s och kopierade den till %(option_file)s" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "Något gick fel när du försökte hitta en konfigurationsalternativsfil." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Fel vid lokalisering av konfiguration.\n\n" +"Problem:\n" +" Kunde inte hitta eller skapa en konfigurationsfil på grund av ett fel:\n" +" %(raw_error)s\n\n" +"Lösning:\n" +" Verifiera konfigurationsmappen och filerna finns och kan läsas av MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Fel vid laddning av konfiguration.\n\n" +"Problem:\n" +" MusicBot kunde inte läsa konfigurationsfilen på grund av ett fel:\n" +" %(raw_error)s\n\n" +"Lösning:\n" +" Se till att filen är tillgänglig och felfri.\n" +" Kopiera exempelfilen från repo om allt annat misslyckas." + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "Dev Bug! Konfigurationsalternativet har getter som inte är tillgängligt." + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "Dev Bug! Konfigurationsalternativet har ogiltig typ, getter och standard måste vara samma typ." + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "Alternativet saknades tidigare." + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "Konfigurationssektion inte i tolkad konfiguration! saknas: %s" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "Sparad konfigurationsalternativ: %(config)s = %(value)s" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "Det gick inte att spara konfigurationen: %s" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "Alternativnamn är inte unika mellan INI-sektioner! Lösaren är inaktiverad." + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "Misslyckades att spara standard-INI-filen på: %s" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Fel vid laddning av konfigurationsvärde.\n\n" +"Problem:\n" +" Ägar-ID i [%(section)s] > %(option)s är inte giltigt.\n\n" +"Solution:\n" +" sätt %(option)s till ett numeriskt ID eller sätt det till `auto` eller `0` för automatisk ägarbindning." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Fel vid laddning av konfigurationsvärde.\n\n" +"Problem:\n" +" Konfigurationsalternativet [%(section)s] > %(option)s är inte en giltig filplats.\n\n" +"Lösning:\n" +" Kontrollera sökvägsinställningen och se till att filen finns och är tillgänglig för MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Fel vid laddning av konfigurationsvärde.\n\n" +"Problem:\n" +" Ett av ID:n i alternativet [%(section)s] > %(option)s är ogiltigt.\n\n" +"Lösning:\n" +" Se till att alla ID är numeriska, och separeras endast med mellanslag eller kommatecken." + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "Ogiltigt DebugLevel alternativ \"%(value)s\" angiven, faller tillbaka till nivå: %(fallback)s" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "Alternativ [%(section)s] > %(option)s har ogiltigt konfigurationsvärde '%(value)s' som använder standard istället." + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "Alternativ [%(section)s] > %(option)s har ett värde som är större än 100 %% (%(value)s) och kommer istället att sättas till %(fallback)s." + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "Döper om INI-filpost [%(old_s)s] > %(old_o)s till [%(new_s)s] > %(new_o)s" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "Uppgraderar konfigurationsfilen med bytt namn på alternativ..." + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "Det gick inte att uppgradera konfigurationen. Du måste uppgradera den manuellt." + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "Blocklistefil hittades inte: %s" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "Kunde inte ladda blocklistan från filen: %s" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "Kunde inte uppdatera blocklistefilen: %s" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr "Laddad lista över användarblock med %s poster." + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "Vi hittade en gammal svartlistad fil, den kommer att döpas om till: %s" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr "Laddade en Låtblockslista med %s poster." + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "Kan inte ladda data för guild med ID 0. Detta är sannolikt ett fel i koden!" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "Ingen fil för guild %(id)s/%(name)s" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "Laddar guild-data för guild med ID: %(id)s/%(name)s" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "Ett OS-fel förhindrat läsning av guild datafil: %s" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "Guild %(id)s/%(name)s har anpassat kommandoprefix: %(prefix)s" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "Kan inte spara data för guild med ID 0. Detta är sannolikt ett fel i koden!" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "Kunde inte spara guild-specifika data på grund av OS-fel." + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "Det gick inte att serialisera guild specifik data på grund av ogiltiga data." + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "Tvinga YTDLP att använda användaragenten: %s" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "MusicBot kommer att använda cookies för yt-dlp från: %s" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "Yt-dlp kommer att använda din konfigurerade proxyserver." + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "Original OAuth2 plugin är installerad och kommer att användas istället.\n" +"Detta kan orsaka MusicBot att inte stänga helt, eller hänga väntande auktorisering!\n" +"För att stänga MusicBot, måste du manuellt döda MusicBot processen!\n" +"Yt-dlp är inställd på att visa varningar och andra loggmeddelanden, för att visa Auth koden.\n" +"Avinstallera yt-dlp-youtube-oauth2-paketet för att använda integrerade OAuth2-funktioner istället." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD verkar inte ha några rubriker..." + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "Det gick inte att kontrollera mediahuvuden på grund av timeout." + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "Misslyckad begäran om HEAD för: %s" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "undantag för HEAD begäran: " + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "Sanitized YTDL extraktion information (inte JSON):\n" +"%s" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "Sanitized YTDL extraktionsinformation (ej JSON): %s" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "Song info extrahering returnerade inga data." + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "Kallas extrah_info med: '%(subject)s', %(args)s, %(kws)s" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "Kan inte köra extraktion, loop är stängd. (Detta är normalt vid avstängningar.)" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Kan inte fortsätta extraktionen, händelseslingan är stängd." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "Spotify-URL är ogiltig eller stöds inte." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Fel i yt-dlp vid nedladdning av data: %(raw_error)s" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "Fel vid nedladdning med ström-URL" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "Anta att innehållet är en direkt ström" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Kan inte strömma en ogiltig URL." + +#: musicbot/downloader.py:517 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "Caught NoSupportingHandlers, försöker igen efter att ha ersatt kolon med utrymme." + +#: musicbot/downloader.py:544 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "Extraktor youtube:search returnerade resultat med en enda post, ersätter basinfo med post info." + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "Kallas safe_extract_info med: %(args)s, %(kws)s" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "Den lokala mediefilen kunde inte hittas." + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "Saknar __input_subject från YtdlpResponseDict" + +#: musicbot/downloader.py:623 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "Poster är inte en lista i YtdlpResponseDict, sätt process=True för att undvika detta." + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "Varning, varaktighet fel för: %(url)s" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "modulen 'pymediainfo' hittades inte, kommer att falla tillbaka till ffprobe." + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "Skapade framtid för %r" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "Avslutade terminer för %(entry)r med %(callback)r" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "Ohanterat undantag i _for_each_future callback." + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "Startar asyncio subprocess (%(process)s) med kommandot: %(run)s" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "Extraktion gav inte en varaktighet för denna post.\n" +"MusicBot kan inte uppskatta kötider förrän den är nerladdad.\n" +"Postnamn: %s" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "Inmatningsdata saknar versionsnummer, kan inte deserialisera." + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "Inmatningsdata har fel versionsnummer, kan inte deserialiseras." + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "Deserialized URLPlaylistEntry kan inte hitta kanal med ID: %s" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "Deserialized URLPlaylistEntry har fel kanaltyp: %s" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized URLPlaylistEntry kan inte hitta författare med ID: %s" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized URLPlaylistEntry har ett författar-ID men ingen kanal för uppslag!" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "Kunde inte ladda %s" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Kan inte ladda ner Spotify-länkar, bearbetningsfel med typ: %(type)s" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "Gör dig redo för inmatning: %r" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "Ladda ner cachade med olika tillägg..." + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "Lokal storlek skiljer sig från avlägsen storlek. Åternedladdning..." + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "Nedladdningen är redan cachad på: %s" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "MusicBot kunde inte hämta varaktighetsdata för denna post.\n" +"Kö tidsberäkning kan vara otillgänglig tills denna låt är rensad.\n" +"Inmatningsfil: %s" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "Fick en varaktighet på %(time)s sekunder för filen: %(file)s" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." +msgstr "Det finns ett problem med att arbeta ut EQ, sannolikt orsakad av en konstig installation av FFmpeg. Detta har inte påverkat förmågan för boten att fungera, men kommer att innebära att dina spår inte kommer att utjämnas." + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "Undantag vid kontroll av postdata." + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "Försöker få varaktighet via pymediainfo för: %s" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "Det gick inte att få varaktighet via pymediainfo." + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "Försöker få varaktighet via ffprobe för: %s" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "Kunde inte hitta ffprobe i din sökväg!" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "ffprobe returnerade något som inte kunde användas." + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "ffprobe kunde inte utföras av någon anledning." + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "Beräknar medelvolym av: %s" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "Kunde inte hitta ffmpeg på din sökväg!" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr "Kunde inte tolka 'jag' i normalisera json." + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr "Kunde inte tolka 'LRA' i normalisera json." + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr "Kunde inte tolka \"TP\" i normalisera json." + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr "Kunde inte tolka 'thresh' i normalisera json." + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr "Kunde inte tolka 'offset' i normalisera json." + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "Hämtning startad: %r" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "Ladda ner försök %s av 3..." + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "Nedladdningen är ofärdig, försöker på %(time).1f sekunder. Anledning: %(raw_error)s" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "Nedladdningen misslyckades, försöker inte! Anledning: %(raw_error)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Nedladdningen slutfördes inte på grund av ett fel: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Nedladdning misslyckades på grund av ett yt-dlp fel: %(raw_error)s" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "Extraktion stötte på ett ohanterat undantag." + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Nedladdning misslyckades på grund av ett ohanterat undantag: %(raw_error)s" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "Hämtning misslyckades: %r" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Det gick inte att extrahera data för de begärda medierna." + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "Nedladdning slutförd: %r" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "Deserialized StreamPlaylistEntry kan inte hitta kanal med ID: %s" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "Deserialized StreamPlaylistEntry har fel kanaltyp: %s" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized StreamPlaylistEntry kan inte hitta författare med ID: %s" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized StreamPlaylistEntry har ett författar-ID men ingen kanal för uppslag!" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "Deserialized LocalFilePlaylistEntry kan inte hitta kanal med ID: %s" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "Deserialized LocalFilePlaylistEntry har fel kanaltyp: %s" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "Deserialized LocalFilePlaylistEntry kan inte hitta författare med ID: %s" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "Deserialized LocalFilePlaylistEntry har ett författar-ID men ingen kanal för uppslag!" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "Fick en varaktighet på %(seconds)s sekunder för filen: %(file)s" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "Misslyckades att ta bort cachefilen: %s" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "Ljudets cache-katalog har tagits bort." + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "Cachemappen kunde inte tas bort eller döpas om." + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "Ljudets cache-katalog kunde inte tas bort." + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "Ljudcache har inga gränser, inget att ta bort." + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "Ljudcache raderad %(number)s fil(er), totalt %(size)s borttagen." + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "Ljudcachelagrad behöll %(number)s fil(er) från autospellista, totalt behållet av %(size)s." + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "Ljudcache är nu %(size)s över %(number)s fil(er)." + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "Cachemappen för ljud saknas, inget att ta bort." + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "Ljud-cache-filen är från autospelarlistan men markerad som förbannad, ignorerar den." + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "Cache-nivån kräver rensning. %s" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr "Automatisk spellista har ingen cache-karta, går vidare." + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr "Laddade cache-karta för automatisk spellista med %s poster." + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr "Det gick inte att läsa in cache-karta för automatisk spellista." + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr "Sparade cache-karta för automatisk spellista med %s poster." + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr "Det gick inte att spara cachekartan för automatisk spellista." + +#: musicbot/filecache.py:355 +#, python-format +msgid "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "Auto spellista cache karta konflikt på nyckeln: %(file)s Gammal: %(old)s Ny: %(new)s" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "Lang Argument fel: %s" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "Det gick inte att läsa in loggöversättningar för någon av: [%s] i: %s" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "Misslyckades att läsa in discord översättningar för någon av: [%s] i: %s" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "Laddar JSON-fil: %s" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "Fel vid tolkning av %s som JSON" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "Kunde inte hämta data från JSON-nyckel: %s" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "Hoppar över logger setup, redan konfigurerad" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "Loggnivån har tidigare satts via åsidosättning till: %s" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "Ändra loggnivå till: %s" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr "MusicBot loggers har kallats för att stänga av." + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "Behörighetsfil hittades inte, kopierar från: %s" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "Fel vid kopiering av exempelbehörighetsfil: %s" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr "Config 'OwnerID' är inställd automatiskt, kommer att ställa in korrekt senare." + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "Validerar behörigheter..." + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr "Ställa in auto 'OwnerID' för ägarbehörighetsgrupp." + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "Uppdaterar grupp i behörighetsfil: %s" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "Tar bort grupp från behörighetsfil: %s" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "Lägger till ny grupp till behörighetsfil: %s" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "Sparar behörighetsfilen nu." + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "ConfigUpdater kunde inte tolka behörighetsfilen!" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "Du har ett dubblettavsnitt, åtgärda din behörighetsfil!" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "Det gick inte att spara behörighetsgruppen: %s" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "Dev Bug! Behörigheten har getter som inte är tillgänglig." + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "Dev Bug! Behörigheten har ogiltig typ, getter och standard måste vara samma typ." + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "Max sökobjekt kan inte vara större än 100. Inställning till 100." + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "Du har inte behörighet att spela de begärda medierna.\n" +"yt-dlp extractor `%(extractor)s` är inte tillåtet i din grupp." + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "Rensning blev anropad på ljudkällan: %r" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "MusicPlayer.skip() kallas: %s" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "MusicPlayer.stop() kallas: %s" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "Guild eller nätverk är inte tillgängligt, kan inte återuppta uppspelningen." + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "MusicPlayer.resume() kallas: %s" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "MusicPlayer.pause() kallas: %s" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "MusicPlayer.kill() kallas: %s" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "Uppspelning klar, men _current_entry är ingen." + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "Möjlig varning från kill_current_player()" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "MusicPlayer.play() kallas: %s" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "Musikspelaren är död, kan inte spela." + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "Guild eller nätverk är inte tillgängligt, kan inte starta uppspelning." + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "MusicPlayer var tidigare pausad, återuppta nuvarande spelare." + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "MusicPlayer är redan låst för uppspelning, detta samtal ignoreras." + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "Det gick inte att hämta nästa post." + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "Det gick inte att bearbeta posten för uppspelning." + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "Skapa spelare med alternativ: ffmpeg %(before)s -i %(input)s %(after)s" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "Spelar %(source)r med %(client)r" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "Hoppar över radering av '%s', hittade låten i kö" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "Tar bort fil: %s" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "Fil raderad: %s" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "Kan inte ta bort filen, den används för tillfället." + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr "Kan inte ta bort filen på grund av ett behörighetsfel." + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "Kan inte ta bort filen, den hittades inte." + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "Fel vid försök att ta bort fil." + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "Kunde inte ta bort filen, ge upp och gå vidare" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "Deserialize returnerade ett objekt som inte är en musikspelare: %s" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "Det gick inte att deserialisera spelaren" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "Data från ffmpeg: %s" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "Fel från ffmpeg: %s" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "Varning från ffmpeg: %s" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "Okänt fel vid avkodning av meddelande från ffmpeg" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "Avkodad data från ffmpeg: %s" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "Lägger till strömpost för URL: %(url)s" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Kunde inte extrahera information" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "Detta är en spellista." + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "Inmatningsinformation verkar vara en ström, lägger till ström post..." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Ogiltig innehållstyp `%(type)s` för URL: %(url)s" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "Fick text/html för innehållstyp, detta kan vara en ström." + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "Otvivelaktig innehållstyp \"%(type)s\" för url: %(url)s" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "Lägger till URLPlaylistEntry för: %(subject)s" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "Lägger till LocalFilePlaylistEntry för: %(subject)s" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "Ignorerade video från sammansatt spellista länk med ID: %s" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "Tillåt inte inlägg som finns i listan över låtblock: %(title)s URL: %(url)s" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "Ignorerar låt i poster av '%s', varaktighet längre än tillåtet maximalt." + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "Lägger inte till YouTube-video eftersom den är markerad privat eller raderad: %s" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "Kunde inte lägga till objekt" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "Föremål: %s" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "Hoppade över %s dåliga poster" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "Ordna om looping över poster." + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "Ladda ner nästa låt: %r" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "ingen varaktighet data" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "ingen varaktighet i aktuell post" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Ogiltig track_data, måste vara av typen `track` fick `%(type)s`" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "Ignorerade icke-spår post i spellista med typ: %s" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "Spotify Album totalt tack: %(total)s Nästa URL: %(url)s" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "Hämtar Spotify Album Nästa URL: %s" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Spotify Album Object kanske inte är komplett, förväntade %(total)s spår men fick %(number)s" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "Spotify Album har fler spår än initial totalt." + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "Totalt antal Spotify-tack: %(total)s Nästa URL: %(url)s" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "Hämtar Spotify spellista Nästa URL: %s" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "Spotify Playlist Object kanske inte är komplett, förväntade spår från %(total)s men fick %(number)s" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "Spotify Playlist har fler låtar än initial totalt." + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "Spotify Spellista innehöll %s användbara spår." + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Svarsstatus är inte OK: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "Svar JSON avkodade inte till en dict!" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "Misslyckades att få GET begäran till url: %s" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Kunde inte göra GET till URL: %(url)s Orsak: %(raw_error)s" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "Misslyckades att göra POST begäran till url: %s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Kunde inte göra POST till URL: %(url)s Orsak: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Det gick inte att hämta en gästtoken från Spotify, försök ange klient-ID och klienthemlighet" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "Skapade en ny åtkomsttoken för gästläge." + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "API-svaret innehöll inte förväntade data. Saknad nyckel: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "API-svar innehöll oväntade data.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Begärda en token från Spotify, slutade inte få en" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "Skapade ett nytt klientläge åtkomsttoken." + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "API-svarsstatus är inte OK: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "Misslyckades att hämta Spotify gästtoken." + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "Misslyckades att hämta gästtoken på grund av: %(raw_error)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Endast ägaren kan använda detta kommando." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Endast utvecklaranvändare kan använda detta kommando." + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr "Kan inte räkna medlemmar när voice_channel är ingen." + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "Det gick inte att spara ytdlp oauth2 tokendata på grund av: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr "Laddar YouTube TV OAuth2-tokendata." + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "Det gick inte att ladda ytdlp oauth2 token data på grund av: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "Lagra YouTube TV OAuth2 token data" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr "Ogiltig cachad OAuth2-tokendata." + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "Åtkomsttoken har löpt ut, uppdateras" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "YouTube-cookies har tillhandahållits, men OAuth2 används. Om du stöter på problem, sluta tillhandahålla YouTube-cookies till yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "Uppdaterar YouTube TV oauth2 token..." + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "Det gick inte att uppdatera OAuth2-åtkomsttoken på grund av: %s\n" +"Startar om behörighetsflödet..." + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "Startar oauth2 flow..." + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "\n" +"OBS:\n" +"För att ge yt-dlp tillgång till ditt konto, besök:\n" +" %s\n" +"Ange sedan denna auktoriseringskod: %s\n" +"Du har %s sekunder för att slutföra auktoriseringen.\n" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "Ansökan kan hänga till auktoriseringstid om den är stängd vid denna tidpunkt. Detta är normalt." + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr "Tidsgräns i väntan på OAuth2-token." + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "Enhetskoden har löpt ut, startar om behörighetsflödet för yt-dlp." + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "Yt-dlp OAuth2-auktorisering lyckades." + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "Lägger till OAuth2-plugin till Yt-dlp IE: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "Standard Yt-dlp klienter: %s" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "Kunde inte hitta git körbar." + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "Försöker uppgradera med `git pull` på nuvarande sökväg." + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "Resultat av git pull: %s" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "Uppgradering misslyckades, du måste köra `git pull` manuellt." + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "Kan inte köra pip." + +#: run.py:180 +msgid "Error using -m method" +msgstr "Fel vid användning av -m-metod" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "PIP misslyckades vid anrop av underprocess." + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr "PIP misslyckades på grund av behörighetsfel." + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "PIP misslyckades på grund av att Python saknades? (%s)" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "PIP misslyckades på grund av OSError." + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "Kunde inte avkoda pip uppdateringsrapport JSON." + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "Kan inte hitta eller exekvera python -m pip" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "Försöker uppgradera med `%s` på nuvarande sökväg..." + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "Resultat av pip uppgradering:\n" +"%s" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "Resultat avsluta kod från pip uppgradering: %s" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "Uppgradering misslyckades eller så kunde vi inte förstå utdata" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "Du kan behöva köra `%s` manuellt." + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "Tryck på enter för att fortsätta . . ." + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "Starta sanitetskontroller" + +#: run.py:361 +msgid "Required checks passed." +msgstr "Krävda kontroller passerade." + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "Hoppade över att söka efter uppdateringar." + +#: run.py:376 +msgid "Optional checks passed." +msgstr "Valfria kontroller godkändes." + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "Söker efter Python 3.8+" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "Python 3.8+ krävs. Denna version är %s" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "Försöker hitta Python 3.8..." + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "Kunde inte hitta py.exe" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "Kunde inte köra `py.exe -3.8` " + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "Python 3 hittades. Startar bot..." + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "Försöker \"python3.8\"" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "Kunde inte hitta python3.8 på banan." + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "\n" +"Python 3.8 hittades. Startar om bot med: %s run.py\n" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "Kunde inte hitta Python 3.8 eller senare. Vänligen kör botten med Python 3.8" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "Säkerställa att vi är i rätt miljö" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "Kontroll av misslyckade miljöer, %s" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "Nuvarande arbetskatalog verkar inte vara skrivbar" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "Flytta botten till en mapp som är skrivbar" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "Upptäckt FFmpeg är installerad på: %s" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "Lägger till lokala bins / mappmiljö PATH för medföljande ffmpeg..." + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "MusicBot kunde inte hitta FFmpeg binär i din miljö.\n" +"Installera FFmpeg så den är tillgänglig i din miljö PATH variabel." + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "I Windows kan du lägga till en förkompilerad EXE till mappen MusicBot `bin`,\n" +"eller så kan du installera FFmpeg hela systemet med WinGet eller genom att köra installationen. vid fil." + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "På MacOS kanske du kan installera FFmpeg via homebrew.\n" +"Annars kan du kontrollera FFmpeg-webbplatsen för att bygga eller installera steg." + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "På Linux gör många distributioner FFmpeg tillgängligt via systempakethanterare.\n" +"Sök efter ffmpeg med din systempakethanterare eller bygg från källkod." + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "Mindre än %sMB ledigt utrymme kvar på denna enhet" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "\n" +"Söker efter uppdateringar till MusicBot eller beroenden..." + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "Inga MusicBot uppdateringar tillgängliga via `git`-kommandot." + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "Kunde inte söka efter uppdateringar med `git`-kommandon. Du bör kontrollera manuellt." + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "Följande paket kan uppdateras:\n" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr " %s till version: %s\n" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "Inga beroendeuppdateringar tillgängliga via `pip`-kommandot." + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "Kunde inte söka efter uppdateringar med `pip`-kommandon. Du bör kontrollera manuellt." + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "Du kan köra en guidad uppdatering genom att använda kommandot:\n" +" %s ./update.py" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "Värdet är över den maximala gränsen." + +#: run.py:638 +msgid "Value must not be negative." +msgstr "Värdet får inte vara negativt." + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "Värdet för Max Loggar Kept måste vara ett tal från 0 till %s" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "Loggnivå '%s' är inte tillgänglig." + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "Loggnivå måste vara en av: %s" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "Starta en musik som spelar discord bot byggd med discord.py, youtubeDL, och ffmpeg." + +#: run.py:669 +msgid "Available via Github:" +msgstr "Tillgänglig via Github:" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "För mer hjälp och stöd med denna bot, gå med i vår diskotek:" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "Denna programvara tillhandahålls under MIT-licensen." + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "Se 'LICENSE' textfil för fullständiga detaljer." + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "Åsidosätt standard/systemet upptäckt språk för all text i MusicBot." + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "Använd detta språk för alla serversidiga loggmeddelanden från MusicBot." + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "Använd detta språk för alla meddelanden som skickats till disharmoni från MusicBot.\n" +"Detta hindrar inte val av språk per guild." + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "Skriv ut information om MusicBot versionen och avsluta." + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "Hoppa över alla valfria startkontroller, inklusive uppdateringskontrollen." + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "Hoppa över endast diskutrymme kontroll vid start." + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "Hoppa över endast uppdateringskontrollen vid start." + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "Inaktivera MusicBot från att försöka installera beroenden när det inte kan importera dem." + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "Ange hur många loggfiler som ska behållas, mellan inklusive 0 och %s . (Standard: %s)" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "Åsidosätt loggnivåinställningar som är inställda i konfigurationen. Måste vara en av: %s" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "Åsidosätt standarddatumformatet som används vid roterande loggfiler. Detta bör innehålla värden som är kompatibla med strftime(). (Standard: '%s')" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "Version: %s" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "Öppnade en ny MusicBot instans. Denna terminal kan stängas säkert!" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "Laddar MusicBot version: %s" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "Loggen öppnad: %s" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "Python version: %s" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "Byter arbetskatalog till: %s" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "Kan inte starta boten! Du startade `run.py` i fel katalog och vi kunde inte hitta `musicbot` och` . den` mappar för att verifiera en ny katalogplats." + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "För bästa resultat, starta `run.py` från samma mapp som du klonade MusicBot in.\n" +"Om du inte använde git för att klona utvecklingskatalogen, är du starkt uppmanad." + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "Certifikatfel är inte ett verifieringsfel, försöker inte certifi och avslutar." + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "Här är det exakta felet, det kan vara en bugg." + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "För att enkelt lägga till ett certifikat i Windows trustbutik, \n" +"kan du öppna den misslyckade webbplatsen i Microsoft Edge eller IE...\n" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "Kunde inte hämta Utfärdarcertifikat från standard trustbutik, försöker certifi istället." + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "Syntaxfel (ändring upptäcktes, har du redigerat koden?)" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "Syntaxfel (detta är en bugg, inte ditt fel)" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "Kan inte starta MusicBot på grund av ett fel!\n\n" +"Problem:\n" +" Ett fel uppstod vid import av MusicBot eller ett beroendepaket.\n\n" +"Lösning:\n" +" Du måste manuellt installera pip-paket för MusicBot\n" +" eller starta utan `--no-install-deps` och MusicBot kommer att försöka installera dem åt dig." + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "Försöker installera MusicBot beroendepaket automatiskt...\n" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "Musicbot-beroenden kanske inte är installerade!\n\n" +"Problem:\n" +" Installationsprocessen för pip slutade med ett möjligt fel.\n" +" Vissa eller alla beroenden kan saknas.\n\n" +"Lösning:\n" +" Du måste manuellt installera beroendepaket.\n" +" Öppna en CMD-prompt/terminal till MusicBot-katalogen.\n" +" Du kan prova att använda uppdateringsskripten installera paket.\n" +" Eller prova detta manuella kommando:\n" +" %(py_bin)s -m pip install -U -r . requirements.txt\n\n" +"Du kan också be om hjälp i MusicBots supportdisk:\n" +" https://discord.gg/bots" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "OK, låt hoppas installera beroenden fungerade!" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "MusicBot fick ett ImportError efter att ha försökt installera paket. MusicBot måste avslutas..." + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "Undantaget som orsakade ovanstående fel: " + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "MusicBot gör en mjuk omstart..." + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "MusicBot gör en fullständig process omstart..." + +#: run.py:1169 +msgid "Error starting bot" +msgstr "Fel vid start av bot" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "Stänger händelseloop." + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "Startar om %s sekunder..." + +#: run.py:1183 +msgid "All done." +msgstr "Allt klart." + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "OK, vi stänger!" + diff --git a/i18n/sv_SE/LC_MESSAGES/musicbot_messages.mo b/i18n/sv_SE/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..75ce65a32c1c076e8abceb57bc1c90b36fe5826f GIT binary patch literal 106893 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

    |7bP=6ZM1$MwkG}zrDOL{=8i{O%lT6q zjB?*rZCU>{D2$~-#%vkN*#3;NOahX0k~P8V#2=#U-Cv>{zlEOo2&-Yic6!`}vY{nn zeauAZzBT#0L*h}cGa3UK;*W43@wav-ZDHLMeK_<)ndK8vcCa-lLs6}>Zn?ctT0RGp za4E_w++Fm;;8e?bHEV|ziTk2FRVSi6uGeEJJcTls?CTU<6ujQj4Iu($2vTu2u0(nK z*6Ct7Z%SEso_IDc#I&xK^U>)s%3QhKjWMT(Wx8tvYxmHxAB)nll_-zvBghch<|YLh z(=t6R=c7|N%KF@ivR)tHCm7aCFLViI^1Q|;*r>PG2d3#$u>+Q)emKflPe)nKdoUmW zKxxR2ePkoE`430IMaA)SeY5!k{fRx^ww#y9Iw+|fgVN9?n1csV#x$X?IuySlUWB`_ zQ$Kww7VmF4ADzbHDC%PdSk5=6U1)QE)BGLn@qVmF{1g+g)wf@+>!bC8abtA0 z4#zRnuW-lZ#%hnEF`D{`C_}Ul``|5<7mnC*x=$=cc^K`*Ay^_)8<>f*QLRGBV16d+ zUs6F5+Rx>^1XI=D^qZ5#GjFoIFt<--l2(w&&Ox zTTIg9A7C``6`O(|1+U4Pfk=!Z9)K+{7p0|lQBv$ZMfZbv%qE_RA?Qg*uZ>&C3 zGZl?q#OWvvoQwxBV3ua$SCmXuovk}uEXsAWPQ\n" "Language-Team: LANGUAGE \n" @@ -2218,8 +2218,8 @@ msgstr "" #: musicbot/bot.py:6934 #, python-format -msgid "Cannot set language to `%(locale)s` it s not available." -msgstr ".elbaliava ton s ti `%(locale)s` ot egaugnal tes tonnaC" +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr ".elbaliava ton si ti `%(locale)s` ot egaugnal tes tonnaC" #: musicbot/bot.py:6939 #, python-format diff --git a/musicbot/bot.py b/musicbot/bot.py index 9dbed0fd4..695f021b4 100644 --- a/musicbot/bot.py +++ b/musicbot/bot.py @@ -6928,7 +6928,7 @@ async def cmd_language( if subcmd == "set": if lang_code not in available_langs: raise exceptions.CommandError( - "Cannot set language to `%(locale)s` it s not available.", + "Cannot set language to `%(locale)s` it is not available.", fmt_args={"locale": ssd_.lang_code}, ) ssd_.lang_code = lang_code From 08e98206649379c4e2060035276c480c65309f0d Mon Sep 17 00:00:00 2001 From: Fae Date: Mon, 11 Nov 2024 16:52:02 -0800 Subject: [PATCH 09/10] Update translations --- i18n/en_US/LC_MESSAGES/musicbot_logs.mo | Bin 105849 -> 106367 bytes i18n/en_US/LC_MESSAGES/musicbot_logs.po | 1000 +++++++++--------- i18n/en_US/LC_MESSAGES/musicbot_messages.mo | Bin 102124 -> 103414 bytes i18n/en_US/LC_MESSAGES/musicbot_messages.po | 1048 ++++++++++--------- i18n/es_ES/LC_MESSAGES/musicbot_logs.mo | Bin 116252 -> 116796 bytes i18n/es_ES/LC_MESSAGES/musicbot_logs.po | 1000 +++++++++--------- i18n/es_ES/LC_MESSAGES/musicbot_messages.mo | Bin 112609 -> 113987 bytes i18n/es_ES/LC_MESSAGES/musicbot_messages.po | 1048 ++++++++++--------- i18n/fr_FR/LC_MESSAGES/musicbot_logs.mo | Bin 119663 -> 120226 bytes i18n/fr_FR/LC_MESSAGES/musicbot_logs.po | 1000 +++++++++--------- i18n/fr_FR/LC_MESSAGES/musicbot_messages.mo | Bin 115469 -> 116880 bytes i18n/fr_FR/LC_MESSAGES/musicbot_messages.po | 1048 ++++++++++--------- i18n/it_IT/LC_MESSAGES/musicbot_logs.mo | Bin 114844 -> 115390 bytes i18n/it_IT/LC_MESSAGES/musicbot_logs.po | 1000 +++++++++--------- i18n/it_IT/LC_MESSAGES/musicbot_messages.mo | Bin 110229 -> 111599 bytes i18n/it_IT/LC_MESSAGES/musicbot_messages.po | 1048 ++++++++++--------- i18n/ja_JP/LC_MESSAGES/musicbot_logs.mo | Bin 114638 -> 115294 bytes i18n/ja_JP/LC_MESSAGES/musicbot_logs.po | 1000 +++++++++--------- i18n/ja_JP/LC_MESSAGES/musicbot_messages.mo | Bin 89526 -> 91036 bytes i18n/ja_JP/LC_MESSAGES/musicbot_messages.po | 1048 ++++++++++--------- i18n/pl_PL/LC_MESSAGES/musicbot_logs.mo | Bin 114661 -> 115211 bytes i18n/pl_PL/LC_MESSAGES/musicbot_logs.po | 1000 +++++++++--------- i18n/pl_PL/LC_MESSAGES/musicbot_messages.mo | Bin 109703 -> 111048 bytes i18n/pl_PL/LC_MESSAGES/musicbot_messages.po | 1048 ++++++++++--------- i18n/ru_RU/LC_MESSAGES/musicbot_logs.mo | Bin 132784 -> 133542 bytes i18n/ru_RU/LC_MESSAGES/musicbot_logs.po | 1000 +++++++++--------- i18n/ru_RU/LC_MESSAGES/musicbot_messages.mo | Bin 109317 -> 110908 bytes i18n/ru_RU/LC_MESSAGES/musicbot_messages.po | 1048 ++++++++++--------- i18n/sv_SE/LC_MESSAGES/musicbot_logs.mo | Bin 110939 -> 111478 bytes i18n/sv_SE/LC_MESSAGES/musicbot_logs.po | 1000 +++++++++--------- i18n/sv_SE/LC_MESSAGES/musicbot_messages.mo | Bin 106893 -> 108234 bytes i18n/sv_SE/LC_MESSAGES/musicbot_messages.po | 1048 ++++++++++--------- i18n/zh_CN/LC_MESSAGES/musicbot_logs.mo | Bin 60254 -> 60599 bytes i18n/zh_CN/LC_MESSAGES/musicbot_logs.po | 998 +++++++++--------- i18n/zh_CN/LC_MESSAGES/musicbot_messages.mo | Bin 47645 -> 48349 bytes i18n/zh_CN/LC_MESSAGES/musicbot_messages.po | 1045 +++++++++--------- 36 files changed, 9518 insertions(+), 8909 deletions(-) diff --git a/i18n/en_US/LC_MESSAGES/musicbot_logs.mo b/i18n/en_US/LC_MESSAGES/musicbot_logs.mo index dd6b179ec3c4402a3bb72628b9edfdc1941cd4be..d17ed0b71acb8d3ac9653393bdd002ad92270266 100644 GIT binary patch delta 13850 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 delta 13550 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 c4gcR(U$4G%?1R3mO=-Jo)t!r%_^#IYU;a24 %(max)s)" msgstr "Song duration exceeds limit (%(length)s > %(max)s)" -#: musicbot/bot.py:4295 +#: musicbot/bot.py:4298 #, python-format msgid "Added song(s) at position %s" msgstr "Added song(s) at position %s" -#: musicbot/bot.py:4332 +#: musicbot/bot.py:4335 #, python-format msgid "Cannot estimate time until playing for position: %d" msgstr "Cannot estimate time until playing for position: %d" -#: musicbot/bot.py:4393 +#: musicbot/bot.py:4396 #, python-format msgid "Failed to get info from the stream request: %s" msgstr "Failed to get info from the stream request: %s" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Streaming playlists is not yet supported." -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "You have reached your playlist item limit (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Please specify a search query. Use `help search` for more information." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "You cannot search for more than %(max)s videos" -#: musicbot/bot.py:4834 +#: musicbot/bot.py:4837 #, python-format msgid "Waiting for summon lock: %s" msgstr "Waiting for summon lock: %s" -#: musicbot/bot.py:4837 +#: musicbot/bot.py:4840 #, python-format msgid "Summon lock acquired for: %s" msgstr "Summon lock acquired for: %s" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "You are not connected to voice. Try joining a voice channel!" -#: musicbot/bot.py:4866 +#: musicbot/bot.py:4869 #, python-format msgid "Joining %(guild)s/%(channel)s" msgstr "Joining %(guild)s/%(channel)s" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot cannot follow a user that is not a member of the server." -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Player is not playing." -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Nothing in the queue to remove!" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "Nothing found in the queue from user `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Invalid entry number. Use the queue command to find queue positions." -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Can't skip! The player is not playing!" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "You do not have permission to force skip a looped song." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "You do not have permission to force skip." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "You do not have permission to skip a looped song." -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` is not a valid number" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "Speed cannot be applied to streamed media." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "You must provide a speed to set." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "The speed you provided is invalid. Use a number between 0.5 and 100." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Invalid option for command: `%(option)s`" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Failed to save aliases due to error:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "You must supply an alias and a command to alias" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "You must supply an alias name to remove." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "The alias `%(alias)s` does not exist." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "Config cannot use channel and user mentions at the same time." -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Unable to reload Config due to the following error:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Could not resolve section name from option name. Please provide a valid section and option name." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "The option given is ambiguous, please provide a section name." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "You must provide a section name and option name for this command." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "The option `%(option)s` is not available." -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "Option `%(option)s` is not editable. Cannot save to disk." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Failed to save the option: `%(option)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "Option `%(option)s` is not editable, value cannot be displayed." -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "Option `%(option)s` is not editable. Cannot update setting." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "You must provide a section, option, and value for this sub command." -#: musicbot/bot.py:5810 +#: musicbot/bot.py:5813 #, python-format msgid "Doing set with on %(config)s == %(value)s" msgstr "Doing set with on %(config)s == %(value)s" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "Option `%(option)s` was not updated!" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "Option `%(option)s` is not editable. Cannot reset to default." -#: musicbot/bot.py:5845 +#: musicbot/bot.py:5848 #, python-format msgid "Resetting %(config)s to default %(value)s" msgstr "Resetting %(config)s to default %(value)s" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "Option `%(option)s` was not reset to default!" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "The option command is deprecated, use the config command instead." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Invalid option specified, use: info, update, or clear" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Failed** to delete cache, check logs for more info..." -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "Queue page argument must be a whole number." -#: musicbot/bot.py:6004 +#: musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "There are no songs queued! Queue something with a play command." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "Requested page number is out of bounds.\n" "There are **%(total)s** pages." -#: musicbot/bot.py:6056 +#: musicbot/bot.py:6057 msgid "Skipped the current playlist entry." msgstr "Skipped the current playlist entry." -#: musicbot/bot.py:6099 +#: musicbot/bot.py:6100 msgid "Not enough entries to paginate the queue." msgstr "Not enough entries to paginate the queue." -#: musicbot/bot.py:6103 +#: musicbot/bot.py:6104 msgid "Could not post queue message, no message to add reactions to." msgstr "Could not post queue message, no message to add reactions to." -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Cannot use purge on private DM channel." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "The given URL was not a valid URL." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Could not extract info from input url\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "This does not seem to be a playlist." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "Invalid user ID or server nickname, please double-check the ID and try again." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Could not determine the discord User. Try again." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Permissions cannot use channel and user mentions at the same time." -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Unable to reload Permissions due to an error:\n" "%(raw_error)s" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "You must provide a group or option name for this command." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "You must provide a group, option, and value to set for this command." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "The %(option)s sub-command requires a group and permission name." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "The permission `%(option)s` is not available." -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Cannot add group `%(group)s` it already exists." -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Cannot remove built-in group." -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "The owner group is not editable." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Failed to save the group: `%(group)s`" -#: musicbot/bot.py:6736 +#: musicbot/bot.py:6737 #, python-format msgid "Doing set on %(option)s with value: %(value)s" msgstr "Doing set on %(option)s with value: %(value)s" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Permission `%(option)s` was not updated!" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Failed to change username due to error: \n" "%(raw_error)s" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Unable to change nickname: no permission." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Failed to set nickname due to error: \n" "%(raw_error)s" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Custom emoji must be from this server to use as a prefix." -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "This command can only be used in guilds." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Invalid sub-command given. Use the help command for more information." + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Cannot set language to `%(locale)s` it is not available." + +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "You must provide a URL or attach a file." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Unable to change avatar due to error: \n" "%(raw_error)s" -#: musicbot/bot.py:6940 +#: musicbot/bot.py:7014 #, python-format msgid "MusicBot found a %s with no guild! This could be a problem." msgstr "MusicBot found a %s with no guild! This could be a problem." -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Not currently connected to server `%(guild)s`" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "You must provide an ID or name." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "No guild was found with the ID or name `%(input)s`" -#: musicbot/bot.py:7172 +#: musicbot/bot.py:7246 #, python-format msgid "Activating debug breakpoint ID: %(uuid)s" msgstr "Activating debug breakpoint ID: %(uuid)s" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Could not import `objgraph`, is it installed?" -#: musicbot/bot.py:7287 +#: musicbot/bot.py:7361 msgid "Debug code ran with eval()." msgstr "Debug code ran with eval()." -#: musicbot/bot.py:7297 +#: musicbot/bot.py:7371 msgid "Debug code ran with exec()." msgstr "Debug code ran with exec()." -#: musicbot/bot.py:7300 +#: musicbot/bot.py:7374 msgid "Debug code failed to execute." msgstr "Debug code failed to execute." -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1909,275 +1927,275 @@ msgstr "Failed to execute debug code:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "Sub-command must be one of: %(options)s" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Could not locate git executable." -#: musicbot/bot.py:7483 +#: musicbot/bot.py:7559 msgid "Failed while checking for updates via git command." msgstr "Failed while checking for updates via git command." -#: musicbot/bot.py:7512 +#: musicbot/bot.py:7588 msgid "Package missing meta in pip report." msgstr "Package missing meta in pip report." -#: musicbot/bot.py:7526 +#: musicbot/bot.py:7602 msgid "Failed to get pip update status due to some error." msgstr "Failed to get pip update status due to some error." -#: musicbot/bot.py:7586 +#: musicbot/bot.py:7662 msgid "Got a strange voice client entry." msgstr "Got a strange voice client entry." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookies already enabled." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Cookies must be uploaded to be enabled. (Missing cookies file.)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Could not enable cookies due to error: %(raw_error)s" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "No attached uploads were found, try again while uploading a cookie file." -#: musicbot/bot.py:7740 +#: musicbot/bot.py:7816 #, python-format msgid "Could not remove old, disabled cookies file: %(raw_error)s" msgstr "Could not remove old, disabled cookies file: %(raw_error)s" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Error downloading the cookies file from discord: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Could not save cookies to disk: %(raw_error)s" -#: musicbot/bot.py:7772 +#: musicbot/bot.py:7848 #, python-format msgid "Got a message with no channel, somehow: %s" msgstr "Got a message with no channel, somehow: %s" -#: musicbot/bot.py:7800 +#: musicbot/bot.py:7876 #, python-format msgid "Ignoring command from myself (%s)" msgstr "Ignoring command from myself (%s)" -#: musicbot/bot.py:7808 +#: musicbot/bot.py:7884 #, python-format msgid "Ignoring command from other bot (%s)" msgstr "Ignoring command from other bot (%s)" -#: musicbot/bot.py:7816 +#: musicbot/bot.py:7892 #, python-format msgid "Ignoring command from channel of type: %s" msgstr "Ignoring command from channel of type: %s" -#: musicbot/bot.py:7900 +#: musicbot/bot.py:7976 #, python-format msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" msgstr "User in block list: %(id)s/%(name)s tried command: %(command)s" -#: musicbot/bot.py:7907 +#: musicbot/bot.py:7983 #, python-format msgid "Message from %(id)s/%(name)s: %(message)s" msgstr "Message from %(id)s/%(name)s: %(message)s" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "This command is not allowed for your permissions group: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "This command requires you to be in a Voice channel." -#: musicbot/bot.py:8060 +#: musicbot/bot.py:8136 #, python-format msgid "Invalid command usage, missing values for params: %(params)r" msgstr "Invalid command usage, missing values for params: %(params)r" -#: musicbot/bot.py:8102 +#: musicbot/bot.py:8178 #, python-format msgid "Error in %(command)s: %(err_name)s: %(err_text)s" msgstr "Error in %(command)s: %(err_name)s: %(err_text)s" -#: musicbot/bot.py:8126 +#: musicbot/bot.py:8202 #, python-format msgid "Exception while handling command: %(command)s" msgstr "Exception while handling command: %(command)s" -#: musicbot/bot.py:8158 +#: musicbot/bot.py:8234 #, python-format msgid "Cannot generate help for missing command: %s" msgstr "Cannot generate help for missing command: %s" -#: musicbot/bot.py:8162 +#: musicbot/bot.py:8238 #, python-format msgid "Missing help data for command: %s" msgstr "Missing help data for command: %s" -#: musicbot/bot.py:8279 +#: musicbot/bot.py:8355 #, python-format msgid "Leaving voice channel %s in %s due to inactivity." msgstr "Leaving voice channel %s in %s due to inactivity." -#: musicbot/bot.py:8288 +#: musicbot/bot.py:8364 msgid "MusicBot has become connected." msgstr "MusicBot has become connected." -#: musicbot/bot.py:8292 +#: musicbot/bot.py:8368 msgid "MusicBot has become disconnected." msgstr "MusicBot has become disconnected." -#: musicbot/bot.py:8297 +#: musicbot/bot.py:8373 #, python-format msgid "Got a Socket Event: %s" msgstr "Got a Socket Event: %s" -#: musicbot/bot.py:8313 +#: musicbot/bot.py:8389 msgid "VoiceState updated before on_ready finished" msgstr "VoiceState updated before on_ready finished" -#: musicbot/bot.py:8326 +#: musicbot/bot.py:8402 #, python-format msgid "Ignoring %s in %s as it is a bound voice channel." msgstr "Ignoring %s in %s as it is a bound voice channel." -#: musicbot/bot.py:8335 +#: musicbot/bot.py:8411 #, python-format msgid "%s has been detected as empty. Handling timeouts." msgstr "%s has been detected as empty. Handling timeouts." -#: musicbot/bot.py:8346 +#: musicbot/bot.py:8422 #, python-format msgid "A user joined %s, cancelling timer." msgstr "A user joined %s, cancelling timer." -#: musicbot/bot.py:8359 +#: musicbot/bot.py:8435 #, python-format msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." msgstr "The bot got moved and the voice channel %s is empty. Handling timeouts." -#: musicbot/bot.py:8368 +#: musicbot/bot.py:8444 #, python-format msgid "The bot got moved and the voice channel %s is not empty." msgstr "The bot got moved and the voice channel %s is not empty." -#: musicbot/bot.py:8402 +#: musicbot/bot.py:8493 #, python-format msgid "No longer following user %s" msgstr "No longer following user %s" -#: musicbot/bot.py:8424 +#: musicbot/bot.py:8515 #, python-format msgid "Following user `%(user)s` to channel: %(channel)s" msgstr "Following user `%(user)s` to channel: %(channel)s" -#: musicbot/bot.py:8444 +#: musicbot/bot.py:8535 msgid "VoiceState disconnect before.channel is None." msgstr "VoiceState disconnect before.channel is None." -#: musicbot/bot.py:8471 +#: musicbot/bot.py:8562 #, python-format msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" msgstr "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" -#: musicbot/bot.py:8493 +#: musicbot/bot.py:8584 #, python-format msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" msgstr "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" -#: musicbot/bot.py:8500 +#: musicbot/bot.py:8591 #, python-format msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" msgstr "Cannot find the auto-joined channel, was it deleted? Guild: %s" -#: musicbot/bot.py:8506 +#: musicbot/bot.py:8597 #, python-format msgid "Reconnecting to auto-joined guild on channel: %s" msgstr "Reconnecting to auto-joined guild on channel: %s" -#: musicbot/bot.py:8519 +#: musicbot/bot.py:8610 #, python-format msgid "Cannot auto join channel: %s" msgstr "Cannot auto join channel: %s" -#: musicbot/bot.py:8535 +#: musicbot/bot.py:8626 #, python-format msgid "Bot has been added to guild: %s" msgstr "Bot has been added to guild: %s" -#: musicbot/bot.py:8547 +#: musicbot/bot.py:8638 #, python-format msgid "Left guild '%s' due to bot owner not found." msgstr "Left guild '%s' due to bot owner not found." -#: musicbot/bot.py:8561 +#: musicbot/bot.py:8652 #, python-format msgid "Creating data folder for guild %s" msgstr "Creating data folder for guild %s" -#: musicbot/bot.py:8569 +#: musicbot/bot.py:8660 #, python-format msgid "Bot has been removed from guild: %s" msgstr "Bot has been removed from guild: %s" -#: musicbot/bot.py:8570 +#: musicbot/bot.py:8661 msgid "Updated guild list:" msgstr "Updated guild list:" -#: musicbot/bot.py:8585 +#: musicbot/bot.py:8676 #, python-format msgid "Guild \"%s\" has become available." msgstr "Guild \"%s\" has become available." -#: musicbot/bot.py:8591 +#: musicbot/bot.py:8682 #, python-format msgid "Resuming player in \"%s\" due to availability." msgstr "Resuming player in \"%s\" due to availability." -#: musicbot/bot.py:8608 +#: musicbot/bot.py:8699 #, python-format msgid "Guild \"%s\" has become unavailable." msgstr "Guild \"%s\" has become unavailable." -#: musicbot/bot.py:8614 +#: musicbot/bot.py:8705 #, python-format msgid "Pausing player in \"%s\" due to unavailability." msgstr "Pausing player in \"%s\" due to unavailability." -#: musicbot/bot.py:8630 +#: musicbot/bot.py:8721 #, python-format msgid "Guild update for: %s" msgstr "Guild update for: %s" -#: musicbot/bot.py:8636 +#: musicbot/bot.py:8727 #, python-format msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" msgstr "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" -#: musicbot/bot.py:8668 +#: musicbot/bot.py:8759 #, python-format msgid "Channel update for: %(channel)s -- %(changes)s" msgstr "Channel update for: %(channel)s -- %(changes)s" @@ -2192,7 +2210,7 @@ msgstr "Creating %s" msgid "Loading config from: %s" msgstr "Loading config from: %s" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2215,16 +2233,16 @@ msgstr "Error while reading config.\n\n" " Each section must have at least one option.\n" " Use the example options as a template or copy it from the repository." -#: musicbot/config.py:1113 +#: musicbot/config.py:1112 #, python-format msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." msgstr "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." -#: musicbot/config.py:1121 +#: musicbot/config.py:1120 msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." msgstr "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2236,11 +2254,11 @@ msgstr "Error while validating config options.\n\n" "Solution:\n" " Make sure the path you configured is a path to a folder / directory." -#: musicbot/config.py:1149 +#: musicbot/config.py:1148 msgid "An exception was thrown while validating AudioCachePath." msgstr "An exception was thrown while validating AudioCachePath." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2255,12 +2273,12 @@ msgstr "Error while validating config options.\n\n" "Solution:\n" " Double check the setting is a valid, accessible directory path." -#: musicbot/config.py:1165 +#: musicbot/config.py:1164 #, python-format msgid "Audio Cache will be stored in: %s" msgstr "Audio Cache will be stored in: %s" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2273,16 +2291,16 @@ msgstr "Error while reading config options.\n\n" "Solution:\n" " Set the Token config option or set environment variable %(env_var)s with an App token." -#: musicbot/config.py:1197 +#: musicbot/config.py:1196 msgid "StatusMessage config option is too long, it will be limited to 128 characters." msgstr "StatusMessage config option is too long, it will be limited to 128 characters." -#: musicbot/config.py:1206 +#: musicbot/config.py:1205 #, python-format msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." msgstr "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." -#: musicbot/config.py:1216 +#: musicbot/config.py:1215 msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "Cookies are not recommended, may not be supported, and may totally break.\n" "Copying cookies from your web-browser risks exposing personal data and \n" @@ -2294,15 +2312,15 @@ msgstr "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "in the best case can result in your accounts being banned!\n\n" "You have been warned! Good Luck! \\U0001F596\n" -#: musicbot/config.py:1234 +#: musicbot/config.py:1233 msgid "Validating options with service data..." msgstr "Validating options with service data..." -#: musicbot/config.py:1240 +#: musicbot/config.py:1239 msgid "Acquired owner ID via API" msgstr "Acquired owner ID via API" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2316,11 +2334,11 @@ msgstr "Error while fetching 'OwnerID' automatically.\n\n" "Solution:\n" " Manually set the 'OwnerID' config option or try again later." -#: musicbot/config.py:1256 +#: musicbot/config.py:1255 msgid "MusicBot does not have a user instance, cannot proceed." msgstr "MusicBot does not have a user instance, cannot proceed." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2332,30 +2350,30 @@ msgstr "Error validating config options.\n\n" "Solution:\n" " Do not use the Bot or App ID in the 'OwnerID' field." -#: musicbot/config.py:1286 +#: musicbot/config.py:1285 msgid "Config options file not found. Checking for alternatives..." msgstr "Config options file not found. Checking for alternatives..." -#: musicbot/config.py:1298 +#: musicbot/config.py:1297 #, python-format msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." msgstr "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." -#: musicbot/config.py:1306 +#: musicbot/config.py:1305 #, python-format msgid "Copying existing example options file: %(example_file)s" msgstr "Copying existing example options file: %(example_file)s" -#: musicbot/config.py:1315 +#: musicbot/config.py:1314 #, python-format msgid "Generated a new %(example_file)s and copied it to %(option_file)s" msgstr "Generated a new %(example_file)s and copied it to %(option_file)s" -#: musicbot/config.py:1323 +#: musicbot/config.py:1322 msgid "Something went wrong while trying to find a config option file." msgstr "Something went wrong while trying to find a config option file." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2370,7 +2388,7 @@ msgstr "Error locating config.\n\n" "Solution:\n" " Verify the config folder and files exist and can be read by MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2387,43 +2405,43 @@ msgstr "Error loading config.\n\n" " Make sure the file is accessible and error free.\n" " Copy the example file from the repo if all else fails." -#: musicbot/config.py:1369 +#: musicbot/config.py:1368 msgid "Dev Bug! Config option has getter that is not available." msgstr "Dev Bug! Config option has getter that is not available." -#: musicbot/config.py:1374 +#: musicbot/config.py:1373 msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." msgstr "Dev Bug! Config option has invalid type, getter and default must be the same type." -#: musicbot/config.py:1394 +#: musicbot/config.py:1393 msgid "Option was missing previously." msgstr "Option was missing previously." -#: musicbot/config.py:1409 +#: musicbot/config.py:1408 #, python-format msgid "Config section not in parsed config! Missing: %s" msgstr "Config section not in parsed config! Missing: %s" -#: musicbot/config.py:1414 +#: musicbot/config.py:1413 #, python-format msgid "Saved config option: %(config)s = %(value)s" msgstr "Saved config option: %(config)s = %(value)s" -#: musicbot/config.py:1427 +#: musicbot/config.py:1426 #, python-format msgid "Failed to save config: %s" msgstr "Failed to save config: %s" -#: musicbot/config.py:1932 +#: musicbot/config.py:1931 msgid "Option names are not unique between INI sections! Resolver is disabled." msgstr "Option names are not unique between INI sections! Resolver is disabled." -#: musicbot/config.py:2094 musicbot/permissions.py:859 +#: musicbot/config.py:2099 musicbot/permissions.py:859 #, python-format msgid "Failed to save default INI file at: %s" msgstr "Failed to save default INI file at: %s" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2436,7 +2454,7 @@ msgstr "Error loading config value.\n\n" "Solution:\n" " Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2449,7 +2467,7 @@ msgstr "Error loading config value.\n\n" "Solution:\n" " Check the path setting and make sure the file exists and is accessible to MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2462,60 +2480,60 @@ msgstr "Error loading config value.\n\n" "Solution:\n" " Ensure all IDs are numerical, and separated only by spaces or commas." -#: musicbot/config.py:2283 +#: musicbot/config.py:2288 #, python-format msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" msgstr "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" -#: musicbot/config.py:2304 +#: musicbot/config.py:2309 #, python-format msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." msgstr "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." -#: musicbot/config.py:2353 +#: musicbot/config.py:2358 #, python-format msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." msgstr "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." -#: musicbot/config.py:2437 +#: musicbot/config.py:2442 #, python-format msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" msgstr "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" -#: musicbot/config.py:2493 +#: musicbot/config.py:2498 msgid "Upgrading config file with renamed options..." msgstr "Upgrading config file with renamed options..." -#: musicbot/config.py:2510 +#: musicbot/config.py:2515 msgid "Failed to upgrade config. You'll need to upgrade it manually." msgstr "Failed to upgrade config. You'll need to upgrade it manually." -#: musicbot/config.py:2551 +#: musicbot/config.py:2556 #, python-format msgid "Block list file not found: %s" msgstr "Block list file not found: %s" -#: musicbot/config.py:2572 +#: musicbot/config.py:2577 #, python-format msgid "Could not load block list from file: %s" msgstr "Could not load block list from file: %s" -#: musicbot/config.py:2610 musicbot/config.py:2643 +#: musicbot/config.py:2615 musicbot/config.py:2648 #, python-format msgid "Could not update the block list file: %s" msgstr "Could not update the block list file: %s" -#: musicbot/config.py:2670 +#: musicbot/config.py:2675 #, python-format msgid "Loaded User Block list with %s entries." msgstr "Loaded User Block list with %s entries." -#: musicbot/config.py:2681 +#: musicbot/config.py:2686 #, python-format msgid "We found a legacy blacklist file, it will be renamed to: %s" msgstr "We found a legacy blacklist file, it will be renamed to: %s" -#: musicbot/config.py:2727 +#: musicbot/config.py:2732 #, python-format msgid "Loaded a Song Block list with %s entries." msgstr "Loaded a Song Block list with %s entries." @@ -2539,20 +2557,20 @@ msgstr "Loading guild data for guild with ID: %(id)s/%(name)s" msgid "An OS error prevented reading guild data file: %s" msgstr "An OS error prevented reading guild data file: %s" -#: musicbot/constructs.py:255 +#: musicbot/constructs.py:257 #, python-format msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" msgstr "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" -#: musicbot/constructs.py:275 +#: musicbot/constructs.py:277 msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" msgstr "Cannot save data for guild with ID 0. This is likely a bug in the code!" -#: musicbot/constructs.py:298 +#: musicbot/constructs.py:301 msgid "Could not save guild specific data due to OS Error." msgstr "Could not save guild specific data due to OS Error." -#: musicbot/constructs.py:301 +#: musicbot/constructs.py:304 msgid "Failed to serialize guild specific data due to invalid data." msgstr "Failed to serialize guild specific data due to invalid data." @@ -3025,10 +3043,10 @@ msgstr "Lang Argument Error: %s" msgid "Failed to load log translations for any of: [%s] in: %s" msgstr "Failed to load log translations for any of: [%s] in: %s" -#: musicbot/i18n.py:333 +#: musicbot/i18n.py:340 #, python-format -msgid "Failed to load discord translations for any of: [%s] in: %s" -msgstr "Failed to load discord translations for any of: [%s] in: %s" +msgid "Failed to load discord translations for any of: [%s] guild: %s in: %s" +msgstr "Failed to load discord translations for any of: [%s] guild: %s in: %s" #: musicbot/json.py:14 #, python-format diff --git a/i18n/en_US/LC_MESSAGES/musicbot_messages.mo b/i18n/en_US/LC_MESSAGES/musicbot_messages.mo index f6777f8f90e64ae2d9b5bd059819a07bdd7ee46c..d24f6ea6e30c55ee9de5b94bc5f07333d0b5c5bb 100644 GIT binary patch delta 10467 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 Tw+JdKd3k)v|L^$!s~!Jegbgx) delta 9441 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 diff --git a/i18n/en_US/LC_MESSAGES/musicbot_messages.po b/i18n/en_US/LC_MESSAGES/musicbot_messages.po index 479a311ac..93c8f8abd 100644 --- a/i18n/en_US/LC_MESSAGES/musicbot_messages.po +++ b/i18n/en_US/LC_MESSAGES/musicbot_messages.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 19:27\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:41\n" "Last-Translator: \n" "Language-Team: English\n" "Language: en_US\n" @@ -32,78 +32,78 @@ msgstr "Error while loading aliases.\n\n" " Replace the alias config file(s) or copy them from:\n" " https://github.com/Just-Some-Bots/MusicBot/" -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "Member is not voice-enabled and cannot use this command." -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "You cannot use this command when not in the voice channel." -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "MusicBot does not have permission to Connect in channel: `%(name)s`" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "MusicBot does not have permission to Speak in channel: `%(name)s`" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" -#: musicbot/bot.py:840 +#: musicbot/bot.py:843 msgid "MusicBot does not have permission to speak." msgstr "MusicBot does not have permission to speak." -#: musicbot/bot.py:844 +#: musicbot/bot.py:847 msgid "MusicBot could not request to speak." msgstr "MusicBot could not request to speak." -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "Something is wrong, we didn't get the VoiceClient." -#: musicbot/bot.py:1084 +#: musicbot/bot.py:1087 #, python-format msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" msgstr "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" -#: musicbot/bot.py:1102 +#: musicbot/bot.py:1105 #, python-format msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" msgstr "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" -#: musicbot/bot.py:1111 +#: musicbot/bot.py:1114 #, python-format msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" msgstr "Now playing in %(channel)s: `%(title)s` added by %(author)s!" -#: musicbot/bot.py:1122 +#: musicbot/bot.py:1125 #, python-format msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" msgstr "Now playing automatically added entry `%(title)s` in %(channel)s!" -#: musicbot/bot.py:1333 +#: musicbot/bot.py:1336 #, python-format msgid "Skipping songs added by %(user)s as they are not in voice!" msgstr "Skipping songs added by %(user)s as they are not in voice!" -#: musicbot/bot.py:1555 +#: musicbot/bot.py:1558 #, python-format msgid "Playback failed for song `%(song)s` due to an error:\n" "```\n" @@ -112,11 +112,11 @@ msgstr "Playback failed for song `%(song)s` due to an error:\n" "```\n" "%(error)s```" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "[Dev Bug] Tried sending an invalid response object." -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -132,35 +132,35 @@ msgstr "Failed Discord API Login!\n\n" " Make sure you have the correct Token set in your config.\n" " Check API status at the official site: discordstatus.com" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "The requested song `%(subject)s` is blocked by the song block list." -#: musicbot/bot.py:2831 +#: musicbot/bot.py:2834 msgid "Reset the auto playlist queue by copying it back into player memory.\n" "This command will be removed in a future version, replaced by the autoplaylist command(s)." msgstr "Reset the auto playlist queue by copying it back into player memory.\n" "This command will be removed in a future version, replaced by the autoplaylist command(s)." -#: musicbot/bot.py:2846 +#: musicbot/bot.py:2849 msgid "\\N{OK HAND SIGN}" msgstr "\\N{OK HAND SIGN}" -#: musicbot/bot.py:2853 +#: musicbot/bot.py:2856 msgid "Show usage and description of a command, or list all available commands.\n" msgstr "Show usage and description of a command, or list all available commands.\n" -#: musicbot/bot.py:2888 +#: musicbot/bot.py:2891 msgid "**Aliases for this command:**\n" msgstr "**Aliases for this command:**\n" -#: musicbot/bot.py:2891 +#: musicbot/bot.py:2894 #, python-format msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" msgstr "`%(alias)s` alias of `%(command)s %(args)s`\n" -#: musicbot/bot.py:2924 +#: musicbot/bot.py:2927 #, python-format msgid "**Alias of command:**\n" " `%(command)s`\n" @@ -168,7 +168,7 @@ msgstr "**Alias of command:**\n" " `%(command)s`\n" #. TRANSLATORS: template string for command-specific help output. -#: musicbot/bot.py:2931 +#: musicbot/bot.py:2934 #, python-format msgid "%(is_alias)s\n" "%(docs)s\n" @@ -177,18 +177,18 @@ msgstr "%(is_alias)s\n" "%(docs)s\n" "%(alias_list)s" -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "No such command" -#: musicbot/bot.py:2959 +#: musicbot/bot.py:2962 #, python-format msgid "The list above shows only commands permitted for your use.\n" "For a list of all commands, run: %(example_all)s\n" msgstr "The list above shows only commands permitted for your use.\n" "For a list of all commands, run: %(example_all)s\n" -#: musicbot/bot.py:2965 +#: musicbot/bot.py:2968 #, python-format msgid "**Commands by name:** *(without prefix)*\n" "```\n" @@ -205,74 +205,74 @@ msgstr "**Commands by name:** *(without prefix)*\n" "For help with a particular command, run: %(example_command)s\n" "%(all_note)s" -#: musicbot/bot.py:2984 +#: musicbot/bot.py:2987 msgid " Block a mentioned user." msgstr " Block a mentioned user." -#: musicbot/bot.py:2987 +#: musicbot/bot.py:2990 msgid " Unblock a mentioned user." msgstr " Unblock a mentioned user." -#: musicbot/bot.py:2990 +#: musicbot/bot.py:2993 msgid " Show the block status of a mentioned user." msgstr " Show the block status of a mentioned user." -#: musicbot/bot.py:2994 +#: musicbot/bot.py:2997 msgid "Manage the users in the user block list.\n" "Blocked users are forbidden from using all bot commands.\n" msgstr "Manage the users in the user block list.\n" "Blocked users are forbidden from using all bot commands.\n" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "You must mention a user or provide their ID number." -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "Invalid sub-command given. Use `help blockuser` for usage examples." -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBot could not find the user(s) you specified." -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "The owner cannot be added to the block list." -#: musicbot/bot.py:3059 +#: musicbot/bot.py:3062 msgid "User block list is currently enabled." msgstr "User block list is currently enabled." -#: musicbot/bot.py:3061 +#: musicbot/bot.py:3064 msgid "User block list is currently disabled." msgstr "User block list is currently disabled." -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "Cannot add the users you listed, they are already added." -#: musicbot/bot.py:3078 +#: musicbot/bot.py:3081 #, python-format msgid "%(number)s user(s) have been added to the block list.\n" "%(status)s" msgstr "%(number)s user(s) have been added to the block list.\n" "%(status)s" -#: musicbot/bot.py:3089 +#: musicbot/bot.py:3092 msgid "None of those users are in the blacklist." msgstr "None of those users are in the blacklist." -#: musicbot/bot.py:3094 +#: musicbot/bot.py:3097 #, python-format msgid "User: `%(user)s` is not blocked.\n" msgstr "User: `%(user)s` is not blocked.\n" -#: musicbot/bot.py:3096 +#: musicbot/bot.py:3099 #, python-format msgid "User: `%(user)s` is blocked.\n" msgstr "User: `%(user)s` is blocked.\n" -#: musicbot/bot.py:3099 +#: musicbot/bot.py:3102 #, python-format msgid "**Block list status:**\n" "%(status)s\n" @@ -281,14 +281,14 @@ msgstr "**Block list status:**\n" "%(status)s\n" "%(users)s" -#: musicbot/bot.py:3109 +#: musicbot/bot.py:3112 #, python-format msgid "%(number)s user(s) have been removed from the block list.\n" "%(status)s" msgstr "%(number)s user(s) have been removed from the block list.\n" "%(status)s" -#: musicbot/bot.py:3118 +#: musicbot/bot.py:3121 msgid "Manage a block list applied to song requests and extracted song data.\n" "A subject may be a song URL or a word or phrase found in the track title.\n" "If subject is omitted, any currently playing track URL will be added instead.\n\n" @@ -300,162 +300,162 @@ msgstr "Manage a block list applied to song requests and extracted song data.\n" "The song block list matches loosely, but is case-sensitive.\n" "This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "You must provide a song subject if no song is currently playing." -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "Invalid sub-command given. Use `help blocksong` for usage examples." -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "Subject `%(subject)s` is already in the song block list." -#: musicbot/bot.py:3187 +#: musicbot/bot.py:3190 #, python-format msgid "Added subject `%(subject)s` to the song block list.\n" "%(status)s" msgstr "Added subject `%(subject)s` to the song block list.\n" "%(status)s" -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "The subject is not in the song block list and cannot be removed." -#: musicbot/bot.py:3204 +#: musicbot/bot.py:3207 #, python-format msgid "Subject `%(subject)s` has been removed from the block list.\n" "%(status)s" msgstr "Subject `%(subject)s` has been removed from the block list.\n" "%(status)s" -#: musicbot/bot.py:3214 +#: musicbot/bot.py:3217 msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" msgstr " Adds or removes the specified song or currently playing song to/from the current playlist.\n" -#: musicbot/bot.py:3217 +#: musicbot/bot.py:3220 msgid " Adds the entire queue to the guilds playlist.\n" msgstr " Adds the entire queue to the guilds playlist.\n" -#: musicbot/bot.py:3220 +#: musicbot/bot.py:3223 msgid " Show a list of existing playlist files.\n" msgstr " Show a list of existing playlist files.\n" -#: musicbot/bot.py:3223 +#: musicbot/bot.py:3226 msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" msgstr " Reset the auto playlist queue, restarting at the first track unless randomized.\n" -#: musicbot/bot.py:3226 +#: musicbot/bot.py:3229 msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" msgstr " Set a playlist as default for this guild and reloads the guild auto playlist.\n" -#: musicbot/bot.py:3229 +#: musicbot/bot.py:3232 msgid "Manage auto playlist files and per-guild settings." msgstr "Manage auto playlist files and per-guild settings." -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "Invalid sub-command given. Use `help autoplaylist` for usage examples." -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "The supplied song link is invalid" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "The queue is empty. Add some songs with a play command!" -#: musicbot/bot.py:3273 +#: musicbot/bot.py:3276 msgid "All songs in the queue are already in the autoplaylist." msgstr "All songs in the queue are already in the autoplaylist." -#: musicbot/bot.py:3277 +#: musicbot/bot.py:3280 #, python-format msgid "Added %(number)d songs to the autoplaylist." msgstr "Added %(number)d songs to the autoplaylist." -#: musicbot/bot.py:3287 +#: musicbot/bot.py:3290 #, python-format msgid "Added `%(url)s` to the autoplaylist." msgstr "Added `%(url)s` to the autoplaylist." -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "This song is already in the autoplaylist." -#: musicbot/bot.py:3304 +#: musicbot/bot.py:3307 #, python-format msgid "Removed `%(url)s` from the autoplaylist." msgstr "Removed `%(url)s` from the autoplaylist." -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "This song is not yet in the autoplaylist." -#: musicbot/bot.py:3316 +#: musicbot/bot.py:3319 #, python-format msgid "Loaded a fresh copy of the playlist: `%(file)s`" msgstr "Loaded a fresh copy of the playlist: `%(file)s`" -#: musicbot/bot.py:3327 +#: musicbot/bot.py:3330 #, python-format msgid "**Available Playlists:**\n" "%(names)s" msgstr "**Available Playlists:**\n" "%(names)s" -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "You must provide a playlist filename." -#: musicbot/bot.py:3357 +#: musicbot/bot.py:3360 msgid "\n" "This playlist is new, you must add songs to save it to disk!" msgstr "\n" "This playlist is new, you must add songs to save it to disk!" -#: musicbot/bot.py:3362 +#: musicbot/bot.py:3365 #, python-format msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" msgstr "The playlist for this server has been updated to: `%(name)s`%(note)s" -#: musicbot/bot.py:3373 +#: musicbot/bot.py:3376 msgid "Generate an invite link that can be used to add this bot to another server." msgstr "Generate an invite link that can be used to add this bot to another server." -#: musicbot/bot.py:3385 +#: musicbot/bot.py:3388 #, python-format msgid "Click here to add me to a discord server:\n" "%(url)s" msgstr "Click here to add me to a discord server:\n" "%(url)s" -#: musicbot/bot.py:3391 +#: musicbot/bot.py:3394 msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" "Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" msgstr "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" "Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" -#: musicbot/bot.py:3403 +#: musicbot/bot.py:3406 msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." msgstr "\\N{OK HAND SIGN} Karaoke mode is now enabled." -#: musicbot/bot.py:3405 +#: musicbot/bot.py:3408 msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." msgstr "\\N{OK HAND SIGN} Karaoke mode is now disabled." -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "You are not allowed to request playlists" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "Playlist has too many entries (%(songs)s but max is %(max)s)" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" @@ -464,11 +464,11 @@ msgstr "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" "The limit is %(max)s for your group." -#: musicbot/bot.py:3580 +#: musicbot/bot.py:3583 msgid "Bot was previously paused, resuming playback now." msgstr "Bot was previously paused, resuming playback now." -#: musicbot/bot.py:3589 +#: musicbot/bot.py:3592 msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" "You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" "Playlist links will be extracted into multiple links and added to the queue.\n" @@ -480,28 +480,28 @@ msgstr "Add a song to be played in the queue. If no song is playing or paused, p "If you enter a non-URL, the input will be used as search criteria on YouTube and the first result played.\n" "MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" -#: musicbot/bot.py:3628 +#: musicbot/bot.py:3631 msgid "Play command that shuffles playlist entries before adding them to the queue.\n" msgstr "Play command that shuffles playlist entries before adding them to the queue.\n" -#: musicbot/bot.py:3665 +#: musicbot/bot.py:3668 #, python-format msgid "Shuffled playlist items into the queue from `%(request)s`" msgstr "Shuffled playlist items into the queue from `%(request)s`" -#: musicbot/bot.py:3672 +#: musicbot/bot.py:3675 msgid "A play command that adds the song as the next to play rather than last.\n" "Read help for the play command for information on supported inputs.\n" msgstr "A play command that adds the song as the next to play rather than last.\n" "Read help for the play command for information on supported inputs.\n" -#: musicbot/bot.py:3707 +#: musicbot/bot.py:3710 msgid "A play command which skips any current song and plays immediately.\n" "Read help for the play command for information on supported inputs.\n" msgstr "A play command which skips any current song and plays immediately.\n" "Read help for the play command for information on supported inputs.\n" -#: musicbot/bot.py:3744 +#: musicbot/bot.py:3747 msgid "Restarts the current song at the given time.\n" "If time starts with + or - seek will be relative to current playback time.\n" "Time should be given in seconds, fractional seconds are accepted.\n" @@ -511,38 +511,38 @@ msgstr "Restarts the current song at the given time.\n" "Time should be given in seconds, fractional seconds are accepted.\n" "Due to codec specifics in ffmpeg, this may not be accurate.\n" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "Cannot use seek if there is nothing playing." -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "Cannot use seek on current track, it has an unknown duration." -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "Seeking is not supported for streams." -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "Cannot use seek without a time to position playback." -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "Could not convert `%(input)s` to a valid time in seconds." -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" -#: musicbot/bot.py:3840 +#: musicbot/bot.py:3843 #, python-format msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." msgstr "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." -#: musicbot/bot.py:3852 +#: musicbot/bot.py:3855 msgid "Toggles playlist or song looping.\n" "If no option is provided the current song will be repeated.\n" "If no option is provided and the song is already repeating, repeating will be turned off.\n" @@ -550,74 +550,74 @@ msgstr "Toggles playlist or song looping.\n" "If no option is provided the current song will be repeated.\n" "If no option is provided and the song is already repeating, repeating will be turned off.\n" -#: musicbot/bot.py:3870 +#: musicbot/bot.py:3873 msgid "No songs are currently playing. Play something with a play command." msgstr "No songs are currently playing. Play something with a play command." -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "Invalid sub-command. Use the command `help repeat` for usage examples." -#: musicbot/bot.py:3883 musicbot/bot.py:3920 +#: musicbot/bot.py:3886 musicbot/bot.py:3923 msgid "Playlist is now repeating." msgstr "Playlist is now repeating." -#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +#: musicbot/bot.py:3889 musicbot/bot.py:3916 musicbot/bot.py:3927 msgid "Playlist is no longer repeating." msgstr "Playlist is no longer repeating." -#: musicbot/bot.py:3892 musicbot/bot.py:3901 +#: musicbot/bot.py:3895 musicbot/bot.py:3904 msgid "Player will now loop the current song." msgstr "Player will now loop the current song." -#: musicbot/bot.py:3894 musicbot/bot.py:3908 +#: musicbot/bot.py:3897 musicbot/bot.py:3911 msgid "Player will no longer loop the current song." msgstr "Player will no longer loop the current song." -#: musicbot/bot.py:3898 +#: musicbot/bot.py:3901 msgid "Player is already looping a song!" msgstr "Player is already looping a song!" -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "The player is not currently looping." -#: musicbot/bot.py:3926 +#: musicbot/bot.py:3929 msgid "Song is no longer repeating." msgstr "Song is no longer repeating." -#: musicbot/bot.py:3930 +#: musicbot/bot.py:3933 msgid "Song is now repeating." msgstr "Song is now repeating." -#: musicbot/bot.py:3938 +#: musicbot/bot.py:3941 msgid " Move song at position FROM to position TO.\n" msgstr " Move song at position FROM to position TO.\n" -#: musicbot/bot.py:3942 +#: musicbot/bot.py:3945 msgid "Swap existing songs in the queue using their position numbers.\n" "Use the queue command to find track position numbers.\n" msgstr "Swap existing songs in the queue using their position numbers.\n" "Use the queue command to find track position numbers.\n" -#: musicbot/bot.py:3961 +#: musicbot/bot.py:3964 msgid "There are no songs queued. Play something with a play command." msgstr "There are no songs queued. Play something with a play command." -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "Song positions must be integers!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "You gave a position outside the playlist size!" -#: musicbot/bot.py:3984 +#: musicbot/bot.py:3987 #, python-format msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" msgstr "Successfully moved song from position %(from)s in queue to position %(to)s!" -#: musicbot/bot.py:4072 +#: musicbot/bot.py:4075 #, python-format msgid "This link contains a Playlist ID:\n" "`%(url)s`\n\n" @@ -626,82 +626,82 @@ msgstr "This link contains a Playlist ID:\n" "`%(url)s`\n\n" "Do you want to queue the playlist too?" -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "Local media playback is not enabled." -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "Spotify URL is invalid or not currently supported." -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "Detected a Spotify URL, but Spotify is not enabled." -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "You have reached your enqueued song limit (%(max)s)" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "Karaoke mode is enabled, please try again when its disabled!" -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "Failed to extract info due to error:\n" "%(raw_error)s" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "That video cannot be played. Try using the stream command." -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "YouTube search returned no results for: %(url)s" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "No songs were added, all songs were over max duration (%(max)s seconds)" -#: musicbot/bot.py:4254 +#: musicbot/bot.py:4257 #, python-format msgid "Enqueued **%(number)s** songs to be played.\n" "Position in queue: %(position)s" msgstr "Enqueued **%(number)s** songs to be played.\n" "Position in queue: %(position)s" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "Song duration exceeds limit (%(length)s > %(max)s)" -#: musicbot/bot.py:4289 +#: musicbot/bot.py:4292 #, python-format msgid "Enqueued `%(track)s` to be played.\n" "Position in queue: %(position)s" msgstr "Enqueued `%(track)s` to be played.\n" "Position in queue: %(position)s" -#: musicbot/bot.py:4297 musicbot/bot.py:4312 +#: musicbot/bot.py:4300 musicbot/bot.py:4315 msgid "Playing next!" msgstr "Playing next!" -#: musicbot/bot.py:4320 +#: musicbot/bot.py:4323 #, python-format msgid "%(position)s - estimated time until playing: `%(eta)s`" msgstr "%(position)s - estimated time until playing: `%(eta)s`" -#: musicbot/bot.py:4328 +#: musicbot/bot.py:4331 #, python-format msgid "%(position)s - cannot estimate time until playing." msgstr "%(position)s - cannot estimate time until playing." -#: musicbot/bot.py:4346 +#: musicbot/bot.py:4349 msgid "Add a media URL to the queue as a Stream.\n" "The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" "You can also use non-streamed media to play it without downloading it.\n" @@ -711,26 +711,26 @@ msgstr "Add a media URL to the queue as a Stream.\n" "You can also use non-streamed media to play it without downloading it.\n" "Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Streaming playlists is not yet supported." -#: musicbot/bot.py:4419 +#: musicbot/bot.py:4422 #, python-format msgid "Now streaming track `%(track)s`" msgstr "Now streaming track `%(track)s`" -#: musicbot/bot.py:4428 +#: musicbot/bot.py:4431 msgid " Search with service for a number of results with the search query.\n" msgstr " Search with service for a number of results with the search query.\n" -#: musicbot/bot.py:4432 +#: musicbot/bot.py:4435 msgid " Search YouTube for query but get a custom number of results.\n" " Note: the double-quotes are required in this case.\n" msgstr " Search YouTube for query but get a custom number of results.\n" " Note: the double-quotes are required in this case.\n" -#: musicbot/bot.py:4438 +#: musicbot/bot.py:4441 msgid "Search a supported service and select from results to add to queue.\n" "Service and number arguments can be omitted, default number is 3 results.\n" "Select from these services:\n" @@ -744,191 +744,191 @@ msgstr "Search a supported service and select from results to add to queue.\n" "- sc, soundcloud\n" "- yh, yahoo\n" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "You have reached your playlist item limit (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Please specify a search query. Use `help search` for more information." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "You cannot search for more than %(max)s videos" -#: musicbot/bot.py:4532 +#: musicbot/bot.py:4535 msgid "Searching for videos..." msgstr "Searching for videos..." -#: musicbot/bot.py:4554 +#: musicbot/bot.py:4557 #, python-format msgid "Search failed due to an error: %(error)s" msgstr "Search failed due to an error: %(error)s" -#: musicbot/bot.py:4566 +#: musicbot/bot.py:4569 msgid "No videos found." msgstr "No videos found." -#: musicbot/bot.py:4575 +#: musicbot/bot.py:4578 msgid "To select a song, type the corresponding number." msgstr "To select a song, type the corresponding number." -#: musicbot/bot.py:4576 +#: musicbot/bot.py:4579 #, python-format msgid "Search results from %(service)s:" msgstr "Search results from %(service)s:" -#: musicbot/bot.py:4585 +#: musicbot/bot.py:4588 #, python-format msgid "**%(index)s**. **%(track)s** | %(length)s" msgstr "**%(index)s**. **%(track)s** | %(length)s" -#: musicbot/bot.py:4594 +#: musicbot/bot.py:4597 msgid "\n" "**0**. Cancel" msgstr "\n" "**0**. Cancel" -#: musicbot/bot.py:4598 +#: musicbot/bot.py:4601 msgid "Pick a song" msgstr "Pick a song" -#: musicbot/bot.py:4649 +#: musicbot/bot.py:4652 #, python-format msgid "Added song [%(track)s](%(url)s) to the queue." msgstr "Added song [%(track)s](%(url)s) to the queue." -#: musicbot/bot.py:4663 +#: musicbot/bot.py:4666 #, python-format msgid "Result %(number)s of %(total)s: %(url)s" msgstr "Result %(number)s of %(total)s: %(url)s" -#: musicbot/bot.py:4713 +#: musicbot/bot.py:4716 msgid "Alright, coming right up!" msgstr "Alright, coming right up!" -#: musicbot/bot.py:4725 +#: musicbot/bot.py:4728 msgid "Show information on what is currently playing." msgstr "Show information on what is currently playing." -#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +#: musicbot/bot.py:4780 musicbot/bot.py:6028 musicbot/bot.py:6060 msgid "[autoplaylist]" msgstr "[autoplaylist]" -#: musicbot/bot.py:4781 +#: musicbot/bot.py:4784 msgid "Now playing" msgstr "Now playing" -#: musicbot/bot.py:4784 +#: musicbot/bot.py:4787 msgid "Currently streaming:" msgstr "Currently streaming:" -#: musicbot/bot.py:4786 +#: musicbot/bot.py:4789 msgid "Currently playing:" msgstr "Currently playing:" -#: musicbot/bot.py:4792 +#: musicbot/bot.py:4795 msgid "Added By:" msgstr "Added By:" -#: musicbot/bot.py:4793 +#: musicbot/bot.py:4796 #, python-format msgid "`%(user)s`" msgstr "`%(user)s`" -#: musicbot/bot.py:4797 +#: musicbot/bot.py:4800 msgid "Progress:" msgstr "Progress:" -#: musicbot/bot.py:4815 musicbot/bot.py:6004 +#: musicbot/bot.py:4818 musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "There are no songs queued! Queue something with a play command." -#: musicbot/bot.py:4818 +#: musicbot/bot.py:4821 msgid "Tell MusicBot to join the channel you're in." msgstr "Tell MusicBot to join the channel you're in." -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "You are not connected to voice. Try joining a voice channel!" -#: musicbot/bot.py:4876 +#: musicbot/bot.py:4879 #, python-format msgid "Connected to `%(channel)s`" msgstr "Connected to `%(channel)s`" -#: musicbot/bot.py:4882 +#: musicbot/bot.py:4885 msgid "Makes MusicBot follow a user when they change channels in a server.\n" msgstr "Makes MusicBot follow a user when they change channels in a server.\n" -#: musicbot/bot.py:4905 +#: musicbot/bot.py:4908 #, python-format msgid "No longer following user `%(user)s`" msgstr "No longer following user `%(user)s`" -#: musicbot/bot.py:4915 +#: musicbot/bot.py:4918 #, python-format msgid "Now following user `%(user)s` between voice channels." msgstr "Now following user `%(user)s` between voice channels." -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot cannot follow a user that is not a member of the server." -#: musicbot/bot.py:4935 +#: musicbot/bot.py:4938 #, python-format msgid "Will follow user `%(user)s` between voice channels." msgstr "Will follow user `%(user)s` between voice channels." -#: musicbot/bot.py:4941 +#: musicbot/bot.py:4944 msgid "Pause playback if a track is currently playing." msgstr "Pause playback if a track is currently playing." -#: musicbot/bot.py:4952 +#: musicbot/bot.py:4955 #, python-format msgid "Paused music in `%(channel)s`" msgstr "Paused music in `%(channel)s`" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Player is not playing." -#: musicbot/bot.py:4958 +#: musicbot/bot.py:4961 msgid "Resumes playback if the player was previously paused." msgstr "Resumes playback if the player was previously paused." -#: musicbot/bot.py:4969 +#: musicbot/bot.py:4972 #, python-format msgid "Resumed music in `%(channel)s`" msgstr "Resumed music in `%(channel)s`" -#: musicbot/bot.py:4975 +#: musicbot/bot.py:4978 msgid "Resumed music queue" msgstr "Resumed music queue" -#: musicbot/bot.py:4977 +#: musicbot/bot.py:4980 msgid "Player is not paused." msgstr "Player is not paused." -#: musicbot/bot.py:4979 +#: musicbot/bot.py:4982 msgid "Shuffle all current tracks in the queue." msgstr "Shuffle all current tracks in the queue." -#: musicbot/bot.py:5014 +#: musicbot/bot.py:5017 msgid "Shuffled all songs in the queue." msgstr "Shuffled all songs in the queue." -#: musicbot/bot.py:5016 +#: musicbot/bot.py:5019 msgid "Removes all songs currently in the queue." msgstr "Removes all songs currently in the queue." -#: musicbot/bot.py:5028 +#: musicbot/bot.py:5031 msgid "Cleared all songs from the queue." msgstr "Cleared all songs from the queue." -#: musicbot/bot.py:5033 +#: musicbot/bot.py:5036 msgid "Remove a song from the queue, optionally at the given queue position.\n" "If the position is omitted, the song at the end of the queue is removed.\n" "Use the queue command to find position number of your track.\n" @@ -938,41 +938,41 @@ msgstr "Remove a song from the queue, optionally at the given queue position.\n" "Use the queue command to find position number of your track.\n" "However, positions of all songs are changed when a new song starts playing.\n" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Nothing in the queue to remove!" -#: musicbot/bot.py:5068 +#: musicbot/bot.py:5071 #, python-format msgid "Removed `%(track)s` added by `%(user)s`" msgstr "Removed `%(track)s` added by `%(user)s`" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "Nothing found in the queue from user `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Invalid entry number. Use the queue command to find queue positions." -#: musicbot/bot.py:5105 +#: musicbot/bot.py:5108 #, python-format msgid "Removed entry `%(track)s` added by `%(user)s`" msgstr "Removed entry `%(track)s` added by `%(user)s`" -#: musicbot/bot.py:5110 +#: musicbot/bot.py:5113 #, python-format msgid "Removed entry `%(track)s`" msgstr "Removed entry `%(track)s`" -#: musicbot/bot.py:5121 +#: musicbot/bot.py:5124 msgid "Skip or vote to skip the current playing song.\n" "Members with InstaSkip permission may use force parameter to bypass voting.\n" "If LegacySkip option is enabled, the force parameter can be ignored.\n" @@ -980,67 +980,67 @@ msgstr "Skip or vote to skip the current playing song.\n" "Members with InstaSkip permission may use force parameter to bypass voting.\n" "If LegacySkip option is enabled, the force parameter can be ignored.\n" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Can't skip! The player is not playing!" -#: musicbot/bot.py:5153 +#: musicbot/bot.py:5156 #, python-format msgid "The next song `%(track)s` is downloading, please wait." msgstr "The next song `%(track)s` is downloading, please wait." -#: musicbot/bot.py:5161 +#: musicbot/bot.py:5164 msgid "The next song will be played shortly. Please wait." msgstr "The next song will be played shortly. Please wait." -#: musicbot/bot.py:5166 +#: musicbot/bot.py:5169 msgid "Something odd is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Something odd is happening.\n" "You might want to restart the bot if it doesn't start working." -#: musicbot/bot.py:5173 +#: musicbot/bot.py:5176 msgid "Something strange is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Something strange is happening.\n" "You might want to restart the bot if it doesn't start working." -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "You do not have permission to force skip a looped song." -#: musicbot/bot.py:5211 +#: musicbot/bot.py:5214 #, python-format msgid "Force skipped `%(track)s`." msgstr "Force skipped `%(track)s`." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "You do not have permission to force skip." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "You do not have permission to skip a looped song." -#: musicbot/bot.py:5269 +#: musicbot/bot.py:5272 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "The vote to skip has been passed.%(next_up)s" msgstr "Your skip for `%(track)s` was acknowledged.\n" "The vote to skip has been passed.%(next_up)s" -#: musicbot/bot.py:5276 +#: musicbot/bot.py:5279 msgid " Next song coming up!" msgstr " Next song coming up!" -#: musicbot/bot.py:5293 +#: musicbot/bot.py:5296 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "Need **%(votes)s** more vote(s) to skip this song." msgstr "Your skip for `%(track)s` was acknowledged.\n" "Need **%(votes)s** more vote(s) to skip this song." -#: musicbot/bot.py:5306 +#: musicbot/bot.py:5309 msgid "Set the output volume level of MusicBot from 1 to 100.\n" "Volume parameter allows a leading + or - for relative adjustments.\n" "The volume setting is retained until MusicBot is restarted.\n" @@ -1048,34 +1048,34 @@ msgstr "Set the output volume level of MusicBot from 1 to 100.\n" "Volume parameter allows a leading + or - for relative adjustments.\n" "The volume setting is retained until MusicBot is restarted.\n" -#: musicbot/bot.py:5323 +#: musicbot/bot.py:5326 #, python-format msgid "Current volume: `%(volume)s%%`" msgstr "Current volume: `%(volume)s%%`" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` is not a valid number" -#: musicbot/bot.py:5351 +#: musicbot/bot.py:5354 #, python-format msgid "Updated volume from **%(old)d** to **%(new)d**" msgstr "Updated volume from **%(old)d** to **%(new)d**" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." -#: musicbot/bot.py:5374 +#: musicbot/bot.py:5377 msgid "Change the playback speed of the currently playing track only.\n" "The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" "Streaming playback does not support speed adjustments.\n" @@ -1083,133 +1083,133 @@ msgstr "Change the playback speed of the currently playing track only.\n" "The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" "Streaming playback does not support speed adjustments.\n" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "Speed cannot be applied to streamed media." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "You must provide a speed to set." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "The speed you provided is invalid. Use a number between 0.5 and 100." -#: musicbot/bot.py:5432 +#: musicbot/bot.py:5435 #, python-format msgid "Setting playback speed to `%(speed).3f` for current track." msgstr "Setting playback speed to `%(speed).3f` for current track." -#: musicbot/bot.py:5441 +#: musicbot/bot.py:5444 msgid " Add an new alias with optional arguments.\n" msgstr " Add an new alias with optional arguments.\n" -#: musicbot/bot.py:5444 +#: musicbot/bot.py:5447 msgid " Remove an alias with the given name." msgstr " Remove an alias with the given name." -#: musicbot/bot.py:5447 +#: musicbot/bot.py:5450 msgid " Reload or save aliases from/to the config file." msgstr " Reload or save aliases from/to the config file." -#: musicbot/bot.py:5451 +#: musicbot/bot.py:5454 msgid "Allows management of aliases from discord. To see aliases use the help command." msgstr "Allows management of aliases from discord. To see aliases use the help command." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Invalid option for command: `%(option)s`" -#: musicbot/bot.py:5477 +#: musicbot/bot.py:5480 msgid "Aliases reloaded from config file." msgstr "Aliases reloaded from config file." -#: musicbot/bot.py:5482 +#: musicbot/bot.py:5485 msgid "Aliases saved to config file." msgstr "Aliases saved to config file." -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Failed to save aliases due to error:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "You must supply an alias and a command to alias" -#: musicbot/bot.py:5498 +#: musicbot/bot.py:5501 #, python-format msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" msgstr "New alias added. `%(alias)s` is now an alias of `%(command)s`" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "You must supply an alias name to remove." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "The alias `%(alias)s` does not exist." -#: musicbot/bot.py:5518 +#: musicbot/bot.py:5521 #, python-format msgid "Alias `%(alias)s` was removed." msgstr "Alias `%(alias)s` was removed." -#: musicbot/bot.py:5528 +#: musicbot/bot.py:5531 msgid " Shows help text about any missing config options.\n" msgstr " Shows help text about any missing config options.\n" -#: musicbot/bot.py:5531 +#: musicbot/bot.py:5534 msgid " Lists the names of options which have been changed since loading config file.\n" msgstr " Lists the names of options which have been changed since loading config file.\n" -#: musicbot/bot.py:5534 +#: musicbot/bot.py:5537 msgid " List the available config options and their sections.\n" msgstr " List the available config options and their sections.\n" -#: musicbot/bot.py:5537 +#: musicbot/bot.py:5540 msgid " Reload the options.ini file from disk.\n" msgstr " Reload the options.ini file from disk.\n" -#: musicbot/bot.py:5540 +#: musicbot/bot.py:5543 msgid " Shows help text for a specific option.\n" msgstr " Shows help text for a specific option.\n" -#: musicbot/bot.py:5543 +#: musicbot/bot.py:5546 msgid " Display the current value of the option.\n" msgstr " Display the current value of the option.\n" -#: musicbot/bot.py:5546 +#: musicbot/bot.py:5549 msgid " Saves the current value to the options file.\n" msgstr " Saves the current value to the options file.\n" -#: musicbot/bot.py:5549 +#: musicbot/bot.py:5552 msgid " Validates the option and sets the config for the session, but not to file.\n" msgstr " Validates the option and sets the config for the session, but not to file.\n" -#: musicbot/bot.py:5552 +#: musicbot/bot.py:5555 msgid " Reset the option to its default value.\n" msgstr " Reset the option to its default value.\n" -#: musicbot/bot.py:5555 +#: musicbot/bot.py:5558 msgid "Manage options.ini configuration from within Discord." msgstr "Manage options.ini configuration from within Discord." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "Config cannot use channel and user mentions at the same time." -#: musicbot/bot.py:5596 +#: musicbot/bot.py:5599 #, python-format msgid "**Missing Option:** `%(config)s`\n" "```\n" @@ -1220,22 +1220,22 @@ msgstr "**Missing Option:** `%(config)s`\n" "%(comment)s\n" "Default is set to: %(default)s```\n" -#: musicbot/bot.py:5609 +#: musicbot/bot.py:5612 msgid "*All config options are present and accounted for!*" msgstr "*All config options are present and accounted for!*" -#: musicbot/bot.py:5625 +#: musicbot/bot.py:5628 msgid "No config options appear to be changed." msgstr "No config options appear to be changed." -#: musicbot/bot.py:5627 +#: musicbot/bot.py:5630 #, python-format msgid "**Changed Options:**\n" "%(changed)s" msgstr "**Changed Options:**\n" "%(changed)s" -#: musicbot/bot.py:5647 +#: musicbot/bot.py:5650 #, python-format msgid "## Available Options:\n" "**Editable Options:**\n" @@ -1248,51 +1248,51 @@ msgstr "## Available Options:\n" "**Manual Edit Only:**\n" "%(manual)s" -#: musicbot/bot.py:5669 +#: musicbot/bot.py:5672 msgid "Config options reloaded from file successfully!" msgstr "Config options reloaded from file successfully!" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Unable to reload Config due to the following error:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Could not resolve section name from option name. Please provide a valid section and option name." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "The option given is ambiguous, please provide a section name." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "You must provide a section name and option name for this command." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "The option `%(option)s` is not available." -#: musicbot/bot.py:5733 +#: musicbot/bot.py:5736 msgid "This option can only be set by editing the config file." msgstr "This option can only be set by editing the config file." -#: musicbot/bot.py:5737 +#: musicbot/bot.py:5740 #, python-format msgid "By default this option is set to: %(default)s" msgstr "By default this option is set to: %(default)s" -#: musicbot/bot.py:5742 +#: musicbot/bot.py:5745 #, python-format msgid "**Option:** `%(config)s`\n" "%(comment)s\n\n" @@ -1301,27 +1301,27 @@ msgstr "**Option:** `%(config)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "Option `%(option)s` is not editable. Cannot save to disk." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Failed to save the option: `%(option)s`" -#: musicbot/bot.py:5767 +#: musicbot/bot.py:5770 #, python-format msgid "Successfully saved the option: `%(config)s`" msgstr "Successfully saved the option: `%(config)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "Option `%(option)s` is not editable, value cannot be displayed." -#: musicbot/bot.py:5784 +#: musicbot/bot.py:5787 #, python-format msgid "**Option:** `%(config)s`\n" "Current Value: `%(loaded)s`\n" @@ -1330,80 +1330,80 @@ msgstr "**Option:** `%(config)s`\n" "Current Value: `%(loaded)s`\n" "INI File Value: `%(ini)s`" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "Option `%(option)s` is not editable. Cannot update setting." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "You must provide a section, option, and value for this sub command." -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "Option `%(option)s` was not updated!" -#: musicbot/bot.py:5822 +#: musicbot/bot.py:5825 #, python-format msgid "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "Option `%(option)s` is not editable. Cannot reset to default." -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "Option `%(option)s` was not reset to default!" -#: musicbot/bot.py:5857 +#: musicbot/bot.py:5860 #, python-format msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "Option `%(config)s` was reset to its default value `%(default)s`.\n" "To save the change use `config save %(section)s %(option)s`" -#: musicbot/bot.py:5872 +#: musicbot/bot.py:5875 msgid "Deprecated command, use the config command instead." msgstr "Deprecated command, use the config command instead." -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "The option command is deprecated, use the config command instead." -#: musicbot/bot.py:5892 +#: musicbot/bot.py:5895 msgid "Display information about cache storage or clear cache according to configured limits.\n" "Using update option will scan the cache for external changes before displaying details." msgstr "Display information about cache storage or clear cache according to configured limits.\n" "Using update option will scan the cache for external changes before displaying details." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Invalid option specified, use: info, update, or clear" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Disabled" msgstr "Disabled" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Enabled" msgstr "Enabled" -#: musicbot/bot.py:5919 +#: musicbot/bot.py:5922 #, python-format msgid "%(time)s days" msgstr "%(time)s days" -#: musicbot/bot.py:5925 musicbot/bot.py:5928 +#: musicbot/bot.py:5928 musicbot/bot.py:5931 msgid "Unlimited" msgstr "Unlimited" -#: musicbot/bot.py:5933 +#: musicbot/bot.py:5936 #, python-format msgid "**Video Cache:** *%(state)s*\n" "**Storage Limit:** *%(size)s*\n" @@ -1414,40 +1414,40 @@ msgstr "**Video Cache:** *%(state)s*\n" "**Time Limit:** *%(time)s*\n\n" "**Cached Now: %(used)s in %(files)s file(s)." -#: musicbot/bot.py:5956 +#: musicbot/bot.py:5959 msgid "Cache has been cleared." msgstr "Cache has been cleared." -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Failed** to delete cache, check logs for more info..." -#: musicbot/bot.py:5965 +#: musicbot/bot.py:5968 msgid "No cache found to clear." msgstr "No cache found to clear." -#: musicbot/bot.py:5973 +#: musicbot/bot.py:5976 msgid "Display information about the current player queue.\n" "Optional page number shows later entries in the queue.\n" msgstr "Display information about the current player queue.\n" "Optional page number shows later entries in the queue.\n" -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "Queue page argument must be a whole number." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "Requested page number is out of bounds.\n" "There are **%(total)s** pages." -#: musicbot/bot.py:6025 +#: musicbot/bot.py:6026 msgid "(unknown duration)" msgstr "(unknown duration)" -#: musicbot/bot.py:6034 +#: musicbot/bot.py:6035 #, python-format msgid "Currently playing: `%(title)s`\n" "Added by: `%(user)s`\n" @@ -1456,14 +1456,14 @@ msgstr "Currently playing: `%(title)s`\n" "Added by: `%(user)s`\n" "Progress: `[%(progress)s/%(total)s]`\n" -#: musicbot/bot.py:6064 +#: musicbot/bot.py:6065 #, python-format msgid "**Entry #%(index)s:**Title: `%(title)s`\n" "Added by: `%(user)s\n\n" msgstr "**Entry #%(index)s:**Title: `%(title)s`\n" "Added by: `%(user)s\n\n" -#: musicbot/bot.py:6072 +#: musicbot/bot.py:6073 #, python-format msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" "Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" @@ -1472,17 +1472,17 @@ msgstr "%(progress)sThere are `%(total)s` entries in the queue.\n" "Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" "%(tracks)s" -#: musicbot/bot.py:6085 +#: musicbot/bot.py:6086 msgid "Songs in queue" msgstr "Songs in queue" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." -#: musicbot/bot.py:6156 +#: musicbot/bot.py:6157 msgid "Search for and remove bot messages and commands from the calling text channel.\n" "Optionally supply a number of messages to search through, 50 by default 500 max.\n" "This command may be slow if larger ranges are given.\n" @@ -1490,64 +1490,64 @@ msgstr "Search for and remove bot messages and commands from the calling text ch "Optionally supply a number of messages to search through, 50 by default 500 max.\n" "This command may be slow if larger ranges are given.\n" -#: musicbot/bot.py:6180 +#: musicbot/bot.py:6181 msgid "Invalid parameter. Please provide a number of messages to search." msgstr "Invalid parameter. Please provide a number of messages to search." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Cannot use purge on private DM channel." -#: musicbot/bot.py:6222 +#: musicbot/bot.py:6223 #, python-format msgid "Cleaned up %(number)s message(s)." msgstr "Cleaned up %(number)s message(s)." -#: musicbot/bot.py:6226 +#: musicbot/bot.py:6227 msgid "Bot does not have permission to manage messages." msgstr "Bot does not have permission to manage messages." -#: musicbot/bot.py:6231 +#: musicbot/bot.py:6232 msgid "Dump the individual URLs of a playlist to a file." msgstr "Dump the individual URLs of a playlist to a file." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "The given URL was not a valid URL." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Could not extract info from input url\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "This does not seem to be a playlist." -#: musicbot/bot.py:6282 +#: musicbot/bot.py:6283 #, python-format msgid "Here is the playlist dump for: %(url)s" msgstr "Here is the playlist dump for: %(url)s" -#: musicbot/bot.py:6292 +#: musicbot/bot.py:6293 msgid "Display your Discord User ID, or the ID of a mentioned user.\n" "This command is deprecated in favor of Developer Mode in Discord clients.\n" msgstr "Display your Discord User ID, or the ID of a mentioned user.\n" "This command is deprecated in favor of Developer Mode in Discord clients.\n" -#: musicbot/bot.py:6307 +#: musicbot/bot.py:6308 #, python-format msgid "Your user ID is `%(id)s`" msgstr "Your user ID is `%(id)s`" -#: musicbot/bot.py:6312 +#: musicbot/bot.py:6313 #, python-format msgid "The user ID for `%(username)s` is `%(id)s`" msgstr "The user ID for `%(username)s` is `%(id)s`" -#: musicbot/bot.py:6319 +#: musicbot/bot.py:6320 msgid "List the Discord IDs for the selected category.\n" "Returns all ID data by default, but one or more categories may be selected.\n" "This command is deprecated in favor of using Developer mode in Discord clients.\n" @@ -1555,28 +1555,28 @@ msgstr "List the Discord IDs for the selected category.\n" "Returns all ID data by default, but one or more categories may be selected.\n" "This command is deprecated in favor of using Developer mode in Discord clients.\n" -#: musicbot/bot.py:6341 +#: musicbot/bot.py:6342 #, python-format msgid "Valid categories: %(cats)s" msgstr "Valid categories: %(cats)s" -#: musicbot/bot.py:6388 +#: musicbot/bot.py:6389 msgid "Here are the IDs you requested:" msgstr "Here are the IDs you requested:" -#: musicbot/bot.py:6395 +#: musicbot/bot.py:6396 msgid "Get a list of your permissions, or the permissions of the mentioned user." msgstr "Get a list of your permissions, or the permissions of the mentioned user." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "Invalid user ID or server nickname, please double-check the ID and try again." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Could not determine the discord User. Try again." -#: musicbot/bot.py:6439 +#: musicbot/bot.py:6440 #, python-format msgid "Your command permissions in %(server)s are:\n" "```\n" @@ -1587,7 +1587,7 @@ msgstr "Your command permissions in %(server)s are:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6448 +#: musicbot/bot.py:6449 #, python-format msgid "The command permissions for %(username)s in %(server)s are:\n" "```\n" @@ -1598,58 +1598,58 @@ msgstr "The command permissions for %(username)s in %(server)s are:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6464 +#: musicbot/bot.py:6465 msgid " Show loaded groups and list permission options.\n" msgstr " Show loaded groups and list permission options.\n" -#: musicbot/bot.py:6467 +#: musicbot/bot.py:6468 msgid " Reloads permissions from the permissions.ini file.\n" msgstr " Reloads permissions from the permissions.ini file.\n" -#: musicbot/bot.py:6470 +#: musicbot/bot.py:6471 msgid " Add new group with defaults.\n" msgstr " Add new group with defaults.\n" -#: musicbot/bot.py:6473 +#: musicbot/bot.py:6474 msgid " Remove existing group.\n" msgstr " Remove existing group.\n" -#: musicbot/bot.py:6476 +#: musicbot/bot.py:6477 msgid " Show help text for the permission option.\n" msgstr " Show help text for the permission option.\n" -#: musicbot/bot.py:6479 +#: musicbot/bot.py:6480 msgid " Show permission value for given group and permission.\n" msgstr " Show permission value for given group and permission.\n" -#: musicbot/bot.py:6482 +#: musicbot/bot.py:6483 msgid " Save permissions group to file.\n" msgstr " Save permissions group to file.\n" -#: musicbot/bot.py:6485 +#: musicbot/bot.py:6486 msgid " Set permission value for the group.\n" msgstr " Set permission value for the group.\n" -#: musicbot/bot.py:6488 +#: musicbot/bot.py:6489 msgid "Manage permissions.ini configuration from within discord." msgstr "Manage permissions.ini configuration from within discord." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Permissions cannot use channel and user mentions at the same time." -#: musicbot/bot.py:6534 +#: musicbot/bot.py:6535 msgid "Permissions reloaded from file successfully!" msgstr "Permissions reloaded from file successfully!" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Unable to reload Permissions due to an error:\n" "%(raw_error)s" -#: musicbot/bot.py:6558 +#: musicbot/bot.py:6559 #, python-format msgid "## Available Groups:\n" "%(groups)s\n" @@ -1660,41 +1660,41 @@ msgstr "## Available Groups:\n" "## Available Options:\n" "%(options)s\n" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "You must provide a group or option name for this command." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "You must provide a group, option, and value to set for this command." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "The %(option)s sub-command requires a group and permission name." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "The permission `%(option)s` is not available." -#: musicbot/bot.py:6624 +#: musicbot/bot.py:6625 msgid "This permission can only be set by editing the permissions file." msgstr "This permission can only be set by editing the permissions file." -#: musicbot/bot.py:6633 +#: musicbot/bot.py:6634 #, python-format msgid "By default this permission is set to: `%(value)s`" msgstr "By default this permission is set to: `%(value)s`" -#: musicbot/bot.py:6638 +#: musicbot/bot.py:6639 #, python-format msgid "**Permission:** `%(option)s`\n" "%(comment)s\n\n" @@ -1703,12 +1703,12 @@ msgstr "**Permission:** `%(option)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Cannot add group `%(group)s` it already exists." -#: musicbot/bot.py:6660 +#: musicbot/bot.py:6661 #, python-format msgid "Successfully added new group: `%(group)s`\n" "You can now customize the permissions with: `setperms set %(group)s`\n" @@ -1717,32 +1717,32 @@ msgstr "Successfully added new group: `%(group)s`\n" "You can now customize the permissions with: `setperms set %(group)s`\n" "Make sure to save the new group with: `setperms save %(group)s`" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Cannot remove built-in group." -#: musicbot/bot.py:6677 +#: musicbot/bot.py:6678 #, python-format msgid "Successfully removed group: `%(group)s`\n" "Make sure to save this change with: `setperms save %(group)s`" msgstr "Successfully removed group: `%(group)s`\n" "Make sure to save this change with: `setperms save %(group)s`" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "The owner group is not editable." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Failed to save the group: `%(group)s`" -#: musicbot/bot.py:6700 +#: musicbot/bot.py:6701 #, python-format msgid "Successfully saved the group: `%(group)s`" msgstr "Successfully saved the group: `%(group)s`" -#: musicbot/bot.py:6711 +#: musicbot/bot.py:6712 #, python-format msgid "**Permission:** `%(permission)s`\n" "Current Value: `%(loaded)s`\n" @@ -1751,155 +1751,205 @@ msgstr "**Permission:** `%(permission)s`\n" "Current Value: `%(loaded)s`\n" "INI File Value: `%(ini)s`" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Permission `%(option)s` was not updated!" -#: musicbot/bot.py:6748 +#: musicbot/bot.py:6749 #, python-format msgid "Permission `%(permission)s` was updated for this session.\n" "To save the change use `setperms save %(section)s %(option)s`" msgstr "Permission `%(permission)s` was updated for this session.\n" "To save the change use `setperms save %(section)s %(option)s`" -#: musicbot/bot.py:6765 +#: musicbot/bot.py:6766 msgid "Change the bot's username on discord.\n" "Note: The API may limit name changes to twice per hour." msgstr "Change the bot's username on discord.\n" "Note: The API may limit name changes to twice per hour." -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Failed to change username due to error: \n" "%(raw_error)s" -#: musicbot/bot.py:6795 +#: musicbot/bot.py:6796 #, python-format msgid "Set the bot's username to `%(name)s`" msgstr "Set the bot's username to `%(name)s`" -#: musicbot/bot.py:6798 +#: musicbot/bot.py:6799 msgid "Change the MusicBot's nickname." msgstr "Change the MusicBot's nickname." -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Unable to change nickname: no permission." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Failed to set nickname due to error: \n" "%(raw_error)s" -#: musicbot/bot.py:6825 +#: musicbot/bot.py:6826 #, python-format msgid "Set the bot's nickname to `%(nick)s`" msgstr "Set the bot's nickname to `%(nick)s`" -#: musicbot/bot.py:6832 +#: musicbot/bot.py:6833 msgid " Set a per-server command prefix." msgstr " Set a per-server command prefix." -#: musicbot/bot.py:6834 +#: musicbot/bot.py:6835 msgid " Clear the per-server command prefix." msgstr " Clear the per-server command prefix." -#: musicbot/bot.py:6838 +#: musicbot/bot.py:6839 msgid "Override the default command prefix in the server.\n" "The option EnablePrefixPerGuild must be enabled first." msgstr "Override the default command prefix in the server.\n" "The option EnablePrefixPerGuild must be enabled first." -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Custom emoji must be from this server to use as a prefix." -#: musicbot/bot.py:6866 +#: musicbot/bot.py:6867 msgid "Server command prefix is cleared." msgstr "Server command prefix is cleared." -#: musicbot/bot.py:6871 +#: musicbot/bot.py:6872 #, python-format msgid "Server command prefix is now: %(prefix)s" msgstr "Server command prefix is now: %(prefix)s" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." -#: musicbot/bot.py:6885 +#: musicbot/bot.py:6886 +msgid " Show language codes available to use.\n" +msgstr " Show language codes available to use.\n" + +#: musicbot/bot.py:6889 +msgid " Set the desired language for this server.\n" +msgstr " Set the desired language for this server.\n" + +#: musicbot/bot.py:6892 +msgid " Reset the server language to bot's default language.\n" +msgstr " Reset the server language to bot's default language.\n" + +#: musicbot/bot.py:6895 +msgid "Manage the language used for messages in the calling server." +msgstr "Manage the language used for messages in the calling server." + +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "This command can only be used in guilds." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Invalid sub-command given. Use the help command for more information." + +#: musicbot/bot.py:6924 +#, python-format +msgid "**Current Language:** `%(locale)s`\n" +"**Available Languages:**\n" +"```\n" +"%(languages)s```" +msgstr "**Current Language:** `%(locale)s`\n" +"**Available Languages:**\n" +"```\n" +"%(languages)s```" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Cannot set language to `%(locale)s` it is not available." + +#: musicbot/bot.py:6939 +#, python-format +msgid "Language for this server now set to: `%(locale)s`" +msgstr "Language for this server now set to: `%(locale)s`" + +#: musicbot/bot.py:6947 +#, python-format +msgid "Language for this server has been reset to: `%(locale)s`" +msgstr "Language for this server has been reset to: `%(locale)s`" + +#: musicbot/bot.py:6959 msgid "Change MusicBot's avatar.\n" "Attaching a file and omitting the url parameter also works.\n" msgstr "Change MusicBot's avatar.\n" "Attaching a file and omitting the url parameter also works.\n" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "You must provide a URL or attach a file." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Unable to change avatar due to error: \n" "%(raw_error)s" -#: musicbot/bot.py:6919 +#: musicbot/bot.py:6993 msgid "Changed the bot's avatar." msgstr "Changed the bot's avatar." -#: musicbot/bot.py:6922 +#: musicbot/bot.py:6996 msgid "Force MusicBot to disconnect from the discord server." msgstr "Force MusicBot to disconnect from the discord server." -#: musicbot/bot.py:6933 +#: musicbot/bot.py:7007 #, python-format msgid "Disconnected from server `%(guild)s`" msgstr "Disconnected from server `%(guild)s`" -#: musicbot/bot.py:6948 +#: musicbot/bot.py:7022 msgid "Disconnected a playerless voice client? [BUG]" msgstr "Disconnected a playerless voice client? [BUG]" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Not currently connected to server `%(guild)s`" -#: musicbot/bot.py:6960 +#: musicbot/bot.py:7034 msgid " Attempt to reload without process restart. The default option.\n" msgstr " Attempt to reload without process restart. The default tion.\n" -#: musicbot/bot.py:6962 +#: musicbot/bot.py:7036 msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" msgstr " Attempt to restart the entire MusicBot process, reloading everything.\n" -#: musicbot/bot.py:6964 +#: musicbot/bot.py:7038 msgid " Full restart, but attempt to update pip packages before restart.\n" msgstr " Full restart, but attempt to update pip packages before restart.\n" -#: musicbot/bot.py:6966 +#: musicbot/bot.py:7040 msgid " Full restart, but update MusicBot source code with git first.\n" msgstr " Full restart, but update MusicBot source code with git first.\n" -#: musicbot/bot.py:6968 +#: musicbot/bot.py:7042 msgid " Attempt to update all dependency and source code before fully restarting.\n" msgstr " Attempt to update all dependency and source code before fully restarting.\n" -#: musicbot/bot.py:6972 +#: musicbot/bot.py:7046 msgid "Attempts to restart the MusicBot in a number of different ways.\n" "With no option supplied, a `soft` restart is implied.\n" "It can be used to remotely update a MusicBot installation, but should be used with care.\n" @@ -1909,103 +1959,103 @@ msgstr "Attempts to restart the MusicBot in a number of different ways.\n" "It can be used to remotely update a MusicBot installation, but should be used with care.\n" "If you have a service manager, we recommend using it instead of this command for restarts.\n" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" -#: musicbot/bot.py:6999 +#: musicbot/bot.py:7073 #, python-format msgid "%(emoji)s Restarting current instance..." msgstr "%(emoji)s Restarting current instance..." -#: musicbot/bot.py:7004 +#: musicbot/bot.py:7078 #, python-format msgid "%(emoji)s Restarting bot process..." msgstr "%(emoji)s Restarting bot process..." -#: musicbot/bot.py:7009 +#: musicbot/bot.py:7083 #, python-format msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." msgstr "%(emoji)s Will try to upgrade required pip packages and restart the bot..." -#: musicbot/bot.py:7014 +#: musicbot/bot.py:7088 #, python-format msgid "%(emoji)s Will try to update bot code with git and restart the bot..." msgstr "%(emoji)s Will try to update bot code with git and restart the bot..." -#: musicbot/bot.py:7019 +#: musicbot/bot.py:7093 #, python-format msgid "%(emoji)s Will try to upgrade everything and restart the bot..." msgstr "%(emoji)s Will try to upgrade everything and restart the bot..." -#: musicbot/bot.py:7053 +#: musicbot/bot.py:7127 msgid "Disconnect from all voice channels and close the MusicBot process." msgstr "Disconnect from all voice channels and close the MusicBot process." -#: musicbot/bot.py:7079 +#: musicbot/bot.py:7153 msgid " Leave the discord server given by name or server ID." msgstr " Leave the discord server given by name or server ID." -#: musicbot/bot.py:7083 +#: musicbot/bot.py:7157 msgid "Force MusicBot to leave the given Discord server.\n" "Names are case-sensitive, so using an ID number is more reliable.\n" msgstr "Force MusicBot to leave the given Discord server.\n" "Names are case-sensitive, so using an ID number is more reliable.\n" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "You must provide an ID or name." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "No guild was found with the ID or name `%(input)s`" -#: musicbot/bot.py:7121 +#: musicbot/bot.py:7195 msgid "Unknown" msgstr "Unknown" -#: musicbot/bot.py:7128 +#: musicbot/bot.py:7202 #, python-format msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" msgstr "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" -#: musicbot/bot.py:7138 +#: musicbot/bot.py:7212 msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." msgstr "Command used for testing. It prints a list of commands which can be verified by a test suite." -#: musicbot/bot.py:7162 +#: musicbot/bot.py:7236 msgid "This command issues a log at level CRITICAL, but does nothing else.\n" "Can be used to manually pinpoint events in the MusicBot log file.\n" msgstr "This command issues a log at level CRITICAL, but does nothing else.\n" "Can be used to manually pinpoint events in the MusicBot log file.\n" -#: musicbot/bot.py:7173 +#: musicbot/bot.py:7247 #, python-format msgid "Logged breakpoint with ID: %(uuid)s" msgstr "Logged breakpoint with ID: %(uuid)s" -#: musicbot/bot.py:7180 +#: musicbot/bot.py:7254 msgid " View most common types reported by objgraph.\n" msgstr " View most common types reported by objgraph.\n" -#: musicbot/bot.py:7183 +#: musicbot/bot.py:7257 msgid " View limited objgraph.show_growth() output.\n" msgstr " View limited objgraph.show_growth() output.\n" -#: musicbot/bot.py:7186 +#: musicbot/bot.py:7260 msgid " View most common types of leaking objects.\n" msgstr " View most common types of leaking objects.\n" -#: musicbot/bot.py:7189 +#: musicbot/bot.py:7263 msgid " View typestats of leaking objects.\n" msgstr " View typestats of leaking objects.\n" -#: musicbot/bot.py:7192 +#: musicbot/bot.py:7266 msgid " Evaluate the given function and arguments on objgraph.\n" msgstr " Evaluate the given function and arguments on objgraph.\n" -#: musicbot/bot.py:7196 +#: musicbot/bot.py:7270 msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" "You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" "Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" @@ -2013,11 +2063,11 @@ msgstr "Interact with objgraph, if it is installed, to gain insight into memory "You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" "Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Could not import `objgraph`, is it installed?" -#: musicbot/bot.py:7249 +#: musicbot/bot.py:7323 msgid "This command will execute arbitrary python code in the command scope.\n" "First eval() is attempted, if exceptions are thrown exec() is tried next.\n" "If eval is successful, it's return value is displayed.\n" @@ -2035,7 +2085,7 @@ msgstr "This command will execute arbitrary python code in the command scope.\n" "This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" "The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -2048,65 +2098,65 @@ msgstr "Failed to execute debug code:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7320 +#: musicbot/bot.py:7394 msgid "Create 'markdown' for options, permissions, or commands from the code.\n" "The output is used to update GitHub Pages and is thus unsuitable for normal reference use." msgstr "Create 'markdown' for options, permissions, or commands from the code.\n" "The output is used to update GitHub Pages and is thus unsuitable for normal reference use." -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "Sub-command must be one of: %(options)s" -#: musicbot/bot.py:7387 +#: musicbot/bot.py:7461 msgid "Makes default INI files." msgstr "Makes default INI files." -#: musicbot/bot.py:7410 +#: musicbot/bot.py:7486 msgid "Saved the requested INI file to disk. Go check it" msgstr "Saved the requested INI file to disk. Go check it" -#: musicbot/bot.py:7415 +#: musicbot/bot.py:7491 msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" msgstr "Display the current bot version and check for updates to MusicBot or dependencies.\n" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Could not locate git executable." -#: musicbot/bot.py:7473 +#: musicbot/bot.py:7549 #, python-format msgid "No updates in branch `%(branch)s` remote." msgstr "No updates in branch `%(branch)s` remote." -#: musicbot/bot.py:7478 +#: musicbot/bot.py:7554 #, python-format msgid "New commits are available in `%(branch)s` branch remote." msgstr "New commits are available in `%(branch)s` branch remote." -#: musicbot/bot.py:7484 musicbot/bot.py:7527 +#: musicbot/bot.py:7560 musicbot/bot.py:7603 msgid "Error while checking, see logs for details." msgstr "Error while checking, see logs for details." -#: musicbot/bot.py:7518 +#: musicbot/bot.py:7594 #, python-format msgid "Update for `%(name)s` to version: `%(version)s`\n" msgstr "Update for `%(name)s` to version: `%(version)s`\n" -#: musicbot/bot.py:7524 +#: musicbot/bot.py:7600 msgid "No updates for dependencies found." msgstr "No updates for dependencies found." -#: musicbot/bot.py:7530 +#: musicbot/bot.py:7606 msgid "There are updates for MusicBot available for download." msgstr "There are updates for MusicBot available for download." -#: musicbot/bot.py:7532 +#: musicbot/bot.py:7608 msgid "MusicBot is totally up-to-date!" msgstr "MusicBot is totally up-to-date!" -#: musicbot/bot.py:7536 +#: musicbot/bot.py:7612 #, python-format msgid "%(status)s\n\n" "**Source Code Updates:**\n" @@ -2119,29 +2169,29 @@ msgstr "%(status)s\n\n" "**Dependency Updates:**\n" "%(pip_status)s" -#: musicbot/bot.py:7550 +#: musicbot/bot.py:7626 msgid "Displays the MusicBot uptime, or time since last start / restart." msgstr "Displays the MusicBot uptime, or time since last start / restart." -#: musicbot/bot.py:7565 +#: musicbot/bot.py:7641 #, python-format msgid "%(name)s has been online for `%(time)s`" msgstr "%(name)s has been online for `%(time)s`" -#: musicbot/bot.py:7572 +#: musicbot/bot.py:7648 msgid "Display latency information for Discord API and all connected voice clients." msgstr "Display latency information for Discord API and all connected voice clients." -#: musicbot/bot.py:7594 +#: musicbot/bot.py:7670 #, python-format msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" -#: musicbot/bot.py:7599 +#: musicbot/bot.py:7675 msgid "No voice clients connected.\n" msgstr "No voice clients connected.\n" -#: musicbot/bot.py:7604 +#: musicbot/bot.py:7680 #, python-format msgid "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" @@ -2150,47 +2200,47 @@ msgstr "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" "%(voices)s" -#: musicbot/bot.py:7612 +#: musicbot/bot.py:7688 msgid "Display API latency and Voice latency if MusicBot is connected." msgstr "Display API latency and Voice latency if MusicBot is connected." #. TRANSLATORS: short for automatic, displayed when voice region is not selected. -#: musicbot/bot.py:7628 +#: musicbot/bot.py:7704 msgid "auto" msgstr "auto" -#: musicbot/bot.py:7630 +#: musicbot/bot.py:7706 #, python-format msgid "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" msgstr "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" -#: musicbot/bot.py:7635 +#: musicbot/bot.py:7711 #, python-format msgid "**API Latency:** `%(delay).0f ms`%(voice)s" msgstr "**API Latency:** `%(delay).0f ms`%(voice)s" -#: musicbot/bot.py:7640 +#: musicbot/bot.py:7716 msgid "Display MusicBot version number in the chat." msgstr "Display MusicBot version number in the chat." -#: musicbot/bot.py:7648 +#: musicbot/bot.py:7724 #, python-format msgid "https://github.com/Just-Some-Bots/MusicBot\n" "Current version: `%(version)s`" msgstr "https://github.com/Just-Some-Bots/MusicBot\n" "Current version: `%(version)s`" -#: musicbot/bot.py:7660 +#: musicbot/bot.py:7736 msgid " Update the cookies.txt file using a cookies.txt attachment." msgstr " Update the cookies.txt file using a cookies.txt attachment." -#: musicbot/bot.py:7663 +#: musicbot/bot.py:7739 msgid " Enable or disable cookies.txt file without deleting it." msgstr " Enable or disable cookies.txt file without deleting it." -#: musicbot/bot.py:7667 +#: musicbot/bot.py:7743 msgid "Allows management of the cookies feature in yt-dlp.\n" "When updating cookies, you must upload a file named cookies.txt\n" "If cookies are disabled, uploading will enable the feature.\n" @@ -2210,90 +2260,90 @@ msgstr "Allows management of the cookies feature in yt-dlp.\n" " It is not recommended due to these risks, and you should not use this\n" " feature if you do not understand how to avoid the risks." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookies already enabled." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Cookies must be uploaded to be enabled. (Missing cookies file.)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Could not enable cookies due to error: %(raw_error)s" -#: musicbot/bot.py:7711 +#: musicbot/bot.py:7787 msgid "Cookies have been enabled." msgstr "Cookies have been enabled." -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." -#: musicbot/bot.py:7726 +#: musicbot/bot.py:7802 msgid "Cookies have been disabled." msgstr "Cookies have been disabled." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "No attached uploads were found, try again while uploading a cookie file." -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Error downloading the cookies file from discord: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Could not save cookies to disk: %(raw_error)s" -#: musicbot/bot.py:7762 +#: musicbot/bot.py:7838 msgid "Cookies uploaded and enabled." msgstr "Cookies uploaded and enabled." -#: musicbot/bot.py:7872 +#: musicbot/bot.py:7948 msgid "You cannot use this bot in private messages." msgstr "You cannot use this bot in private messages." -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "This command is not allowed for your permissions group: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "This command requires you to be in a Voice channel." -#: musicbot/bot.py:8075 +#: musicbot/bot.py:8151 #, python-format msgid "**Command:** %(name)s" msgstr "**Command:** %(name)s" -#: musicbot/bot.py:8134 +#: musicbot/bot.py:8210 msgid "Exception Error" msgstr "Exception Error" -#: musicbot/bot.py:8179 +#: musicbot/bot.py:8255 #, python-format msgid "**Example with prefix:**\n" "%(prefix)s`%(command)s ...`\n" msgstr "**Example with prefix:**\n" "%(prefix)s`%(command)s ...`\n" -#: musicbot/bot.py:8183 +#: musicbot/bot.py:8259 msgid "No description given.\n" msgstr "No description given.\n" -#: musicbot/bot.py:8186 +#: musicbot/bot.py:8262 msgid "No usage given." msgstr "No usage given." -#: musicbot/bot.py:8220 +#: musicbot/bot.py:8296 #, python-format msgid "**Example usage:**\n" "```%(usage)s```\n" @@ -2304,12 +2354,12 @@ msgstr "**Example usage:**\n" "%(prefix_note)s**Description:**\n" "%(desc)s" -#: musicbot/bot.py:8273 +#: musicbot/bot.py:8349 #, python-format msgid "Leaving voice channel %(channel)s due to inactivity." msgstr "Leaving voice channel %(channel)s due to inactivity." -#: musicbot/bot.py:8554 +#: musicbot/bot.py:8645 #, python-format msgid "Left `%(guild)s` due to bot owner not being found in it." msgstr "Left `%(guild)s` due to bot owner not being found in it." @@ -2493,43 +2543,43 @@ msgid "Enable automatic skip of auto playlist songs when a user plays a new song msgstr "Enable automatic skip of auto playlist songs when a user plays a new song.\n" "This only applies to the current playing song if it was added by the auto playlist." -#: musicbot/config.py:469 +#: musicbot/config.py:468 msgid "Remove songs from the auto playlist if they are found in the song block list." msgstr "Remove songs from the auto playlist if they are found in the song block list." -#: musicbot/config.py:488 +#: musicbot/config.py:487 msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" "Delay period is controlled by DeleteDelayShort and DeleteDelayLong." msgstr "Allow MusicBot to automatically delete messages it sends, after a delay.\n" "Delay period is controlled by DeleteDelayShort and DeleteDelayLong." -#: musicbot/config.py:498 +#: musicbot/config.py:497 msgid "Auto delete valid commands after a delay." msgstr "Auto delete valid commands after a delay." -#: musicbot/config.py:507 +#: musicbot/config.py:506 msgid "Sets the short period of seconds before deleting messages.\n" "This period is used by messages that require no further interaction." msgstr "Sets the short period of seconds before deleting messages.\n" "This period is used by messages that require no further interaction." -#: musicbot/config.py:518 +#: musicbot/config.py:517 msgid "Sets the long delay period before deleting messages.\n" "This period is used by interactive or long-winded messages, like search and help." msgstr "Sets the long delay period before deleting messages.\n" "This period is used by interactive or long-winded messages, like search and help." -#: musicbot/config.py:530 +#: musicbot/config.py:529 msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." msgstr "Allow MusicBot to save the song queue, so queued songs will survive restarts." -#: musicbot/config.py:540 +#: musicbot/config.py:539 msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" "Currently this option does not apply to auto playlist or songs added to an empty queue." msgstr "Enable MusicBot to download the next song in the queue while a song is playing.\n" "Currently this option does not apply to auto playlist or songs added to an empty queue." -#: musicbot/config.py:550 +#: musicbot/config.py:549 msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" "will display dynamic info about music currently being played in its status instead.\n" "Status messages may also use the following variables:\n" @@ -2553,69 +2603,69 @@ msgstr "Specify a custom message to use as the bot's status. If left empty, the " {p0_title} = The track title for the currently playing track.\n" " {p0_url} = The track URL for the currently playing track." -#: musicbot/config.py:571 +#: musicbot/config.py:570 msgid "If enabled, status messages will report info on paused players." msgstr "If enabled, status messages will report info on paused players." #. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. -#: musicbot/config.py:582 +#: musicbot/config.py:581 msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" msgstr "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" -#: musicbot/config.py:592 +#: musicbot/config.py:591 msgid "Allow the member who requested the song to skip it, bypassing votes." msgstr "Allow the member who requested the song to skip it, bypassing votes." -#: musicbot/config.py:602 +#: musicbot/config.py:601 msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" "This option can cause delay between playing songs, as the whole track must be processed." msgstr "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" "This option can cause delay between playing songs, as the whole track must be processed." -#: musicbot/config.py:612 +#: musicbot/config.py:611 msgid "Allow MusicBot to format its messages as embeds." msgstr "Allow MusicBot to format its messages as embeds." -#: musicbot/config.py:621 +#: musicbot/config.py:620 msgid "The number of entries to show per-page when using q command to list the queue." msgstr "The number of entries to show per-page when using q command to list the queue." -#: musicbot/config.py:631 +#: musicbot/config.py:630 msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." msgstr "Enable MusicBot to automatically remove unplayable entries from the auto playlist." -#: musicbot/config.py:640 +#: musicbot/config.py:639 msgid "Display MusicBot config settings in the logs at startup." msgstr "Display MusicBot config settings in the logs at startup." #. TRANSLATORS: InstaSkip should not be translated. -#: musicbot/config.py:650 +#: musicbot/config.py:649 msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." msgstr "Enable users with the InstaSkip permission to bypass skip voting and force skips." -#: musicbot/config.py:660 +#: musicbot/config.py:659 msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." msgstr "If enabled, MusicBot will leave servers if the owner is not in their member list." -#: musicbot/config.py:670 +#: musicbot/config.py:669 msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" msgstr "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" -#: musicbot/config.py:681 +#: musicbot/config.py:680 msgid "Replace MusicBot name/version in embed footer with custom text.\n" "Only applied when UseEmbeds is enabled and it is not blank." msgstr "Replace MusicBot name/version in embed footer with custom text.\n" "Only applied when UseEmbeds is enabled and it is not blank." -#: musicbot/config.py:691 +#: musicbot/config.py:690 msgid "Completely remove the footer from embeds." msgstr "Completely remove the footer from embeds." -#: musicbot/config.py:700 +#: musicbot/config.py:699 msgid "MusicBot will automatically deafen itself when entering a voice channel." msgstr "MusicBot will automatically deafen itself when entering a voice channel." -#: musicbot/config.py:711 +#: musicbot/config.py:710 msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" "after waiting for a period set in LeaveInactiveVCTimeOut option.\n" "Listeners are channel members, excluding bots, who are not deafened." @@ -2623,17 +2673,17 @@ msgstr "If enabled, MusicBot will leave a voice channel when no users are listen "after waiting for a period set in LeaveInactiveVCTimeOut option.\n" "Listeners are channel members, excluding bots, who are not deafened." -#: musicbot/config.py:723 +#: musicbot/config.py:722 msgid "Set a period of time to wait before leaving an inactive voice channel.\n" "You can set this to a number of seconds or phrase like: 4 hours" msgstr "Set a period of time to wait before leaving an inactive voice channel.\n" "You can set this to a number of seconds or phrase like: 4 hours" -#: musicbot/config.py:734 +#: musicbot/config.py:733 msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." msgstr "If enabled, MusicBot will leave the channel immediately when the song queue is empty." -#: musicbot/config.py:744 +#: musicbot/config.py:743 msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" "You can set this to a number of seconds of phrase like: 15 minutes\n" "Set it to 0 to disable leaving in this way." @@ -2641,24 +2691,24 @@ msgstr "When paused or no longer playing, wait for this amount of time then leav "You can set this to a number of seconds of phrase like: 15 minutes\n" "Set it to 0 to disable leaving in this way." -#: musicbot/config.py:756 +#: musicbot/config.py:755 msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." msgstr "If enabled, users must indicate search result choices by sending a message instead of using reactions." -#: musicbot/config.py:766 +#: musicbot/config.py:765 msgid "Sets the default number of search results to fetch when using the search command without a specific number." msgstr "Sets the default number of search results to fetch when using the search command without a specific number." #. TRANSLATORS: setprefix should not be translated. -#: musicbot/config.py:778 +#: musicbot/config.py:777 msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." msgstr "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." -#: musicbot/config.py:789 +#: musicbot/config.py:788 msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." msgstr "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." -#: musicbot/config.py:800 +#: musicbot/config.py:799 msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" "This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" "MusicBot must be restarted to enable network testing.\n" @@ -2668,7 +2718,7 @@ msgstr "Allow MusicBot to use timed pings to detect network outage and availabil "MusicBot must be restarted to enable network testing.\n" "By default this is disabled." -#: musicbot/config.py:814 +#: musicbot/config.py:813 #, python-format msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" "This will contain all songs from all servers." @@ -2676,12 +2726,12 @@ msgstr "Enable saving all songs played by MusicBot to a global playlist file: % "This will contain all songs from all servers." #. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. -#: musicbot/config.py:829 +#: musicbot/config.py:828 #, python-format msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" msgstr "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" -#: musicbot/config.py:845 +#: musicbot/config.py:844 msgid "Enable playback of local media files using the play command.\n" "When enabled, users can use: `play file://path/to/file.ext`\n" "to play files from the local MediaFileDirectory path." @@ -2689,11 +2739,11 @@ msgstr "Enable playback of local media files using the play command.\n" "When enabled, users can use: `play file://path/to/file.ext`\n" "to play files from the local MediaFileDirectory path." -#: musicbot/config.py:858 +#: musicbot/config.py:857 msgid "Allow MusicBot to automatically unpause when play commands are used." msgstr "Allow MusicBot to automatically unpause when play commands are used." -#: musicbot/config.py:877 +#: musicbot/config.py:876 msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" "The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" "Leave blank to disable." @@ -2701,7 +2751,7 @@ msgstr "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media download "The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" "Leave blank to disable." -#: musicbot/config.py:888 +#: musicbot/config.py:887 msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" "It is not typically recommended by yt-dlp to change the UA string.\n" "For examples of what you might put here, check the following two links:\n" @@ -2715,7 +2765,7 @@ msgstr "Experimental option to set a static User-Agent header in yt-dlp.\n" " https://www.useragents.me/ \n" "Leave blank to use default, dynamically generated UA strings." -#: musicbot/config.py:903 +#: musicbot/config.py:902 #, python-format msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" "When enabled, you must use the generated URL and code to authorize an account.\n" @@ -2730,7 +2780,7 @@ msgstr "Experimental option to enable yt-dlp to use a YouTube account via OAuth2 "Using a personal account may not be recommended.\n" "Set yes to enable or no to disable." -#: musicbot/config.py:920 +#: musicbot/config.py:919 msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" "This starts the OAuth2 prompt early, rather than waiting for a song request.\n" "The URL set here should be an accessible YouTube video URL.\n" @@ -2740,31 +2790,31 @@ msgstr "Optional YouTube video URL used at start-up for triggering OAuth2 author "The URL set here should be an accessible YouTube video URL.\n" "Authorization must be completed before start-up will continue when this is set." -#: musicbot/config.py:939 +#: musicbot/config.py:938 msgid "Toggle the user block list feature, without emptying the block list." msgstr "Toggle the user block list feature, without emptying the block list." -#: musicbot/config.py:949 +#: musicbot/config.py:948 msgid "An optional file path to a text file listing Discord User IDs, one per line." msgstr "An optional file path to a text file listing Discord User IDs, one per line." -#: musicbot/config.py:961 +#: musicbot/config.py:960 msgid "Enable the song block list feature, without emptying the block list." msgstr "Enable the song block list feature, without emptying the block list." -#: musicbot/config.py:971 +#: musicbot/config.py:970 msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" "Any song title or URL that contains any line in the list will be blocked." msgstr "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" "Any song title or URL that contains any line in the list will be blocked." -#: musicbot/config.py:984 +#: musicbot/config.py:983 msgid "An optional path to a directory containing auto playlist files.\n" "Each file should contain a list of playable URLs or terms, one track per line." msgstr "An optional path to a directory containing auto playlist files.\n" "Each file should contain a list of playable URLs or terms, one track per line." -#: musicbot/config.py:996 +#: musicbot/config.py:995 #, python-format msgid "An optional directory path where playable media files can be stored.\n" "All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" @@ -2775,11 +2825,11 @@ msgstr "An optional directory path where playable media files can be stored.\n" "Example: file://some/folder/name/file.ext\n" "Maps to: %(path)s/some/folder/name/file.ext" -#: musicbot/config.py:1015 +#: musicbot/config.py:1014 msgid "An optional directory path where MusicBot will store long and short-term cache for playback." msgstr "An optional directory path where MusicBot will store long and short-term cache for playback." -#: musicbot/config.py:1026 +#: musicbot/config.py:1025 #, python-format msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" "When disabled, only one log is kept and its contents are replaced each run.\n" @@ -2788,7 +2838,7 @@ msgstr "Configure automatic log file rotation at restart, and limit the number o "When disabled, only one log is kept and its contents are replaced each run.\n" "Set to 0 to disable. Maximum allowed number is %(max)s." -#: musicbot/config.py:1039 +#: musicbot/config.py:1038 msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" "If left blank, a warning is logged and the default will be used instead.\n" "Learn more about time format codes from the tables and data here:\n" @@ -2798,13 +2848,13 @@ msgstr "Configure the log file date format used when LogsMaxKept is enabled.\n" "Learn more about time format codes from the tables and data here:\n" " https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" -#: musicbot/config.py:1053 +#: musicbot/config.py:1052 msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" "This option will disable UseExperimentalEqualization option as well." msgstr "Potentially reduces CPU usage, but disables volume and speed controls.\n" "This option will disable UseExperimentalEqualization option as well." -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2827,7 +2877,7 @@ msgstr "Error while reading config.\n\n" " Each section must have at least one option.\n" " Use the example options as a template or copy it from the repository." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2839,7 +2889,7 @@ msgstr "Error while validating config options.\n\n" "Solution:\n" " Make sure the path you configured is a path to a folder / directory." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2854,7 +2904,7 @@ msgstr "Error while validating config options.\n\n" "Solution:\n" " Double check the setting is a valid, accessible directory path." -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2867,7 +2917,7 @@ msgstr "Error while reading config options.\n\n" "Solution:\n" " Set the Token config option or set environment variable %(env_var)s with an App token." -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2881,7 +2931,7 @@ msgstr "Error while fetching 'OwnerID' automatically.\n\n" "Solution:\n" " Manually set the 'OwnerID' config option or try again later." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2893,7 +2943,7 @@ msgstr "Error validating config options.\n\n" "Solution:\n" " Do not use the Bot or App ID in the 'OwnerID' field." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2908,7 +2958,7 @@ msgstr "Error locating config.\n\n" "Solution:\n" " Verify the config folder and files exist and can be read by MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2925,7 +2975,7 @@ msgstr "Error loading config.\n\n" " Make sure the file is accessible and error free.\n" " Copy the example file from the repo if all else fails." -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2938,7 +2988,7 @@ msgstr "Error loading config value.\n\n" "Solution:\n" " Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2951,7 +3001,7 @@ msgstr "Error loading config value.\n\n" "Solution:\n" " Check the path setting and make sure the file exists and is accessible to MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" diff --git a/i18n/es_ES/LC_MESSAGES/musicbot_logs.mo b/i18n/es_ES/LC_MESSAGES/musicbot_logs.mo index 27779ae2f4d78ff61dfa2ccbfa164c0198cd7542..39e51cd71edada29ebe172712d9674ad810957c5 100644 GIT binary patch delta 13857 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 delta 13533 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 j)M)2c+H %(max)s)" msgstr "La duración de la canción excede el límite (%(length)s > %(max)s)" -#: musicbot/bot.py:4295 +#: musicbot/bot.py:4298 #, python-format msgid "Added song(s) at position %s" msgstr "Canción(es) añadidas en la posición %s" -#: musicbot/bot.py:4332 +#: musicbot/bot.py:4335 #, python-format msgid "Cannot estimate time until playing for position: %d" msgstr "No se puede estimar el tiempo hasta jugar para la posición: %d" -#: musicbot/bot.py:4393 +#: musicbot/bot.py:4396 #, python-format msgid "Failed to get info from the stream request: %s" msgstr "No se pudo obtener información de la solicitud de stream: %s" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Las listas de reproducción de streaming aún no están soportadas." -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Has alcanzado el límite de elementos de tu lista de reproducción (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Por favor especifique una consulta de búsqueda. Use `help search` para más información." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "No puedes buscar más de %(max)s vídeos" -#: musicbot/bot.py:4834 +#: musicbot/bot.py:4837 #, python-format msgid "Waiting for summon lock: %s" msgstr "Esperando por invocar bloqueo: %s" -#: musicbot/bot.py:4837 +#: musicbot/bot.py:4840 #, python-format msgid "Summon lock acquired for: %s" msgstr "Invocar bloqueo adquirido por: %s" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "No estás conectado a la voz. ¡Prueba a unirte a un canal de voz!" -#: musicbot/bot.py:4866 +#: musicbot/bot.py:4869 #, python-format msgid "Joining %(guild)s/%(channel)s" msgstr "Uniéndose a %(guild)s/%(channel)s" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot no puede seguir a un usuario que no es miembro del servidor." -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "El jugador no está reproduciendo." -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "¡Nada en la cola para eliminar!" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "No se ha encontrado nada en la cola del usuario `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "No tienes permiso para eliminar esa entrada de la cola. Debes ser tú quien la puso en cola o tener permisos de omisión instantánea." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Número de entrada no válido. Utilice el comando de cola para encontrar las posiciones de la cola." -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "¡No se puede saltar! ¡El jugador no está jugando!" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "No tienes permiso para forzar a saltar una canción en bucle." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "No tienes permiso para forzar saltar." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "No tienes permiso para saltar una canción en bucle." -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` no es un número válido" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Se proporcionó un cambio de volumen poco razonable: %(old_volume)s%(adjustment)s es %(new_volume)s.\n" "El volumen solo puede establecerse de 1 a 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Volumen no razonable proporcionado: %(volume)s. Proporciona un valor entre 1 y 100." -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "No se está reproduciendo ninguna pista, no se puede establecer la velocidad.\n" "Utilice el comando de configuración para establecer una velocidad de reproducción predeterminada." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "La velocidad no se puede aplicar a los medios streamed." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Debe proporcionar una velocidad para establecer." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "La velocidad que proporcionaste no es válida. Usa un número entre 0.5 y 100." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Opción no válida para el comando: `%(option)s`" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "No se pudo guardar el alias debido al error:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Debe proporcionar un alias y un comando para alias" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Debe proporcionar un nombre de alias para eliminar." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "El alias `%(alias)s` no existe." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "La configuración no puede usar las menciones de canal y usuario al mismo tiempo." -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "No se puede recargar la configuración debido al siguiente error:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "No se pudo resolver el nombre de la sección del nombre de la opción. Por favor, introduzca un nombre de sección y opción válidos." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "La opción dada es ambigua, por favor ingrese un nombre de sección." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Debe proporcionar un nombre de sección y un nombre de opción para este comando." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "La sección `%(section)s` no está disponible.\n" "Las secciones disponibles son: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "La opción `%(option)s` no está disponible." -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "La opción `%(option)s` no es editable. No se puede guardar en el disco." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Error al guardar la opción: `%(option)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "La opción `%(option)s` no es editable, el valor no se puede mostrar." -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "La opción `%(option)s` no es editable. No se puede actualizar la configuración." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Debe proporcionar una sección, opción y valor para este sub-comando." -#: musicbot/bot.py:5810 +#: musicbot/bot.py:5813 #, python-format msgid "Doing set with on %(config)s == %(value)s" msgstr "Al establecer con %(config)s == %(value)s" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "¡La opción `%(option)s` no fue actualizada!" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "La opción `%(option)s` no es editable. No se puede restablecer por defecto." -#: musicbot/bot.py:5845 +#: musicbot/bot.py:5848 #, python-format msgid "Resetting %(config)s to default %(value)s" msgstr "Restableciendo %(config)s a %(value)s por defecto" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "¡La opción `%(option)s` no se ha restablecido por defecto!" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "El comando de opción está obsoleto, utilice el comando de configuración en su lugar." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Opción especificada no válida, use: info, actualización o borrado" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Fallo** al eliminar caché, comprueba los registros para más información..." -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "El argumento de página de cola debe ser un número entero." -#: musicbot/bot.py:6004 +#: musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "No hay canciones en cola! Coloca algo con un comando de reproducción." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "El número de página solicitado está fuera de límites.\n" "Hay **%(total)s** páginas." -#: musicbot/bot.py:6056 +#: musicbot/bot.py:6057 msgid "Skipped the current playlist entry." msgstr "Se omitió la entrada de la lista de reproducción actual." -#: musicbot/bot.py:6099 +#: musicbot/bot.py:6100 msgid "Not enough entries to paginate the queue." msgstr "No hay suficientes entradas para paginar la cola." -#: musicbot/bot.py:6103 +#: musicbot/bot.py:6104 msgid "Could not post queue message, no message to add reactions to." msgstr "No se pudo publicar el mensaje de cola, no hay mensajes a los que añadir reacciones." -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Inténtelo de nuevo. MusicBot no pudo hacer ni obtener una referencia al mensaje de la cola.\n" "Si el problema persiste, envíe un informe de error." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "No se puede utilizar la purga en el canal DM privado." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "La URL dada no era una URL válida." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "No se pudo extraer información de la url\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "Esto no parece ser una lista de reproducción." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "ID de usuario o nombre de servidor no válido, por favor compruebe el ID e inténtelo de nuevo." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "No se pudo determinar el usuario de discord. Inténtalo de nuevo." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Los permisos no pueden usar menciones de canal y usuario al mismo tiempo." -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "No se pueden recargar los permisos debido a un error:\n" "%(raw_error)s" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Debe proporcionar un nombre de grupo o opción para este comando." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Debe proporcionar un grupo, opción y valor para este comando." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "El subcomando %(option)s requiere un grupo y un nombre de permiso." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "El grupo `%(group)s` no está disponible.\n" "Los grupos disponibles son: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "El permiso `%(option)s` no está disponible." -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "No se puede agregar el grupo `%(group)s` que ya existe." -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "No se puede eliminar el grupo integrado." -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "El grupo propietario no es editable." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Error al guardar el grupo: `%(group)s`" -#: musicbot/bot.py:6736 +#: musicbot/bot.py:6737 #, python-format msgid "Doing set on %(option)s with value: %(value)s" msgstr "Al establecer %(option)s con valor: %(value)s" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "¡El permiso `%(option)s` no fue actualizado!" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Error al cambiar el nombre de usuario. ¿Has cambiado nombres demasiadas veces?\n" "Recuerda que los cambios de nombre están limitados a dos veces por hora.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Error al cambiar el nombre de usuario debido al error: \n" "%(raw_error)s" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "No se puede cambiar el apodo: no hay permiso." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "No se pudo establecer el nick debido a un error: \n" "%(raw_error)s" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Los emoji personalizados deben ser de este servidor para usar como prefijo." -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "¡El prefijo por servidor no está habilitado!\n" "Utilice el comando de configuración para actualizar el prefijo en su lugar." -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Este comando sólo puede ser usado en gremios." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Sub-comando inválido. Utilice el comando de ayuda para más información." + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "No se puede establecer el idioma a `%(locale)s` no está disponible." + +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "Debe proporcionar una URL o adjuntar un archivo." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "No se puede cambiar el avatar debido a un error: \n" "%(raw_error)s" -#: musicbot/bot.py:6940 +#: musicbot/bot.py:7014 #, python-format msgid "MusicBot found a %s with no guild! This could be a problem." msgstr "MusicBot encontró un %s sin gremio! Esto podría ser un problema." -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Actualmente no conectado al servidor `%(guild)s`" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Opción inválida dada, utilice una de: suave, completa, actualizada, actualizada o actualizada" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Debe proporcionar un ID o nombre." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "No se ha encontrado ningún gremio con el ID o nombre `%(input)s`" -#: musicbot/bot.py:7172 +#: musicbot/bot.py:7246 #, python-format msgid "Activating debug breakpoint ID: %(uuid)s" msgstr "Activando ID del breakpoint de depuración: %(uuid)s" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "No se pudo importar `objgraph`, ¿está instalado?" -#: musicbot/bot.py:7287 +#: musicbot/bot.py:7361 msgid "Debug code ran with eval()." msgstr "Código de depuración ejecutado con eval()." -#: musicbot/bot.py:7297 +#: musicbot/bot.py:7371 msgid "Debug code ran with exec()." msgstr "Código de depuración ejecutado con exec()." -#: musicbot/bot.py:7300 +#: musicbot/bot.py:7374 msgid "Debug code failed to execute." msgstr "Error al ejecutar el código de depuración." -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1908,275 +1926,275 @@ msgstr "Error al ejecutar el código de depuración:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "El subcomando debe ser uno de: %(options)s" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "No se pudo encontrar el ejecutable de git." -#: musicbot/bot.py:7483 +#: musicbot/bot.py:7559 msgid "Failed while checking for updates via git command." msgstr "Error al buscar actualizaciones mediante el comando git." -#: musicbot/bot.py:7512 +#: musicbot/bot.py:7588 msgid "Package missing meta in pip report." msgstr "Paquete que falta meta en el informe pip." -#: musicbot/bot.py:7526 +#: musicbot/bot.py:7602 msgid "Failed to get pip update status due to some error." msgstr "Error al obtener el estado de actualización de pip debido a algún error." -#: musicbot/bot.py:7586 +#: musicbot/bot.py:7662 msgid "Got a strange voice client entry." msgstr "Obtuvo una entrada extraña del cliente de voz." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Las cookies ya están habilitadas." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Las cookies deben ser subidas para estar habilitadas. (Falta archivo de cookies)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "No se pudo habilitar las cookies debido a un error: %(raw_error)s" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "No se pudo renombrar el archivo de cookies debido a un error: %(raw_error)s\n" "Cookies temporalmente deshabilitadas y serán reactivadas en el siguiente reinicio." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "No se encontraron subidas adjuntas, inténtelo de nuevo mientras se subía un archivo de cookies." -#: musicbot/bot.py:7740 +#: musicbot/bot.py:7816 #, python-format msgid "Could not remove old, disabled cookies file: %(raw_error)s" msgstr "No se pudo eliminar el archivo antiguo de cookies deshabilitado: %(raw_error)s" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Error al descargar el archivo de cookies desde discord: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "No se han podido guardar las cookies en el disco: %(raw_error)s" -#: musicbot/bot.py:7772 +#: musicbot/bot.py:7848 #, python-format msgid "Got a message with no channel, somehow: %s" msgstr "Obtuviste un mensaje sin canal, de alguna manera: %s" -#: musicbot/bot.py:7800 +#: musicbot/bot.py:7876 #, python-format msgid "Ignoring command from myself (%s)" msgstr "Ignorando el comando de mí mismo (%s)" -#: musicbot/bot.py:7808 +#: musicbot/bot.py:7884 #, python-format msgid "Ignoring command from other bot (%s)" msgstr "Ignorando comando de otro bot (%s)" -#: musicbot/bot.py:7816 +#: musicbot/bot.py:7892 #, python-format msgid "Ignoring command from channel of type: %s" msgstr "Ignorando comando del canal de tipo: %s" -#: musicbot/bot.py:7900 +#: musicbot/bot.py:7976 #, python-format msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" msgstr "Usuario en la lista de bloques: %(id)s/%(name)s intentó el comando: %(command)s" -#: musicbot/bot.py:7907 +#: musicbot/bot.py:7983 #, python-format msgid "Message from %(id)s/%(name)s: %(message)s" msgstr "Mensaje de %(id)s/%(name)s: %(message)s" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Este comando no está permitido para el grupo de permisos: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Este comando requiere que estés en un canal de Voice." -#: musicbot/bot.py:8060 +#: musicbot/bot.py:8136 #, python-format msgid "Invalid command usage, missing values for params: %(params)r" msgstr "Uso de comandos no válido, faltan valores para los parámetros: %(params)r" -#: musicbot/bot.py:8102 +#: musicbot/bot.py:8178 #, python-format msgid "Error in %(command)s: %(err_name)s: %(err_text)s" msgstr "Error en %(command)s: %(err_name)s: %(err_text)s" -#: musicbot/bot.py:8126 +#: musicbot/bot.py:8202 #, python-format msgid "Exception while handling command: %(command)s" msgstr "Excepción al manejar el comando: %(command)s" -#: musicbot/bot.py:8158 +#: musicbot/bot.py:8234 #, python-format msgid "Cannot generate help for missing command: %s" msgstr "No se puede generar ayuda para el comando que falta: %s" -#: musicbot/bot.py:8162 +#: musicbot/bot.py:8238 #, python-format msgid "Missing help data for command: %s" msgstr "Faltan datos de ayuda para el comando: %s" -#: musicbot/bot.py:8279 +#: musicbot/bot.py:8355 #, python-format msgid "Leaving voice channel %s in %s due to inactivity." msgstr "Dejando el canal de voz %s en %s por inactividad." -#: musicbot/bot.py:8288 +#: musicbot/bot.py:8364 msgid "MusicBot has become connected." msgstr "MusicBot se ha conectado." -#: musicbot/bot.py:8292 +#: musicbot/bot.py:8368 msgid "MusicBot has become disconnected." msgstr "MusicBot se ha desconectado." -#: musicbot/bot.py:8297 +#: musicbot/bot.py:8373 #, python-format msgid "Got a Socket Event: %s" msgstr "Obtuvo un Evento de Socket: %s" -#: musicbot/bot.py:8313 +#: musicbot/bot.py:8389 msgid "VoiceState updated before on_ready finished" msgstr "Estado de voz actualizado antes de finalizado el on_ready" -#: musicbot/bot.py:8326 +#: musicbot/bot.py:8402 #, python-format msgid "Ignoring %s in %s as it is a bound voice channel." msgstr "Ignorando %s en %s ya que es un canal de voz vinculado." -#: musicbot/bot.py:8335 +#: musicbot/bot.py:8411 #, python-format msgid "%s has been detected as empty. Handling timeouts." msgstr "%s ha sido detectado como vacío. Manejo de tiempos de espera." -#: musicbot/bot.py:8346 +#: musicbot/bot.py:8422 #, python-format msgid "A user joined %s, cancelling timer." msgstr "Un usuario se unió a %s, cancelando temporizador." -#: musicbot/bot.py:8359 +#: musicbot/bot.py:8435 #, python-format msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." msgstr "El bot se movió y el canal de voz %s está vacío. El manejo de los tiempos de espera de espera." -#: musicbot/bot.py:8368 +#: musicbot/bot.py:8444 #, python-format msgid "The bot got moved and the voice channel %s is not empty." msgstr "El bot se movió y el canal de voz %s no está vacío." -#: musicbot/bot.py:8402 +#: musicbot/bot.py:8493 #, python-format msgid "No longer following user %s" msgstr "Ya no sigue al usuario %s" -#: musicbot/bot.py:8424 +#: musicbot/bot.py:8515 #, python-format msgid "Following user `%(user)s` to channel: %(channel)s" msgstr "El siguiente usuario `%(user)s` para el canal: %(channel)s" -#: musicbot/bot.py:8444 +#: musicbot/bot.py:8535 msgid "VoiceState disconnect before.channel is None." msgstr "VoiceState se desconecta antes.channel Ninguno." -#: musicbot/bot.py:8471 +#: musicbot/bot.py:8562 #, python-format msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" msgstr "Desconectado de la voz por Discord API en: %(guild)s/%(channel)s (Código: %(code)s) [S:%(state)s]" -#: musicbot/bot.py:8493 +#: musicbot/bot.py:8584 #, python-format msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" msgstr "No se puede usar el canal auto-join con el tipo: %(type)s en guild: %(guild)s" -#: musicbot/bot.py:8500 +#: musicbot/bot.py:8591 #, python-format msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" msgstr "No se puede encontrar el canal auto-unido, ¿fue eliminado? Guild: %s" -#: musicbot/bot.py:8506 +#: musicbot/bot.py:8597 #, python-format msgid "Reconnecting to auto-joined guild on channel: %s" msgstr "Reconectando al gremio auto-unido en el canal: %s" -#: musicbot/bot.py:8519 +#: musicbot/bot.py:8610 #, python-format msgid "Cannot auto join channel: %s" msgstr "No se puede auto unirse al canal: %s" -#: musicbot/bot.py:8535 +#: musicbot/bot.py:8626 #, python-format msgid "Bot has been added to guild: %s" msgstr "El bot ha sido añadido al gremio: %s" -#: musicbot/bot.py:8547 +#: musicbot/bot.py:8638 #, python-format msgid "Left guild '%s' due to bot owner not found." msgstr "El gremio izquierdo '%s' debido al propietario del bot no encontrado." -#: musicbot/bot.py:8561 +#: musicbot/bot.py:8652 #, python-format msgid "Creating data folder for guild %s" msgstr "Creando carpeta de datos para guild %s" -#: musicbot/bot.py:8569 +#: musicbot/bot.py:8660 #, python-format msgid "Bot has been removed from guild: %s" msgstr "El bot ha sido eliminado del gremio: %s" -#: musicbot/bot.py:8570 +#: musicbot/bot.py:8661 msgid "Updated guild list:" msgstr "Lista de guild actualizada:" -#: musicbot/bot.py:8585 +#: musicbot/bot.py:8676 #, python-format msgid "Guild \"%s\" has become available." msgstr "El gremio \"%s\" está disponible." -#: musicbot/bot.py:8591 +#: musicbot/bot.py:8682 #, python-format msgid "Resuming player in \"%s\" due to availability." msgstr "Reanudando jugador en \"%s\" debido a la disponibilidad." -#: musicbot/bot.py:8608 +#: musicbot/bot.py:8699 #, python-format msgid "Guild \"%s\" has become unavailable." msgstr "El gremio \"%s\" no está disponible." -#: musicbot/bot.py:8614 +#: musicbot/bot.py:8705 #, python-format msgid "Pausing player in \"%s\" due to unavailability." msgstr "Pausando jugador en \"%s\" debido a la falta de disponibilidad." -#: musicbot/bot.py:8630 +#: musicbot/bot.py:8721 #, python-format msgid "Guild update for: %s" msgstr "Actualización del gremio para: %s" -#: musicbot/bot.py:8636 +#: musicbot/bot.py:8727 #, python-format msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" msgstr "Atributo del gremio %(attr)s ahora: %(new)s -- Era: %(old)s" -#: musicbot/bot.py:8668 +#: musicbot/bot.py:8759 #, python-format msgid "Channel update for: %(channel)s -- %(changes)s" msgstr "Actualización del canal para: %(channel)s -- %(changes)s" @@ -2191,7 +2209,7 @@ msgstr "Creando %s" msgid "Loading config from: %s" msgstr "Cargando configuración de: %s" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2214,16 +2232,16 @@ msgstr "Error al leer la configuración.\n\n" " Cada sección debe tener al menos una opción.\n" " Use las opciones de ejemplo como plantilla o cópielas del repositorio." -#: musicbot/config.py:1113 +#: musicbot/config.py:1112 #, python-format msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." msgstr "No se puede almacenar más de %s archivos de registro. La opción LogsMaxKept será limitada en su lugar." -#: musicbot/config.py:1121 +#: musicbot/config.py:1120 msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." msgstr "La opción de configuración LogsDateFormat está vacía y esto romperá la rotación de archivos de registro. Usando el valor predeterminado." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2235,11 +2253,11 @@ msgstr "Error al validar las opciones de configuración.\n\n" "Solución:\n" " Asegúrese de que la ruta que ha configurado es una ruta a una carpeta / directorio." -#: musicbot/config.py:1149 +#: musicbot/config.py:1148 msgid "An exception was thrown while validating AudioCachePath." msgstr "Se lanzó una excepción al validar AudioCachePath." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2254,12 +2272,12 @@ msgstr "Error al validar las opciones de configuración.\n\n" "Solución:\n" " Verifique nuevamente que la configuración sea una ruta de directorio válida y accesible." -#: musicbot/config.py:1165 +#: musicbot/config.py:1164 #, python-format msgid "Audio Cache will be stored in: %s" msgstr "La caché de audio se almacenará en: %s" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2272,16 +2290,16 @@ msgstr "Error al leer las opciones de configuración.\n\n" "Solución:\n" " Establecer la opción de configuración del token o establecer la variable de entorno %(env_var)s con un token de aplicación." -#: musicbot/config.py:1197 +#: musicbot/config.py:1196 msgid "StatusMessage config option is too long, it will be limited to 128 characters." msgstr "La opción de configuración de StatusMessage es demasiado larga, se limitará a 128 caracteres." -#: musicbot/config.py:1206 +#: musicbot/config.py:1205 #, python-format msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." msgstr "La velocidad de reproducción predeterminada debe estar entre 0.5 y 100.0. El valor de opción de %.3f será limitado en su lugar." -#: musicbot/config.py:1216 +#: musicbot/config.py:1215 msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "Cookies are not recommended, may not be supported, and may totally break.\n" "Copying cookies from your web-browser risks exposing personal data and \n" @@ -2292,15 +2310,15 @@ msgstr "Se detectó un archivo TXT con cookies. MusicBot se los pasará a yt-dlp "Copiar cookies de su navegador web corre el riesgo de exponer datos personales y, en el mejor de los casos, puede provocar que se bloqueen sus cuentas.\n\n" "¡Ha sido advertido! ¡Buena suerte! \\U0001F596\n" -#: musicbot/config.py:1234 +#: musicbot/config.py:1233 msgid "Validating options with service data..." msgstr "Validando opciones con datos de servicio..." -#: musicbot/config.py:1240 +#: musicbot/config.py:1239 msgid "Acquired owner ID via API" msgstr "ID del propietario adquirido a través de API" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2314,11 +2332,11 @@ msgstr "Error al obtener 'OwnerID' automáticamente.\n\n" "Solución:\n" " Establezca manualmente la opción de configuración 'OwnerID' o vuelva a intentarlo más tarde." -#: musicbot/config.py:1256 +#: musicbot/config.py:1255 msgid "MusicBot does not have a user instance, cannot proceed." msgstr "MusicBot no tiene una instancia de usuario, no puede continuar." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2330,30 +2348,30 @@ msgstr "Error al validar las opciones de configuración.\n\n" "Solución:\n" " No utilice el Bot o el ID de la aplicación en el campo OwnerID." -#: musicbot/config.py:1286 +#: musicbot/config.py:1285 msgid "Config options file not found. Checking for alternatives..." msgstr "Archivo de opciones de configuración no encontrado. Comprobando alternativas..." -#: musicbot/config.py:1298 +#: musicbot/config.py:1297 #, python-format msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." msgstr "Renombrando %(ini_file)s a %(option_file)s, probablemente deberías activar las extensiones de archivos." -#: musicbot/config.py:1306 +#: musicbot/config.py:1305 #, python-format msgid "Copying existing example options file: %(example_file)s" msgstr "Copiando archivo de opciones de ejemplo existente: %(example_file)s" -#: musicbot/config.py:1315 +#: musicbot/config.py:1314 #, python-format msgid "Generated a new %(example_file)s and copied it to %(option_file)s" msgstr "Generó un nuevo %(example_file)s y lo copió a %(option_file)s" -#: musicbot/config.py:1323 +#: musicbot/config.py:1322 msgid "Something went wrong while trying to find a config option file." msgstr "Algo salió mal mientras se trataba de encontrar un archivo de opciones de configuración." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2368,7 +2386,7 @@ msgstr "Error al localizar la configuración.\n\n" "Solución:\n" " Verifique que la carpeta y los archivos de configuración existan y que MusicBot pueda leerlos." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2385,43 +2403,43 @@ msgstr "Error al cargar la configuración.\n\n" " Asegúrese de que el archivo sea accesible y no tenga errores.\n" " Copie el archivo de ejemplo del repositorio si todo lo demás falla." -#: musicbot/config.py:1369 +#: musicbot/config.py:1368 msgid "Dev Bug! Config option has getter that is not available." msgstr "Dev Bug! La opción de configuración tiene getter que no está disponible." -#: musicbot/config.py:1374 +#: musicbot/config.py:1373 msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." msgstr "Dev Bug! La opción de configuración tiene un tipo inválido, getter y default deben ser del mismo tipo." -#: musicbot/config.py:1394 +#: musicbot/config.py:1393 msgid "Option was missing previously." msgstr "La opción faltaba anteriormente." -#: musicbot/config.py:1409 +#: musicbot/config.py:1408 #, python-format msgid "Config section not in parsed config! Missing: %s" msgstr "¡La sección de configuración no está en la configuración analizada! Falta: %s" -#: musicbot/config.py:1414 +#: musicbot/config.py:1413 #, python-format msgid "Saved config option: %(config)s = %(value)s" msgstr "Opción de configuración guardada: %(config)s = %(value)s" -#: musicbot/config.py:1427 +#: musicbot/config.py:1426 #, python-format msgid "Failed to save config: %s" msgstr "Error al guardar la configuración: %s" -#: musicbot/config.py:1932 +#: musicbot/config.py:1931 msgid "Option names are not unique between INI sections! Resolver is disabled." msgstr "¡Los nombres de opciones no son únicos entre las secciones INI! Resolver está desactivado." -#: musicbot/config.py:2094 musicbot/permissions.py:859 +#: musicbot/config.py:2099 musicbot/permissions.py:859 #, python-format msgid "Failed to save default INI file at: %s" msgstr "Error al guardar el archivo INI por defecto en: %s" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2434,7 +2452,7 @@ msgstr "Error cargando valor de configuración.\n\n" ":\n" " Establece %(option)s a un ID numérico o establézcalo a `auto` o `0` para vincular al propietario automático." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2447,7 +2465,7 @@ msgstr "Error cargando valor de configuración.\n\n" "Solución:\n" " Comprueba la configuración de ruta y asegúrate de que el archivo existe y es accesible a MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2460,60 +2478,60 @@ msgstr "Error cargando valor de configuración.\n\n" "Solución:\n" " Asegúrese de que todos los IDs sean numéricos y separados solo por espacios o comas." -#: musicbot/config.py:2283 +#: musicbot/config.py:2288 #, python-format msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" msgstr "Opción de depuración no válida \"%(value)s\", volviendo al nivel: %(fallback)s" -#: musicbot/config.py:2304 +#: musicbot/config.py:2309 #, python-format msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." msgstr "Opción [%(section)s] > %(option)s tiene un valor de configuración no válido '%(value)s' usando por defecto en su lugar." -#: musicbot/config.py:2353 +#: musicbot/config.py:2358 #, python-format msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." msgstr "La opción [%(section)s] > %(option)s tiene un valor mayor que 100 %% (%(value)s) y se establecerá en %(fallback)s en su lugar." -#: musicbot/config.py:2437 +#: musicbot/config.py:2442 #, python-format msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" msgstr "Renombrando entrada de archivo INI [%(old_s)s] > %(old_o)s a [%(new_s)s] > %(new_o)s" -#: musicbot/config.py:2493 +#: musicbot/config.py:2498 msgid "Upgrading config file with renamed options..." msgstr "Actualizando archivo de configuración con opciones renombradas..." -#: musicbot/config.py:2510 +#: musicbot/config.py:2515 msgid "Failed to upgrade config. You'll need to upgrade it manually." msgstr "Error al actualizar la configuración. Necesitarás actualizarla manualmente." -#: musicbot/config.py:2551 +#: musicbot/config.py:2556 #, python-format msgid "Block list file not found: %s" msgstr "Archivo de lista de bloques no encontrado: %s" -#: musicbot/config.py:2572 +#: musicbot/config.py:2577 #, python-format msgid "Could not load block list from file: %s" msgstr "No se pudo cargar la lista de bloqueo del archivo: %s" -#: musicbot/config.py:2610 musicbot/config.py:2643 +#: musicbot/config.py:2615 musicbot/config.py:2648 #, python-format msgid "Could not update the block list file: %s" msgstr "No se pudo actualizar el archivo de lista de bloqueos: %s" -#: musicbot/config.py:2670 +#: musicbot/config.py:2675 #, python-format msgid "Loaded User Block list with %s entries." msgstr "Lista de bloques de usuarios cargada con entradas %s." -#: musicbot/config.py:2681 +#: musicbot/config.py:2686 #, python-format msgid "We found a legacy blacklist file, it will be renamed to: %s" msgstr "Encontramos un archivo antiguo de lista negra, se renombrará a: %s" -#: musicbot/config.py:2727 +#: musicbot/config.py:2732 #, python-format msgid "Loaded a Song Block list with %s entries." msgstr "Se cargó una lista de bloques de canciones con entradas %s." @@ -2537,20 +2555,20 @@ msgstr "Cargando datos de guild para guild con ID: %(id)s/%(name)s" msgid "An OS error prevented reading guild data file: %s" msgstr "Se ha producido un error en el sistema operativo al leer el archivo de datos del gremio: %s" -#: musicbot/constructs.py:255 +#: musicbot/constructs.py:257 #, python-format msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" msgstr "Guild %(id)s/%(name)s tiene un prefijo de comando personalizado: %(prefix)s" -#: musicbot/constructs.py:275 +#: musicbot/constructs.py:277 msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" msgstr "No se pueden guardar los datos de la guild con ID 0. ¡Esto es probablemente un error en el código!" -#: musicbot/constructs.py:298 +#: musicbot/constructs.py:301 msgid "Could not save guild specific data due to OS Error." msgstr "No se pudo guardar datos específicos del gremio debido al error del sistema operativo." -#: musicbot/constructs.py:301 +#: musicbot/constructs.py:304 msgid "Failed to serialize guild specific data due to invalid data." msgstr "Error al serializar datos específicos del gremio debido a datos no válidos." @@ -3023,10 +3041,10 @@ msgstr "Error de argumento de longitud: %s" msgid "Failed to load log translations for any of: [%s] in: %s" msgstr "Error al cargar las traducciones del registro para cualquiera de: [%s] en: %s" -#: musicbot/i18n.py:333 +#: musicbot/i18n.py:340 #, python-format -msgid "Failed to load discord translations for any of: [%s] in: %s" -msgstr "Error al cargar traducciones de discord para cualquiera de: [%s] en: %s" +msgid "Failed to load discord translations for any of: [%s] guild: %s in: %s" +msgstr "Error al cargar traducciones de discord para cualquiera de: [%s] guild: %s en: %s" #: musicbot/json.py:14 #, python-format diff --git a/i18n/es_ES/LC_MESSAGES/musicbot_messages.mo b/i18n/es_ES/LC_MESSAGES/musicbot_messages.mo index bbff9aa6b8d4afe26641ce4d731d3e1cc930df48..dbb28cab8f57ca6a509a06a0c49e1b57e9d3b55e 100644 GIT binary patch delta 10623 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 D?~0ym delta 9445 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 %(max)s)" msgstr "La duración de la canción excede el límite (%(length)s > %(max)s)" -#: musicbot/bot.py:4289 +#: musicbot/bot.py:4292 #, python-format msgid "Enqueued `%(track)s` to be played.\n" "Position in queue: %(position)s" msgstr "En cola `%(track)s` para ser reproducido.\n" "Posición en cola: %(position)s" -#: musicbot/bot.py:4297 musicbot/bot.py:4312 +#: musicbot/bot.py:4300 musicbot/bot.py:4315 msgid "Playing next!" msgstr "¡Reproduciendo a continuación!" -#: musicbot/bot.py:4320 +#: musicbot/bot.py:4323 #, python-format msgid "%(position)s - estimated time until playing: `%(eta)s`" msgstr "%(position)s - tiempo estimado hasta jugar: `%(eta)s`" -#: musicbot/bot.py:4328 +#: musicbot/bot.py:4331 #, python-format msgid "%(position)s - cannot estimate time until playing." msgstr "%(position)s - no se puede calcular el tiempo hasta jugar." -#: musicbot/bot.py:4346 +#: musicbot/bot.py:4349 msgid "Add a media URL to the queue as a Stream.\n" "The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" "You can also use non-streamed media to play it without downloading it.\n" @@ -711,26 +711,26 @@ msgstr "Agrega una URL de contenido multimedia a la cola como una transmisión.\ "También puedes usar contenido multimedia que no haya sido transmitido en streaming para reproducirlo sin descargarlo.\n" "Nota: FFmpeg puede interrumpir la transmisión aleatoriamente o si ocurren problemas de conexión.\n" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Las listas de reproducción de streaming aún no están soportadas." -#: musicbot/bot.py:4419 +#: musicbot/bot.py:4422 #, python-format msgid "Now streaming track `%(track)s`" msgstr "Ahora la pista de streaming `%(track)s`" -#: musicbot/bot.py:4428 +#: musicbot/bot.py:4431 msgid " Search with service for a number of results with the search query.\n" msgstr " Buscar con servicio varios resultados con la consulta de búsqueda.\n" -#: musicbot/bot.py:4432 +#: musicbot/bot.py:4435 msgid " Search YouTube for query but get a custom number of results.\n" " Note: the double-quotes are required in this case.\n" msgstr " Buscar consulta en YouTube pero obtener un número personalizado de resultados.\n" " Nota: las comillas dobles son requeridas en este caso.\n" -#: musicbot/bot.py:4438 +#: musicbot/bot.py:4441 msgid "Search a supported service and select from results to add to queue.\n" "Service and number arguments can be omitted, default number is 3 results.\n" "Select from these services:\n" @@ -744,191 +744,191 @@ msgstr "Busca un servicio soportado y selecciona de los resultados para añadir "- sc, soundcloud\n" "- yh, yahoo\n" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Has alcanzado el límite de elementos de tu lista de reproducción (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Por favor especifique una consulta de búsqueda. Use `help search` para más información." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "No puedes buscar más de %(max)s vídeos" -#: musicbot/bot.py:4532 +#: musicbot/bot.py:4535 msgid "Searching for videos..." msgstr "Buscando videos..." -#: musicbot/bot.py:4554 +#: musicbot/bot.py:4557 #, python-format msgid "Search failed due to an error: %(error)s" msgstr "La búsqueda falló debido a un error: %(error)s" -#: musicbot/bot.py:4566 +#: musicbot/bot.py:4569 msgid "No videos found." msgstr "No se encontraron vídeos." -#: musicbot/bot.py:4575 +#: musicbot/bot.py:4578 msgid "To select a song, type the corresponding number." msgstr "Para seleccionar una canción, escriba el número correspondiente." -#: musicbot/bot.py:4576 +#: musicbot/bot.py:4579 #, python-format msgid "Search results from %(service)s:" msgstr "Resultados de la búsqueda de %(service)s:" -#: musicbot/bot.py:4585 +#: musicbot/bot.py:4588 #, python-format msgid "**%(index)s**. **%(track)s** | %(length)s" msgstr "**%(index)s**. **%(track)s** | %(length)s" -#: musicbot/bot.py:4594 +#: musicbot/bot.py:4597 msgid "\n" "**0**. Cancel" msgstr "\n" "**0**. Cancela" -#: musicbot/bot.py:4598 +#: musicbot/bot.py:4601 msgid "Pick a song" msgstr "Elige una canción" -#: musicbot/bot.py:4649 +#: musicbot/bot.py:4652 #, python-format msgid "Added song [%(track)s](%(url)s) to the queue." msgstr "Canción añadida [%(track)s](%(url)s) a la cola." -#: musicbot/bot.py:4663 +#: musicbot/bot.py:4666 #, python-format msgid "Result %(number)s of %(total)s: %(url)s" msgstr "Resultado %(number)s de %(total)s: %(url)s" -#: musicbot/bot.py:4713 +#: musicbot/bot.py:4716 msgid "Alright, coming right up!" msgstr "Muy bien, ¡vaya!" -#: musicbot/bot.py:4725 +#: musicbot/bot.py:4728 msgid "Show information on what is currently playing." msgstr "Mostrar información sobre lo que se está reproduciendo actualmente." -#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +#: musicbot/bot.py:4780 musicbot/bot.py:6028 musicbot/bot.py:6060 msgid "[autoplaylist]" msgstr "[autoplaylist]" -#: musicbot/bot.py:4781 +#: musicbot/bot.py:4784 msgid "Now playing" msgstr "Reproduciendo" -#: musicbot/bot.py:4784 +#: musicbot/bot.py:4787 msgid "Currently streaming:" msgstr "Transmisión actual:" -#: musicbot/bot.py:4786 +#: musicbot/bot.py:4789 msgid "Currently playing:" msgstr "Reproduciendo actualmente:" -#: musicbot/bot.py:4792 +#: musicbot/bot.py:4795 msgid "Added By:" msgstr "Añadido por:" -#: musicbot/bot.py:4793 +#: musicbot/bot.py:4796 #, python-format msgid "`%(user)s`" msgstr "`%(user)s`" -#: musicbot/bot.py:4797 +#: musicbot/bot.py:4800 msgid "Progress:" msgstr "Progreso:" -#: musicbot/bot.py:4815 musicbot/bot.py:6004 +#: musicbot/bot.py:4818 musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "No hay canciones en cola! Coloca algo con un comando de reproducción." -#: musicbot/bot.py:4818 +#: musicbot/bot.py:4821 msgid "Tell MusicBot to join the channel you're in." msgstr "Dile a MusicBot que se una al canal en el que estás." -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "No estás conectado a la voz. ¡Prueba a unirte a un canal de voz!" -#: musicbot/bot.py:4876 +#: musicbot/bot.py:4879 #, python-format msgid "Connected to `%(channel)s`" msgstr "Conectado a `%(channel)s`" -#: musicbot/bot.py:4882 +#: musicbot/bot.py:4885 msgid "Makes MusicBot follow a user when they change channels in a server.\n" msgstr "Hace que MusicBot siga a un usuario cuando cambia de canal en un servidor.\n" -#: musicbot/bot.py:4905 +#: musicbot/bot.py:4908 #, python-format msgid "No longer following user `%(user)s`" msgstr "Ya no sigue al usuario `%(user)s`" -#: musicbot/bot.py:4915 +#: musicbot/bot.py:4918 #, python-format msgid "Now following user `%(user)s` between voice channels." msgstr "Ahora siguiendo al usuario `%(user)s` entre los canales de voz." -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot no puede seguir a un usuario que no es miembro del servidor." -#: musicbot/bot.py:4935 +#: musicbot/bot.py:4938 #, python-format msgid "Will follow user `%(user)s` between voice channels." msgstr "Siguirá al usuario `%(user)s` entre los canales de voz." -#: musicbot/bot.py:4941 +#: musicbot/bot.py:4944 msgid "Pause playback if a track is currently playing." msgstr "Pausar la reproducción si una pista se está reproduciendo." -#: musicbot/bot.py:4952 +#: musicbot/bot.py:4955 #, python-format msgid "Paused music in `%(channel)s`" msgstr "Música en pausa en `%(channel)s`" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "El jugador no está reproduciendo." -#: musicbot/bot.py:4958 +#: musicbot/bot.py:4961 msgid "Resumes playback if the player was previously paused." msgstr "Reinicia la reproducción si el jugador estaba pausado previamente." -#: musicbot/bot.py:4969 +#: musicbot/bot.py:4972 #, python-format msgid "Resumed music in `%(channel)s`" msgstr "Reanudó la música en `%(channel)s`" -#: musicbot/bot.py:4975 +#: musicbot/bot.py:4978 msgid "Resumed music queue" msgstr "Cola de música restablecida" -#: musicbot/bot.py:4977 +#: musicbot/bot.py:4980 msgid "Player is not paused." msgstr "Jugador no está pausado." -#: musicbot/bot.py:4979 +#: musicbot/bot.py:4982 msgid "Shuffle all current tracks in the queue." msgstr "Mezclar todos los rastros actuales en cola." -#: musicbot/bot.py:5014 +#: musicbot/bot.py:5017 msgid "Shuffled all songs in the queue." msgstr "Mezclado todas las canciones en la cola." -#: musicbot/bot.py:5016 +#: musicbot/bot.py:5019 msgid "Removes all songs currently in the queue." msgstr "Elimina todas las canciones actualmente en cola." -#: musicbot/bot.py:5028 +#: musicbot/bot.py:5031 msgid "Cleared all songs from the queue." msgstr "Se borraron todas las canciones de la cola." -#: musicbot/bot.py:5033 +#: musicbot/bot.py:5036 msgid "Remove a song from the queue, optionally at the given queue position.\n" "If the position is omitted, the song at the end of the queue is removed.\n" "Use the queue command to find position number of your track.\n" @@ -938,40 +938,40 @@ msgstr "Quitar una canción de la cola, opcionalmente en la posición de cola in "Utilice el comando queue para encontrar el número de posición de su pista.\n" "Sin embargo, las posiciones de todas las canciones se modifican cuando comienza a reproducirse una nueva canción.\n" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "¡Nada en la cola para eliminar!" -#: musicbot/bot.py:5068 +#: musicbot/bot.py:5071 #, python-format msgid "Removed `%(track)s` added by `%(user)s`" msgstr "Eliminado `%(track)s` añadido por `%(user)s`" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "No se ha encontrado nada en la cola del usuario `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "No tienes permiso para eliminar esa entrada de la cola. Debes ser tú quien la puso en cola o tener permisos de omisión instantánea." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Número de entrada no válido. Utilice el comando de cola para encontrar las posiciones de la cola." -#: musicbot/bot.py:5105 +#: musicbot/bot.py:5108 #, python-format msgid "Removed entry `%(track)s` added by `%(user)s`" msgstr "Entrada eliminada `%(track)s` añadida por `%(user)s`" -#: musicbot/bot.py:5110 +#: musicbot/bot.py:5113 #, python-format msgid "Removed entry `%(track)s`" msgstr "Se ha eliminado la entrada `%(track)s`" -#: musicbot/bot.py:5121 +#: musicbot/bot.py:5124 msgid "Skip or vote to skip the current playing song.\n" "Members with InstaSkip permission may use force parameter to bypass voting.\n" "If LegacySkip option is enabled, the force parameter can be ignored.\n" @@ -979,67 +979,67 @@ msgstr "Saltar o votar para omitir la canción actual.\n" "Los miembros con permiso InstaSkip pueden usar el parámetro de fuerza para omitir el voto.\n" "Si la opción LegacySkip está activada, el parámetro de fuerza puede ser ignorado.\n" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "¡No se puede saltar! ¡El jugador no está jugando!" -#: musicbot/bot.py:5153 +#: musicbot/bot.py:5156 #, python-format msgid "The next song `%(track)s` is downloading, please wait." msgstr "La siguiente canción `%(track)s` está descargando, por favor espere." -#: musicbot/bot.py:5161 +#: musicbot/bot.py:5164 msgid "The next song will be played shortly. Please wait." msgstr "La siguiente canción se reproducirá en breve. Por favor espere." -#: musicbot/bot.py:5166 +#: musicbot/bot.py:5169 msgid "Something odd is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Algo extraño está sucediendo.\n" "Puede que quieras reiniciar el bot si no empieza a funcionar." -#: musicbot/bot.py:5173 +#: musicbot/bot.py:5176 msgid "Something strange is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Algo extraño está sucediendo.\n" "Puede que quieras reiniciar el bot si no empieza a funcionar." -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "No tienes permiso para forzar a saltar una canción en bucle." -#: musicbot/bot.py:5211 +#: musicbot/bot.py:5214 #, python-format msgid "Force skipped `%(track)s`." msgstr "Forzar omitido `%(track)s`." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "No tienes permiso para forzar saltar." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "No tienes permiso para saltar una canción en bucle." -#: musicbot/bot.py:5269 +#: musicbot/bot.py:5272 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "The vote to skip has been passed.%(next_up)s" msgstr "Tu salto para `%(track)s` ha sido reconocido.\n" "El voto para saltar ha sido aprobado.%(next_up)s" -#: musicbot/bot.py:5276 +#: musicbot/bot.py:5279 msgid " Next song coming up!" msgstr " ¡Próxima canción!" -#: musicbot/bot.py:5293 +#: musicbot/bot.py:5296 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "Need **%(votes)s** more vote(s) to skip this song." msgstr "Tu salto para `%(track)s` ha sido reconocido.\n" "Necesitas **%(votes)s** más votos para saltarte esta canción." -#: musicbot/bot.py:5306 +#: musicbot/bot.py:5309 msgid "Set the output volume level of MusicBot from 1 to 100.\n" "Volume parameter allows a leading + or - for relative adjustments.\n" "The volume setting is retained until MusicBot is restarted.\n" @@ -1047,34 +1047,34 @@ msgstr "Establezca el nivel de volumen de salida de MusicBot de 1 a 100.\n" "El parámetro de volumen permite introducir un signo + o - inicial para realizar ajustes relativos.\n" "La configuración de volumen se conserva hasta que se reinicia MusicBot.\n" -#: musicbot/bot.py:5323 +#: musicbot/bot.py:5326 #, python-format msgid "Current volume: `%(volume)s%%`" msgstr "Volumen actual: `%(volume)s%%`" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` no es un número válido" -#: musicbot/bot.py:5351 +#: musicbot/bot.py:5354 #, python-format msgid "Updated volume from **%(old)d** to **%(new)d**" msgstr "Volumen actualizado de **%(old)d** a **%(new)d**" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Se proporcionó un cambio de volumen poco razonable: %(old_volume)s%(adjustment)s es %(new_volume)s.\n" "El volumen solo puede establecerse de 1 a 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Volumen no razonable proporcionado: %(volume)s. Proporciona un valor entre 1 y 100." -#: musicbot/bot.py:5374 +#: musicbot/bot.py:5377 msgid "Change the playback speed of the currently playing track only.\n" "The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" "Streaming playback does not support speed adjustments.\n" @@ -1082,133 +1082,133 @@ msgstr "Cambiar la velocidad de reproducción de la pista de reproducción actua "La tasa debe estar entre 0.5 y 100. debido a límites de ffmpeg.\n" "La reproducción de streaming no soporta ajustes de velocidad.\n" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "No se está reproduciendo ninguna pista, no se puede establecer la velocidad.\n" "Utilice el comando de configuración para establecer una velocidad de reproducción predeterminada." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "La velocidad no se puede aplicar a los medios streamed." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Debe proporcionar una velocidad para establecer." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "La velocidad que proporcionaste no es válida. Usa un número entre 0.5 y 100." -#: musicbot/bot.py:5432 +#: musicbot/bot.py:5435 #, python-format msgid "Setting playback speed to `%(speed).3f` for current track." msgstr "Ajustando velocidad de reproducción a `%(speed).3f` para el rastro actual." -#: musicbot/bot.py:5441 +#: musicbot/bot.py:5444 msgid " Add an new alias with optional arguments.\n" msgstr " Añadir un nuevo alias con argumentos opcionales.\n" -#: musicbot/bot.py:5444 +#: musicbot/bot.py:5447 msgid " Remove an alias with the given name." msgstr " Elimina un alias con el nombre dado." -#: musicbot/bot.py:5447 +#: musicbot/bot.py:5450 msgid " Reload or save aliases from/to the config file." msgstr " Recargar o guardar alias de/al archivo de configuración." -#: musicbot/bot.py:5451 +#: musicbot/bot.py:5454 msgid "Allows management of aliases from discord. To see aliases use the help command." msgstr "Permite la gestión de alias de discord. Para ver alias utilice el comando de ayuda." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Opción no válida para el comando: `%(option)s`" -#: musicbot/bot.py:5477 +#: musicbot/bot.py:5480 msgid "Aliases reloaded from config file." msgstr "Alias recargados desde archivo de configuración." -#: musicbot/bot.py:5482 +#: musicbot/bot.py:5485 msgid "Aliases saved to config file." msgstr "Alias guardados al archivo de configuración." -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "No se pudo guardar el alias debido al error:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Debe proporcionar un alias y un comando para alias" -#: musicbot/bot.py:5498 +#: musicbot/bot.py:5501 #, python-format msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" msgstr "Nuevo alias añadido. `%(alias)s` ahora es un alias de `%(command)s`" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Debe proporcionar un nombre de alias para eliminar." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "El alias `%(alias)s` no existe." -#: musicbot/bot.py:5518 +#: musicbot/bot.py:5521 #, python-format msgid "Alias `%(alias)s` was removed." msgstr "Alias `%(alias)s` fue eliminado." -#: musicbot/bot.py:5528 +#: musicbot/bot.py:5531 msgid " Shows help text about any missing config options.\n" msgstr " Muestra texto de ayuda sobre cualquier opción de configuración faltante.\n" -#: musicbot/bot.py:5531 +#: musicbot/bot.py:5534 msgid " Lists the names of options which have been changed since loading config file.\n" msgstr " Lista los nombres de las opciones que se han cambiado desde la carga del archivo de configuración.\n" -#: musicbot/bot.py:5534 +#: musicbot/bot.py:5537 msgid " List the available config options and their sections.\n" msgstr " Lista de las opciones de configuración disponibles y sus secciones.\n" -#: musicbot/bot.py:5537 +#: musicbot/bot.py:5540 msgid " Reload the options.ini file from disk.\n" msgstr " Recargar el archivo options.ini desde el disco.\n" -#: musicbot/bot.py:5540 +#: musicbot/bot.py:5543 msgid " Shows help text for a specific option.\n" msgstr " Muestra texto de ayuda para una opción específica.\n" -#: musicbot/bot.py:5543 +#: musicbot/bot.py:5546 msgid " Display the current value of the option.\n" msgstr " Mostrar el valor actual de la opción.\n" -#: musicbot/bot.py:5546 +#: musicbot/bot.py:5549 msgid " Saves the current value to the options file.\n" msgstr " Guarda el valor actual en el archivo de opciones.\n" -#: musicbot/bot.py:5549 +#: musicbot/bot.py:5552 msgid " Validates the option and sets the config for the session, but not to file.\n" msgstr " Validar la opción y establecer la configuración de la sesión, pero no el archivo.\n" -#: musicbot/bot.py:5552 +#: musicbot/bot.py:5555 msgid " Reset the option to its default value.\n" msgstr " Restablecer la opción a su valor predeterminado.\n" -#: musicbot/bot.py:5555 +#: musicbot/bot.py:5558 msgid "Manage options.ini configuration from within Discord." msgstr "Administrar la configuración options.ini desde dentro de Discord." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "La configuración no puede usar las menciones de canal y usuario al mismo tiempo." -#: musicbot/bot.py:5596 +#: musicbot/bot.py:5599 #, python-format msgid "**Missing Option:** `%(config)s`\n" "```\n" @@ -1219,22 +1219,22 @@ msgstr "**Opción que falta:** `%(config)s`\n" "%(comment)s\n" "Por defecto se establece a: %(default)s```\n" -#: musicbot/bot.py:5609 +#: musicbot/bot.py:5612 msgid "*All config options are present and accounted for!*" msgstr "*¡Todas las opciones de configuración están presentes y contabilizadas!*" -#: musicbot/bot.py:5625 +#: musicbot/bot.py:5628 msgid "No config options appear to be changed." msgstr "Ninguna opción de configuración parece ser cambiada." -#: musicbot/bot.py:5627 +#: musicbot/bot.py:5630 #, python-format msgid "**Changed Options:**\n" "%(changed)s" msgstr "**Opciones cambiadas:**\n" "%(changed)s" -#: musicbot/bot.py:5647 +#: musicbot/bot.py:5650 #, python-format msgid "## Available Options:\n" "**Editable Options:**\n" @@ -1247,51 +1247,51 @@ msgstr "## Opciones disponibles:\n" "**Solo edición manual:**\n" "%(manual)s" -#: musicbot/bot.py:5669 +#: musicbot/bot.py:5672 msgid "Config options reloaded from file successfully!" msgstr "Opciones de configuración recargadas desde el archivo con éxito!" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "No se puede recargar la configuración debido al siguiente error:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "No se pudo resolver el nombre de la sección del nombre de la opción. Por favor, introduzca un nombre de sección y opción válidos." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "La opción dada es ambigua, por favor ingrese un nombre de sección." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Debe proporcionar un nombre de sección y un nombre de opción para este comando." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "La sección `%(section)s` no está disponible.\n" "Las secciones disponibles son: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "La opción `%(option)s` no está disponible." -#: musicbot/bot.py:5733 +#: musicbot/bot.py:5736 msgid "This option can only be set by editing the config file." msgstr "Esta opción sólo se puede establecer editando el archivo de configuración." -#: musicbot/bot.py:5737 +#: musicbot/bot.py:5740 #, python-format msgid "By default this option is set to: %(default)s" msgstr "Por defecto esta opción se establece como: %(default)s" -#: musicbot/bot.py:5742 +#: musicbot/bot.py:5745 #, python-format msgid "**Option:** `%(config)s`\n" "%(comment)s\n\n" @@ -1300,27 +1300,27 @@ msgstr "**Opción:** `%(config)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "La opción `%(option)s` no es editable. No se puede guardar en el disco." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Error al guardar la opción: `%(option)s`" -#: musicbot/bot.py:5767 +#: musicbot/bot.py:5770 #, python-format msgid "Successfully saved the option: `%(config)s`" msgstr "Opción guardada con éxito: `%(config)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "La opción `%(option)s` no es editable, el valor no se puede mostrar." -#: musicbot/bot.py:5784 +#: musicbot/bot.py:5787 #, python-format msgid "**Option:** `%(config)s`\n" "Current Value: `%(loaded)s`\n" @@ -1329,80 +1329,80 @@ msgstr "**Opción:** `%(config)s`\n" "Valor actual: `%(loaded)s`\n" "Valor del archivo INI: `%(ini)s`" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "La opción `%(option)s` no es editable. No se puede actualizar la configuración." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Debe proporcionar una sección, opción y valor para este sub-comando." -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "¡La opción `%(option)s` no fue actualizada!" -#: musicbot/bot.py:5822 +#: musicbot/bot.py:5825 #, python-format msgid "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "La opción `%(config)s` fue actualizada para esta sesión.\n" "Para guardar el cambio use `config save %(section)s %(option)s`" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "La opción `%(option)s` no es editable. No se puede restablecer por defecto." -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "¡La opción `%(option)s` no se ha restablecido por defecto!" -#: musicbot/bot.py:5857 +#: musicbot/bot.py:5860 #, python-format msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "La opción `%(config)s` fue restablecida a su valor predeterminado `%(default)s`.\n" "Para guardar el cambio use `config save %(section)s %(option)s`" -#: musicbot/bot.py:5872 +#: musicbot/bot.py:5875 msgid "Deprecated command, use the config command instead." msgstr "Comando obsoleto, use el comando config en su lugar." -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "El comando de opción está obsoleto, utilice el comando de configuración en su lugar." -#: musicbot/bot.py:5892 +#: musicbot/bot.py:5895 msgid "Display information about cache storage or clear cache according to configured limits.\n" "Using update option will scan the cache for external changes before displaying details." msgstr "Muestra información sobre el almacenamiento en caché o borra la caché según los límites configurados.\n" "Al utilizar la opción de actualización, se escaneará la caché en busca de cambios externos antes de mostrar los detalles." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Opción especificada no válida, use: info, actualización o borrado" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Disabled" msgstr "Deshabilitado" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Enabled" msgstr "Activado" -#: musicbot/bot.py:5919 +#: musicbot/bot.py:5922 #, python-format msgid "%(time)s days" msgstr "%(time)s días" -#: musicbot/bot.py:5925 musicbot/bot.py:5928 +#: musicbot/bot.py:5928 musicbot/bot.py:5931 msgid "Unlimited" msgstr "Ilimitado" -#: musicbot/bot.py:5933 +#: musicbot/bot.py:5936 #, python-format msgid "**Video Cache:** *%(state)s*\n" "**Storage Limit:** *%(size)s*\n" @@ -1413,40 +1413,40 @@ msgstr "**Video Cache:** *%(state)s*\n" "**Límite de tiempo:** *%(time)s*\n\n" "**Cacheo ahora: %(used)s en archivos %(files)s." -#: musicbot/bot.py:5956 +#: musicbot/bot.py:5959 msgid "Cache has been cleared." msgstr "Se ha borrado la caché." -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Fallo** al eliminar caché, comprueba los registros para más información..." -#: musicbot/bot.py:5965 +#: musicbot/bot.py:5968 msgid "No cache found to clear." msgstr "Caché no encontrado para borrar." -#: musicbot/bot.py:5973 +#: musicbot/bot.py:5976 msgid "Display information about the current player queue.\n" "Optional page number shows later entries in the queue.\n" msgstr "Mostrar información sobre la cola del jugador actual.\n" "Número de página opcional muestra las entradas posteriores en la cola.\n" -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "El argumento de página de cola debe ser un número entero." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "El número de página solicitado está fuera de límites.\n" "Hay **%(total)s** páginas." -#: musicbot/bot.py:6025 +#: musicbot/bot.py:6026 msgid "(unknown duration)" msgstr "(duración desconocida)" -#: musicbot/bot.py:6034 +#: musicbot/bot.py:6035 #, python-format msgid "Currently playing: `%(title)s`\n" "Added by: `%(user)s`\n" @@ -1455,14 +1455,14 @@ msgstr "Actualmente reproduciendo: `%(title)s`\n" "Añadido por: `%(user)s`\n" "Progreso: `[%(progress)s/%(total)s]`\n" -#: musicbot/bot.py:6064 +#: musicbot/bot.py:6065 #, python-format msgid "**Entry #%(index)s:**Title: `%(title)s`\n" "Added by: `%(user)s\n\n" msgstr "**Entrada #%(index)s:**Título: `%(title)s`\n" "Añadido por: `%(user)s\n\n" -#: musicbot/bot.py:6072 +#: musicbot/bot.py:6073 #, python-format msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" "Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" @@ -1471,17 +1471,17 @@ msgstr "%(progress)sHay `%(total)s` entradas en cola.\n" "Aquí están las siguientes canciones %(per_page)s , comenzando por la canción #%(start)s\n\n" "%(tracks)s" -#: musicbot/bot.py:6085 +#: musicbot/bot.py:6086 msgid "Songs in queue" msgstr "Canciones en cola" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Inténtelo de nuevo. MusicBot no pudo hacer ni obtener una referencia al mensaje de la cola.\n" "Si el problema persiste, envíe un informe de error." -#: musicbot/bot.py:6156 +#: musicbot/bot.py:6157 msgid "Search for and remove bot messages and commands from the calling text channel.\n" "Optionally supply a number of messages to search through, 50 by default 500 max.\n" "This command may be slow if larger ranges are given.\n" @@ -1489,64 +1489,64 @@ msgstr "Busca y elimina mensajes y comandos del bot del canal de texto llamado.\ "Opcionalmente suministra un número de mensajes para buscar, 50 por defecto 500 max.\n" "Este comando puede ser lento si se dan rangos más grandes.\n" -#: musicbot/bot.py:6180 +#: musicbot/bot.py:6181 msgid "Invalid parameter. Please provide a number of messages to search." msgstr "Parámetro no válido. Por favor, proporcione un número de mensajes a buscar." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "No se puede utilizar la purga en el canal DM privado." -#: musicbot/bot.py:6222 +#: musicbot/bot.py:6223 #, python-format msgid "Cleaned up %(number)s message(s)." msgstr "Se han limpiado %(number)s mensaje(s)." -#: musicbot/bot.py:6226 +#: musicbot/bot.py:6227 msgid "Bot does not have permission to manage messages." msgstr "El bot no tiene permiso para administrar mensajes." -#: musicbot/bot.py:6231 +#: musicbot/bot.py:6232 msgid "Dump the individual URLs of a playlist to a file." msgstr "Volcar las URLs individuales de una lista de reproducción a un archivo." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "La URL dada no era una URL válida." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "No se pudo extraer información de la url\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "Esto no parece ser una lista de reproducción." -#: musicbot/bot.py:6282 +#: musicbot/bot.py:6283 #, python-format msgid "Here is the playlist dump for: %(url)s" msgstr "Aquí está el volcado de la lista de reproducción para: %(url)s" -#: musicbot/bot.py:6292 +#: musicbot/bot.py:6293 msgid "Display your Discord User ID, or the ID of a mentioned user.\n" "This command is deprecated in favor of Developer Mode in Discord clients.\n" msgstr "Muestra tu ID de usuario de Discord o la ID de un usuario mencionado.\n" "Este comando está en desuso y se ha sustituido por el modo de desarrollador en los clientes de Discord.\n" -#: musicbot/bot.py:6307 +#: musicbot/bot.py:6308 #, python-format msgid "Your user ID is `%(id)s`" msgstr "Tu ID de usuario es `%(id)s`" -#: musicbot/bot.py:6312 +#: musicbot/bot.py:6313 #, python-format msgid "The user ID for `%(username)s` is `%(id)s`" msgstr "El ID de usuario para `%(username)s` es `%(id)s`" -#: musicbot/bot.py:6319 +#: musicbot/bot.py:6320 msgid "List the Discord IDs for the selected category.\n" "Returns all ID data by default, but one or more categories may be selected.\n" "This command is deprecated in favor of using Developer mode in Discord clients.\n" @@ -1554,28 +1554,28 @@ msgstr "Lista los ID de Discord para la categoría seleccionada.\n" "Devuelve todos los datos ID por defecto, pero se pueden seleccionar una o más categorías.\n" "Este comando está obsoleto a favor de usar el modo desarrollador en los clientes de Discord.\n" -#: musicbot/bot.py:6341 +#: musicbot/bot.py:6342 #, python-format msgid "Valid categories: %(cats)s" msgstr "Categorías válidas: %(cats)s" -#: musicbot/bot.py:6388 +#: musicbot/bot.py:6389 msgid "Here are the IDs you requested:" msgstr "Aquí están los IDs que ha solicitado:" -#: musicbot/bot.py:6395 +#: musicbot/bot.py:6396 msgid "Get a list of your permissions, or the permissions of the mentioned user." msgstr "Obtenga una lista de sus permisos, o los permisos del usuario mencionado." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "ID de usuario o nombre de servidor no válido, por favor compruebe el ID e inténtelo de nuevo." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "No se pudo determinar el usuario de discord. Inténtalo de nuevo." -#: musicbot/bot.py:6439 +#: musicbot/bot.py:6440 #, python-format msgid "Your command permissions in %(server)s are:\n" "```\n" @@ -1586,7 +1586,7 @@ msgstr "Tus permisos de comando en %(server)s son:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6448 +#: musicbot/bot.py:6449 #, python-format msgid "The command permissions for %(username)s in %(server)s are:\n" "```\n" @@ -1597,58 +1597,58 @@ msgstr "Los permisos de comando para %(username)s en %(server)s son:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6464 +#: musicbot/bot.py:6465 msgid " Show loaded groups and list permission options.\n" msgstr " Mostrar grupos cargados y listar las opciones de permisos.\n" -#: musicbot/bot.py:6467 +#: musicbot/bot.py:6468 msgid " Reloads permissions from the permissions.ini file.\n" msgstr " Recarga los permisos del archivo permissions.ini.\n" -#: musicbot/bot.py:6470 +#: musicbot/bot.py:6471 msgid " Add new group with defaults.\n" msgstr " Añadir un nuevo grupo por defecto.\n" -#: musicbot/bot.py:6473 +#: musicbot/bot.py:6474 msgid " Remove existing group.\n" msgstr " Eliminar grupo existente.\n" -#: musicbot/bot.py:6476 +#: musicbot/bot.py:6477 msgid " Show help text for the permission option.\n" msgstr " Mostrar texto de ayuda para la opción de permisos.\n" -#: musicbot/bot.py:6479 +#: musicbot/bot.py:6480 msgid " Show permission value for given group and permission.\n" msgstr " Mostrar el valor del permiso para un grupo y permiso dado.\n" -#: musicbot/bot.py:6482 +#: musicbot/bot.py:6483 msgid " Save permissions group to file.\n" msgstr " Guardar grupo de permisos en el archivo.\n" -#: musicbot/bot.py:6485 +#: musicbot/bot.py:6486 msgid " Set permission value for the group.\n" msgstr " Establecer el valor del permiso para el grupo.\n" -#: musicbot/bot.py:6488 +#: musicbot/bot.py:6489 msgid "Manage permissions.ini configuration from within discord." msgstr "Administrar la configuración permissions.ini desde discord." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Los permisos no pueden usar menciones de canal y usuario al mismo tiempo." -#: musicbot/bot.py:6534 +#: musicbot/bot.py:6535 msgid "Permissions reloaded from file successfully!" msgstr "¡Permisos recargados desde el archivo con éxito!" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "No se pueden recargar los permisos debido a un error:\n" "%(raw_error)s" -#: musicbot/bot.py:6558 +#: musicbot/bot.py:6559 #, python-format msgid "## Available Groups:\n" "%(groups)s\n" @@ -1659,41 +1659,41 @@ msgstr "## Grupos disponibles:\n" "## Opciones disponibles:\n" "%(options)s\n" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Debe proporcionar un nombre de grupo o opción para este comando." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Debe proporcionar un grupo, opción y valor para este comando." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "El subcomando %(option)s requiere un grupo y un nombre de permiso." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "El grupo `%(group)s` no está disponible.\n" "Los grupos disponibles son: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "El permiso `%(option)s` no está disponible." -#: musicbot/bot.py:6624 +#: musicbot/bot.py:6625 msgid "This permission can only be set by editing the permissions file." msgstr "Este permiso sólo se puede establecer editando el archivo de permisos." -#: musicbot/bot.py:6633 +#: musicbot/bot.py:6634 #, python-format msgid "By default this permission is set to: `%(value)s`" msgstr "Por defecto este permiso está establecido en: `%(value)s`" -#: musicbot/bot.py:6638 +#: musicbot/bot.py:6639 #, python-format msgid "**Permission:** `%(option)s`\n" "%(comment)s\n\n" @@ -1702,12 +1702,12 @@ msgstr "**Permiso:** `%(option)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "No se puede agregar el grupo `%(group)s` que ya existe." -#: musicbot/bot.py:6660 +#: musicbot/bot.py:6661 #, python-format msgid "Successfully added new group: `%(group)s`\n" "You can now customize the permissions with: `setperms set %(group)s`\n" @@ -1716,32 +1716,32 @@ msgstr "Nuevo grupo añadido con éxito: `%(group)s`\n" "Ahora puedes personalizar los permisos con: `setperms set %(group)s`\n" "Asegúrate de guardar el nuevo grupo con: `setperms save %(group)s`" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "No se puede eliminar el grupo integrado." -#: musicbot/bot.py:6677 +#: musicbot/bot.py:6678 #, python-format msgid "Successfully removed group: `%(group)s`\n" "Make sure to save this change with: `setperms save %(group)s`" msgstr "Grupo eliminado con éxito: `%(group)s`\n" "Asegúrese de guardar este cambio con: `setperms save %(group)s`" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "El grupo propietario no es editable." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Error al guardar el grupo: `%(group)s`" -#: musicbot/bot.py:6700 +#: musicbot/bot.py:6701 #, python-format msgid "Successfully saved the group: `%(group)s`" msgstr "Se ha guardado correctamente el grupo: `%(group)s`" -#: musicbot/bot.py:6711 +#: musicbot/bot.py:6712 #, python-format msgid "**Permission:** `%(permission)s`\n" "Current Value: `%(loaded)s`\n" @@ -1750,155 +1750,205 @@ msgstr "**Permiso:** `%(permission)s`\n" "Valor actual: `%(loaded)s`\n" "Valor del archivo INI: `%(ini)s`" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "¡El permiso `%(option)s` no fue actualizado!" -#: musicbot/bot.py:6748 +#: musicbot/bot.py:6749 #, python-format msgid "Permission `%(permission)s` was updated for this session.\n" "To save the change use `setperms save %(section)s %(option)s`" msgstr "El permiso `%(permission)s` fue actualizado para esta sesión.\n" "Para guardar el cambio use `setperms save %(section)s %(option)s`" -#: musicbot/bot.py:6765 +#: musicbot/bot.py:6766 msgid "Change the bot's username on discord.\n" "Note: The API may limit name changes to twice per hour." msgstr "Cambiar el nombre de usuario del bot en discord.\n" "Nota: La API puede limitar los cambios de nombre a dos veces por hora." -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Error al cambiar el nombre de usuario. ¿Has cambiado nombres demasiadas veces?\n" "Recuerda que los cambios de nombre están limitados a dos veces por hora.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Error al cambiar el nombre de usuario debido al error: \n" "%(raw_error)s" -#: musicbot/bot.py:6795 +#: musicbot/bot.py:6796 #, python-format msgid "Set the bot's username to `%(name)s`" msgstr "Establezca el nombre de usuario del bot a `%(name)s`" -#: musicbot/bot.py:6798 +#: musicbot/bot.py:6799 msgid "Change the MusicBot's nickname." msgstr "Cambiar el apodo de MusicBot." -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "No se puede cambiar el apodo: no hay permiso." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "No se pudo establecer el nick debido a un error: \n" "%(raw_error)s" -#: musicbot/bot.py:6825 +#: musicbot/bot.py:6826 #, python-format msgid "Set the bot's nickname to `%(nick)s`" msgstr "Establecer el apodo del bot a `%(nick)s`" -#: musicbot/bot.py:6832 +#: musicbot/bot.py:6833 msgid " Set a per-server command prefix." msgstr " Establecer un prefijo de comando por servidor." -#: musicbot/bot.py:6834 +#: musicbot/bot.py:6835 msgid " Clear the per-server command prefix." msgstr " Borrar el prefijo de comando por servidor." -#: musicbot/bot.py:6838 +#: musicbot/bot.py:6839 msgid "Override the default command prefix in the server.\n" "The option EnablePrefixPerGuild must be enabled first." msgstr "Reemplaza el prefijo de comandos predeterminado en el servidor.\n" "La opción EnablePrefixPerGuild debe estar habilitada primero." -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Los emoji personalizados deben ser de este servidor para usar como prefijo." -#: musicbot/bot.py:6866 +#: musicbot/bot.py:6867 msgid "Server command prefix is cleared." msgstr "Se ha borrado el prefijo del comando del servidor." -#: musicbot/bot.py:6871 +#: musicbot/bot.py:6872 #, python-format msgid "Server command prefix is now: %(prefix)s" msgstr "El prefijo del comando del servidor es ahora: %(prefix)s" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "¡El prefijo por servidor no está habilitado!\n" "Utilice el comando de configuración para actualizar el prefijo en su lugar." -#: musicbot/bot.py:6885 +#: musicbot/bot.py:6886 +msgid " Show language codes available to use.\n" +msgstr " Mostrar códigos de idioma disponibles para usar.\n" + +#: musicbot/bot.py:6889 +msgid " Set the desired language for this server.\n" +msgstr " Establezca el idioma deseado para este servidor.\n" + +#: musicbot/bot.py:6892 +msgid " Reset the server language to bot's default language.\n" +msgstr " Restablecer el idioma del servidor al idioma predeterminado del bot.\n" + +#: musicbot/bot.py:6895 +msgid "Manage the language used for messages in the calling server." +msgstr "Administrar el idioma utilizado para los mensajes en el servidor de llamadas." + +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Este comando sólo puede ser usado en gremios." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Sub-comando inválido. Utilice el comando de ayuda para más información." + +#: musicbot/bot.py:6924 +#, python-format +msgid "**Current Language:** `%(locale)s`\n" +"**Available Languages:**\n" +"```\n" +"%(languages)s```" +msgstr "**Idioma actual:** `%(locale)s`\n" +"**Idiomas disponibles:**\n" +"```\n" +"%(languages)s```" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "No se puede establecer el idioma a `%(locale)s` no está disponible." + +#: musicbot/bot.py:6939 +#, python-format +msgid "Language for this server now set to: `%(locale)s`" +msgstr "Idioma para este servidor ahora establecido en: `%(locale)s`" + +#: musicbot/bot.py:6947 +#, python-format +msgid "Language for this server has been reset to: `%(locale)s`" +msgstr "El idioma de este servidor se ha restablecido a: `%(locale)s`" + +#: musicbot/bot.py:6959 msgid "Change MusicBot's avatar.\n" "Attaching a file and omitting the url parameter also works.\n" msgstr "Cambiar el avatar de MusicBot.\n" "Adjuntar un archivo y omitir el parámetro url también funciona.\n" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "Debe proporcionar una URL o adjuntar un archivo." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "No se puede cambiar el avatar debido a un error: \n" "%(raw_error)s" -#: musicbot/bot.py:6919 +#: musicbot/bot.py:6993 msgid "Changed the bot's avatar." msgstr "Se ha cambiado el avatar del bot." -#: musicbot/bot.py:6922 +#: musicbot/bot.py:6996 msgid "Force MusicBot to disconnect from the discord server." msgstr "Forzar a MusicBot a desconectarse del servidor de discord." -#: musicbot/bot.py:6933 +#: musicbot/bot.py:7007 #, python-format msgid "Disconnected from server `%(guild)s`" msgstr "Desconectado del servidor `%(guild)s`" -#: musicbot/bot.py:6948 +#: musicbot/bot.py:7022 msgid "Disconnected a playerless voice client? [BUG]" msgstr "¿Desconectado un cliente de voz sin jugador? [BUG]" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Actualmente no conectado al servidor `%(guild)s`" -#: musicbot/bot.py:6960 +#: musicbot/bot.py:7034 msgid " Attempt to reload without process restart. The default option.\n" msgstr " Intento de recargar sin reiniciar el proceso. La opción predeterminada.\n" -#: musicbot/bot.py:6962 +#: musicbot/bot.py:7036 msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" msgstr " Intentó reiniciar todo el proceso de MusicBot. Recargando todo.\n" -#: musicbot/bot.py:6964 +#: musicbot/bot.py:7038 msgid " Full restart, but attempt to update pip packages before restart.\n" msgstr " Reinicio completo, pero intente actualizar los paquetes pip antes de reiniciar.\n" -#: musicbot/bot.py:6966 +#: musicbot/bot.py:7040 msgid " Full restart, but update MusicBot source code with git first.\n" msgstr " Reinicio completo, pero actualiza el código fuente de MusicBot con git primero.\n" -#: musicbot/bot.py:6968 +#: musicbot/bot.py:7042 msgid " Attempt to update all dependency and source code before fully restarting.\n" msgstr " Intento de actualizar toda la dependencia y el código fuente antes de reiniciar por completo.\n" -#: musicbot/bot.py:6972 +#: musicbot/bot.py:7046 msgid "Attempts to restart the MusicBot in a number of different ways.\n" "With no option supplied, a `soft` restart is implied.\n" "It can be used to remotely update a MusicBot installation, but should be used with care.\n" @@ -1908,103 +1958,103 @@ msgstr "Intenta reiniciar MusicBot de distintas maneras.\n" "Se puede utilizar para actualizar de forma remota una instalación de MusicBot, pero debe utilizarse con cuidado.\n" "Si tiene un administrador de servicios, le recomendamos que lo utilice en lugar de este comando para reiniciar.\n" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Opción inválida dada, utilice una de: suave, completa, actualizada, actualizada o actualizada" -#: musicbot/bot.py:6999 +#: musicbot/bot.py:7073 #, python-format msgid "%(emoji)s Restarting current instance..." msgstr "%(emoji)s Reiniciando la instancia actual..." -#: musicbot/bot.py:7004 +#: musicbot/bot.py:7078 #, python-format msgid "%(emoji)s Restarting bot process..." msgstr "%(emoji)s Reiniciando el proceso del bot..." -#: musicbot/bot.py:7009 +#: musicbot/bot.py:7083 #, python-format msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." msgstr "%(emoji)s Intentará actualizar los paquetes pip necesarios y reiniciar el bot..." -#: musicbot/bot.py:7014 +#: musicbot/bot.py:7088 #, python-format msgid "%(emoji)s Will try to update bot code with git and restart the bot..." msgstr "%(emoji)s intentará actualizar el código del bot con git y reiniciar el bot..." -#: musicbot/bot.py:7019 +#: musicbot/bot.py:7093 #, python-format msgid "%(emoji)s Will try to upgrade everything and restart the bot..." msgstr "%(emoji)s Intentará actualizar todo y reiniciar el bot..." -#: musicbot/bot.py:7053 +#: musicbot/bot.py:7127 msgid "Disconnect from all voice channels and close the MusicBot process." msgstr "Desconecte de todos los canales de voz y cierre el proceso MusicBot." -#: musicbot/bot.py:7079 +#: musicbot/bot.py:7153 msgid " Leave the discord server given by name or server ID." msgstr " Deja el servidor de discord dado por nombre o ID del servidor." -#: musicbot/bot.py:7083 +#: musicbot/bot.py:7157 msgid "Force MusicBot to leave the given Discord server.\n" "Names are case-sensitive, so using an ID number is more reliable.\n" msgstr "Fuerza a MusicBot a abandonar el servidor de Discord dado.\n" "Los nombres son sensibles a mayúsculas y minúsculas, por lo que usar un número de ID es más fiable.\n" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Debe proporcionar un ID o nombre." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "No se ha encontrado ningún gremio con el ID o nombre `%(input)s`" -#: musicbot/bot.py:7121 +#: musicbot/bot.py:7195 msgid "Unknown" msgstr "Desconocido" -#: musicbot/bot.py:7128 +#: musicbot/bot.py:7202 #, python-format msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" msgstr "Abandonó el gremio: `%(name)s` (Propietario: `%(owner)s`, ID: `%(id)s`)" -#: musicbot/bot.py:7138 +#: musicbot/bot.py:7212 msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." msgstr "Comando usado para pruebas. Imprime una lista de comandos que pueden ser verificados por una suite de pruebas." -#: musicbot/bot.py:7162 +#: musicbot/bot.py:7236 msgid "This command issues a log at level CRITICAL, but does nothing else.\n" "Can be used to manually pinpoint events in the MusicBot log file.\n" msgstr "Este comando ejecuta un registro a nivel CRITICAL, pero no hace nada más.\n" "Puede utilizarse para identificar manualmente los eventos en el archivo de registro de MusicBot.\n" -#: musicbot/bot.py:7173 +#: musicbot/bot.py:7247 #, python-format msgid "Logged breakpoint with ID: %(uuid)s" msgstr "Breakpoint registrado con ID: %(uuid)s" -#: musicbot/bot.py:7180 +#: musicbot/bot.py:7254 msgid " View most common types reported by objgraph.\n" msgstr " Ver los tipos más comunes reportados por el objeto.\n" -#: musicbot/bot.py:7183 +#: musicbot/bot.py:7257 msgid " View limited objgraph.show_growth() output.\n" msgstr " Ver salida objgraph.show_growth() limitada.\n" -#: musicbot/bot.py:7186 +#: musicbot/bot.py:7260 msgid " View most common types of leaking objects.\n" msgstr " Visualiza los tipos más comunes de objetos de fuego.\n" -#: musicbot/bot.py:7189 +#: musicbot/bot.py:7263 msgid " View typestats of leaking objects.\n" msgstr " Ver tipografías de objetos que filtran.\n" -#: musicbot/bot.py:7192 +#: musicbot/bot.py:7266 msgid " Evaluate the given function and arguments on objgraph.\n" msgstr " Evaluar la función y argumentos dados sobre el objeto.\n" -#: musicbot/bot.py:7196 +#: musicbot/bot.py:7270 msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" "You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" "Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" @@ -2012,11 +2062,11 @@ msgstr "Interactúe con objgraph, si está instalado, para obtener información "Puede pasar un método arbitrario con argumentos (¡pero sin espacios!) que sea miembro de objgraph.\n" "Dado que este método evalúa código arbitrario, se considera peligroso, al igual que el comando de depuración.\n" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "No se pudo importar `objgraph`, ¿está instalado?" -#: musicbot/bot.py:7249 +#: musicbot/bot.py:7323 msgid "This command will execute arbitrary python code in the command scope.\n" "First eval() is attempted, if exceptions are thrown exec() is tried next.\n" "If eval is successful, it's return value is displayed.\n" @@ -2034,7 +2084,7 @@ msgstr "Este comando ejecutará código Python arbitrario en el ámbito del coma "Este comando puede eliminarse en una versión futura y los desarrolladores lo usan para depurar el comportamiento de MusicBot.\n" "El peligro de este comando no se puede subestimar. ¡No lo use ni le dé acceso si no comprende los riesgos!\n" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -2047,65 +2097,65 @@ msgstr "Error al ejecutar el código de depuración:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7320 +#: musicbot/bot.py:7394 msgid "Create 'markdown' for options, permissions, or commands from the code.\n" "The output is used to update GitHub Pages and is thus unsuitable for normal reference use." msgstr "Crea 'markdown' para opciones, permisos o comandos desde el código.\n" "La salida se utiliza para actualizar las páginas de GitHub y por lo tanto no es adecuada para uso de referencia normal." -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "El subcomando debe ser uno de: %(options)s" -#: musicbot/bot.py:7387 +#: musicbot/bot.py:7461 msgid "Makes default INI files." msgstr "Crea archivos INI por defecto." -#: musicbot/bot.py:7410 +#: musicbot/bot.py:7486 msgid "Saved the requested INI file to disk. Go check it" msgstr "Guardado el archivo INI solicitado en el disco. Compruébalo" -#: musicbot/bot.py:7415 +#: musicbot/bot.py:7491 msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" msgstr "Mostrar la versión actual del bot y comprobar si hay actualizaciones para MusicBot o dependencias.\n" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "No se pudo encontrar el ejecutable de git." -#: musicbot/bot.py:7473 +#: musicbot/bot.py:7549 #, python-format msgid "No updates in branch `%(branch)s` remote." msgstr "No hay actualizaciones en la rama `%(branch)s` remoto." -#: musicbot/bot.py:7478 +#: musicbot/bot.py:7554 #, python-format msgid "New commits are available in `%(branch)s` branch remote." msgstr "Nuevos commits están disponibles en `%(branch)srama remota." -#: musicbot/bot.py:7484 musicbot/bot.py:7527 +#: musicbot/bot.py:7560 musicbot/bot.py:7603 msgid "Error while checking, see logs for details." msgstr "Error al comprobar, vea los registros para más detalles." -#: musicbot/bot.py:7518 +#: musicbot/bot.py:7594 #, python-format msgid "Update for `%(name)s` to version: `%(version)s`\n" msgstr "Actualizar para `%(name)s` a la versión: `%(version)s`\n" -#: musicbot/bot.py:7524 +#: musicbot/bot.py:7600 msgid "No updates for dependencies found." msgstr "No se encontraron actualizaciones para dependencias." -#: musicbot/bot.py:7530 +#: musicbot/bot.py:7606 msgid "There are updates for MusicBot available for download." msgstr "Hay actualizaciones para MusicBot disponibles para su descarga." -#: musicbot/bot.py:7532 +#: musicbot/bot.py:7608 msgid "MusicBot is totally up-to-date!" msgstr "MusicBot es totalmente fecha!" -#: musicbot/bot.py:7536 +#: musicbot/bot.py:7612 #, python-format msgid "%(status)s\n\n" "**Source Code Updates:**\n" @@ -2118,29 +2168,29 @@ msgstr "%(status)s\n\n" "**Actualizaciones de dependencia:**\n" "%(pip_status)s" -#: musicbot/bot.py:7550 +#: musicbot/bot.py:7626 msgid "Displays the MusicBot uptime, or time since last start / restart." msgstr "Muestra el tiempo de actividad de MusicBot, o la hora desde el último inicio / reinicio." -#: musicbot/bot.py:7565 +#: musicbot/bot.py:7641 #, python-format msgid "%(name)s has been online for `%(time)s`" msgstr "%(name)s ha estado en línea para `%(time)s`" -#: musicbot/bot.py:7572 +#: musicbot/bot.py:7648 msgid "Display latency information for Discord API and all connected voice clients." msgstr "Mostrar información de latencia para la API de Discord y todos los clientes de voz conectados." -#: musicbot/bot.py:7594 +#: musicbot/bot.py:7670 #, python-format msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" msgstr "- `%(delay).0f ms` (`%(avg).0f ms` medio.) en la región: `%(region)s`\n" -#: musicbot/bot.py:7599 +#: musicbot/bot.py:7675 msgid "No voice clients connected.\n" msgstr "No hay clientes de voz conectados.\n" -#: musicbot/bot.py:7604 +#: musicbot/bot.py:7680 #, python-format msgid "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" @@ -2149,47 +2199,47 @@ msgstr "**Latencia API:** `%(delay).0f ms`\n" "**Latencia de cliente de voz:**\n" "%(voices)s" -#: musicbot/bot.py:7612 +#: musicbot/bot.py:7688 msgid "Display API latency and Voice latency if MusicBot is connected." msgstr "Mostrar latencia de la API y latencia de voz si MusicBot está conectado." #. TRANSLATORS: short for automatic, displayed when voice region is not selected. -#: musicbot/bot.py:7628 +#: musicbot/bot.py:7704 msgid "auto" msgstr "auto" -#: musicbot/bot.py:7630 +#: musicbot/bot.py:7706 #, python-format msgid "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" msgstr "\n" "**Latencia de voz:** `%(delay).0f ms` (`%(average).0f} ms` Prom.) en la región `%(region)s`" -#: musicbot/bot.py:7635 +#: musicbot/bot.py:7711 #, python-format msgid "**API Latency:** `%(delay).0f ms`%(voice)s" msgstr "**Latencia API:** `%(delay).0f ms`%(voice)s" -#: musicbot/bot.py:7640 +#: musicbot/bot.py:7716 msgid "Display MusicBot version number in the chat." msgstr "Mostrar el número de versión de MusicBot en el chat." -#: musicbot/bot.py:7648 +#: musicbot/bot.py:7724 #, python-format msgid "https://github.com/Just-Some-Bots/MusicBot\n" "Current version: `%(version)s`" msgstr "https://github.com/Just-Some-Bots/MusicBot\n" "Versión actual: `%(version)s`" -#: musicbot/bot.py:7660 +#: musicbot/bot.py:7736 msgid " Update the cookies.txt file using a cookies.txt attachment." msgstr " Actualice el archivo cookies.txt usando un archivo adjunto cookies.txt." -#: musicbot/bot.py:7663 +#: musicbot/bot.py:7739 msgid " Enable or disable cookies.txt file without deleting it." msgstr " Activar o desactivar el archivo cookies.txt sin borrarlo." -#: musicbot/bot.py:7667 +#: musicbot/bot.py:7743 msgid "Allows management of the cookies feature in yt-dlp.\n" "When updating cookies, you must upload a file named cookies.txt\n" "If cookies are disabled, uploading will enable the feature.\n" @@ -2209,90 +2259,90 @@ msgstr "Permite la gestión de la función de cookies en yt-dlp.\n" " No se recomienda debido a estos riesgos, y no debes usar esta\n" " función si no entiendes cómo evitarlos." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Las cookies ya están habilitadas." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Las cookies deben ser subidas para estar habilitadas. (Falta archivo de cookies)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "No se pudo habilitar las cookies debido a un error: %(raw_error)s" -#: musicbot/bot.py:7711 +#: musicbot/bot.py:7787 msgid "Cookies have been enabled." msgstr "Las cookies han sido habilitadas." -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "No se pudo renombrar el archivo de cookies debido a un error: %(raw_error)s\n" "Cookies temporalmente deshabilitadas y serán reactivadas en el siguiente reinicio." -#: musicbot/bot.py:7726 +#: musicbot/bot.py:7802 msgid "Cookies have been disabled." msgstr "Las cookies han sido desactivadas." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "No se encontraron subidas adjuntas, inténtelo de nuevo mientras se subía un archivo de cookies." -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Error al descargar el archivo de cookies desde discord: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "No se han podido guardar las cookies en el disco: %(raw_error)s" -#: musicbot/bot.py:7762 +#: musicbot/bot.py:7838 msgid "Cookies uploaded and enabled." msgstr "Cookies subidas y habilitadas." -#: musicbot/bot.py:7872 +#: musicbot/bot.py:7948 msgid "You cannot use this bot in private messages." msgstr "No puedes usar este bot en mensajes privados." -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Este comando no está permitido para el grupo de permisos: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Este comando requiere que estés en un canal de Voice." -#: musicbot/bot.py:8075 +#: musicbot/bot.py:8151 #, python-format msgid "**Command:** %(name)s" msgstr "**Comando:** %(name)s" -#: musicbot/bot.py:8134 +#: musicbot/bot.py:8210 msgid "Exception Error" msgstr "Error de excepción" -#: musicbot/bot.py:8179 +#: musicbot/bot.py:8255 #, python-format msgid "**Example with prefix:**\n" "%(prefix)s`%(command)s ...`\n" msgstr "**Ejemplo con prefijo:**\n" "%(prefix)s`%(command)s ...`\n" -#: musicbot/bot.py:8183 +#: musicbot/bot.py:8259 msgid "No description given.\n" msgstr "No se ha dado descripción.\n" -#: musicbot/bot.py:8186 +#: musicbot/bot.py:8262 msgid "No usage given." msgstr "No se ha dado el uso." -#: musicbot/bot.py:8220 +#: musicbot/bot.py:8296 #, python-format msgid "**Example usage:**\n" "```%(usage)s```\n" @@ -2303,12 +2353,12 @@ msgstr "**Uso de ejemplo:**\n" "%(prefix_note)s**Descripción:**\n" "%(desc)s" -#: musicbot/bot.py:8273 +#: musicbot/bot.py:8349 #, python-format msgid "Leaving voice channel %(channel)s due to inactivity." msgstr "Dejando el canal de voz %(channel)s debido a la inactividad." -#: musicbot/bot.py:8554 +#: musicbot/bot.py:8645 #, python-format msgid "Left `%(guild)s` due to bot owner not being found in it." msgstr "Abandonó `%(guild)s` debido a que el dueño del bot no se encuentra en él." @@ -2492,43 +2542,43 @@ msgid "Enable automatic skip of auto playlist songs when a user plays a new song msgstr "Habilitar la omisión automática de canciones de la lista de reproducción automática cuando un usuario reproduce una canción nueva.\n" "Esto solo se aplica a la canción que se está reproduciendo actualmente si fue agregada por la lista de reproducción automática." -#: musicbot/config.py:469 +#: musicbot/config.py:468 msgid "Remove songs from the auto playlist if they are found in the song block list." msgstr "Elimina canciones de la lista de reproducción automática si se encuentran en la lista de bloques de canciones." -#: musicbot/config.py:488 +#: musicbot/config.py:487 msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" "Delay period is controlled by DeleteDelayShort and DeleteDelayLong." msgstr "Permitir a MusicBot eliminar automáticamente los mensajes que envía, después de un retraso.\n" "El período de retraso es controlado por DeleteDelayShort y DeleteDelayLong." -#: musicbot/config.py:498 +#: musicbot/config.py:497 msgid "Auto delete valid commands after a delay." msgstr "Auto eliminar comandos válidos después de un retraso." -#: musicbot/config.py:507 +#: musicbot/config.py:506 msgid "Sets the short period of seconds before deleting messages.\n" "This period is used by messages that require no further interaction." msgstr "Establece el corto período de segundos antes de eliminar mensajes.\n" "Este período es utilizado por mensajes que no requieren más interacción." -#: musicbot/config.py:518 +#: musicbot/config.py:517 msgid "Sets the long delay period before deleting messages.\n" "This period is used by interactive or long-winded messages, like search and help." msgstr "Establece el período de retraso largo antes de eliminar los mensajes.\n" "Este período es utilizado por mensajes interactivos o de largo viento, como búsqueda y ayuda." -#: musicbot/config.py:530 +#: musicbot/config.py:529 msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." msgstr "Permitir a MusicBot guardar la cola de canciones, así que las canciones en cola sobrevivirán a los reinicios." -#: musicbot/config.py:540 +#: musicbot/config.py:539 msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" "Currently this option does not apply to auto playlist or songs added to an empty queue." msgstr "Activa MusicBot para descargar la siguiente canción en la cola mientras se reproduce una canción.\n" "Actualmente esta opción no se aplica a la lista de reproducción automática o a las canciones añadidas a una cola vacía." -#: musicbot/config.py:550 +#: musicbot/config.py:549 msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" "will display dynamic info about music currently being played in its status instead.\n" "Status messages may also use the following variables:\n" @@ -2552,69 +2602,69 @@ msgstr "Especifique un mensaje personalizado para usar como estado del bot. Si s " {p0_title} = El título de la pista que se está reproduciendo actualmente.\n" " {p0_url} = La URL de la pista que se está reproduciendo actualmente." -#: musicbot/config.py:571 +#: musicbot/config.py:570 msgid "If enabled, status messages will report info on paused players." msgstr "Si está activado, los mensajes de estado informarán sobre los jugadores en pausa." #. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. -#: musicbot/config.py:582 +#: musicbot/config.py:581 msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" msgstr "Si está activado, MusicBot guardará el título de la pista a: data/[ID del servidor]/current.txt" -#: musicbot/config.py:592 +#: musicbot/config.py:591 msgid "Allow the member who requested the song to skip it, bypassing votes." msgstr "Permitir que el miembro que solicitó la canción se salte, evitando votos." -#: musicbot/config.py:602 +#: musicbot/config.py:601 msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" "This option can cause delay between playing songs, as the whole track must be processed." msgstr "Intenta usar ffmpeg para obtener opciones de normalización de volumen para usar en la reproducción.\n" "Esta opción puede causar demoras entre la reproducción de canciones, ya que se debe procesar toda la pista." -#: musicbot/config.py:612 +#: musicbot/config.py:611 msgid "Allow MusicBot to format its messages as embeds." msgstr "Permitir a MusicBot formatear sus mensajes como incrustados." -#: musicbot/config.py:621 +#: musicbot/config.py:620 msgid "The number of entries to show per-page when using q command to list the queue." msgstr "El número de entradas para mostrar por página cuando se usa el comando q para listar la cola." -#: musicbot/config.py:631 +#: musicbot/config.py:630 msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." msgstr "Activar MusicBot para eliminar automáticamente las entradas no reproducibles de la lista de reproducción automática." -#: musicbot/config.py:640 +#: musicbot/config.py:639 msgid "Display MusicBot config settings in the logs at startup." msgstr "Mostrar los ajustes de configuración de MusicBot en los registros al inicio." #. TRANSLATORS: InstaSkip should not be translated. -#: musicbot/config.py:650 +#: musicbot/config.py:649 msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." msgstr "Habilitar a los usuarios con el permiso de InstaSkip para omitir el voto saltado y saltar la fuerza." -#: musicbot/config.py:660 +#: musicbot/config.py:659 msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." msgstr "Si está activado, MusicBot dejará los servidores si el propietario no está en su lista de miembros." -#: musicbot/config.py:670 +#: musicbot/config.py:669 msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" msgstr "Si está activado, MusicBot permitirá que los comandos tengan varios nombres usando datos en: config/aliases.json" -#: musicbot/config.py:681 +#: musicbot/config.py:680 msgid "Replace MusicBot name/version in embed footer with custom text.\n" "Only applied when UseEmbeds is enabled and it is not blank." msgstr "Reemplazar el nombre/versión de MusicBot en el pie de página incrustado con texto personalizado.\n" "Sólo se aplica cuando el uso de Embeds está habilitado y no está en blanco." -#: musicbot/config.py:691 +#: musicbot/config.py:690 msgid "Completely remove the footer from embeds." msgstr "Elimina completamente el pie de página de las incrustaciones." -#: musicbot/config.py:700 +#: musicbot/config.py:699 msgid "MusicBot will automatically deafen itself when entering a voice channel." msgstr "MusicBot automáticamente se ensordece cuando entra en un canal de voz." -#: musicbot/config.py:711 +#: musicbot/config.py:710 msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" "after waiting for a period set in LeaveInactiveVCTimeOut option.\n" "Listeners are channel members, excluding bots, who are not deafened." @@ -2622,17 +2672,17 @@ msgstr "Si está habilitado, MusicBot abandonará un canal de voz cuando ningún "después de esperar un período establecido en la opción LeaveInactiveVCTimeOut.\n" "Los oyentes son miembros del canal, excluidos los bots, que no están sordos." -#: musicbot/config.py:723 +#: musicbot/config.py:722 msgid "Set a period of time to wait before leaving an inactive voice channel.\n" "You can set this to a number of seconds or phrase like: 4 hours" msgstr "Establezca un período de tiempo de espera antes de abandonar un canal de voz inactivo. \n" "Puede configurarlo en una cantidad de segundos o una frase como: 4 horas" -#: musicbot/config.py:734 +#: musicbot/config.py:733 msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." msgstr "Si está activado, MusicBot dejará el canal inmediatamente cuando la cola de canciones esté vacía." -#: musicbot/config.py:744 +#: musicbot/config.py:743 msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" "You can set this to a number of seconds of phrase like: 15 minutes\n" "Set it to 0 to disable leaving in this way." @@ -2640,24 +2690,24 @@ msgstr "Cuando esté en pausa o ya no se reproduzca, espere este tiempo y luego "Puede configurar esto en una cantidad de segundos de frase como: 15 minutos\n" "Configúrelo en 0 para desactivar la salida de esta manera." -#: musicbot/config.py:756 +#: musicbot/config.py:755 msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." msgstr "Si está activado, los usuarios deben indicar opciones de búsqueda enviando un mensaje en lugar de usar reacciones." -#: musicbot/config.py:766 +#: musicbot/config.py:765 msgid "Sets the default number of search results to fetch when using the search command without a specific number." msgstr "Establece el número predeterminado de resultados de búsqueda a buscar cuando se utiliza el comando de búsqueda sin un número específico." #. TRANSLATORS: setprefix should not be translated. -#: musicbot/config.py:778 +#: musicbot/config.py:777 msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." msgstr "Permitir que MusicBot guarde un prefijo de comando por servidor y habilite el comando setprefix." -#: musicbot/config.py:789 +#: musicbot/config.py:788 msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." msgstr "Si está habilitado y varios miembros están añadiendo canciones, MusicBot organizará la reproducción de una canción por miembro." -#: musicbot/config.py:800 +#: musicbot/config.py:799 msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" "This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" "MusicBot must be restarted to enable network testing.\n" @@ -2667,7 +2717,7 @@ msgstr "Permitir que MusicBot utilice pings cronometrados para detectar interrup "MusicBot debe reiniciarse para habilitar las pruebas de red.\n" "De forma predeterminada, esta opción está deshabilitada." -#: musicbot/config.py:814 +#: musicbot/config.py:813 #, python-format msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" "This will contain all songs from all servers." @@ -2675,12 +2725,12 @@ msgstr "Habilitar guardar todas las canciones reproducidas por MusicBot en un ar "Esto contendrá todas las canciones de todos los servidores." #. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. -#: musicbot/config.py:829 +#: musicbot/config.py:828 #, python-format msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" msgstr "Habilitar guardar canciones reproducidas por servidor en un archivo de lista de reproducción: %(basename)s[Server ID]%(ext)s" -#: musicbot/config.py:845 +#: musicbot/config.py:844 msgid "Enable playback of local media files using the play command.\n" "When enabled, users can use: `play file://path/to/file.ext`\n" "to play files from the local MediaFileDirectory path." @@ -2688,11 +2738,11 @@ msgstr "Habilitar la reproducción de archivos multimedia locales usando el coma "Cuando está habilitado, los usuarios pueden usar: `play file://path/to/file. xt`\n" "para reproducir archivos desde la ruta local MediaFileDirectory." -#: musicbot/config.py:858 +#: musicbot/config.py:857 msgid "Allow MusicBot to automatically unpause when play commands are used." msgstr "Permitir a MusicBot reanudar automáticamente cuando se utilizan comandos de reproducción." -#: musicbot/config.py:877 +#: musicbot/config.py:876 msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" "The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" "Leave blank to disable." @@ -2700,7 +2750,7 @@ msgstr "Configuración de proxy HTTP/HTTPS experimental para usar con el descarg "El valor establecido aquí se pasa a `ytdlp --proxy` y a la verificación del encabezado aiohttp.\n" "Deje en blanco para deshabilitarlo." -#: musicbot/config.py:888 +#: musicbot/config.py:887 msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" "It is not typically recommended by yt-dlp to change the UA string.\n" "For examples of what you might put here, check the following two links:\n" @@ -2714,7 +2764,7 @@ msgstr "Opción experimental para configurar un encabezado de agente de usuario " https://www.useragents.me/\n" "Déjelo en blanco para utilizar cadenas de agente de usuario predeterminadas y generadas dinámicamente." -#: musicbot/config.py:903 +#: musicbot/config.py:902 #, python-format msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" "When enabled, you must use the generated URL and code to authorize an account.\n" @@ -2729,7 +2779,7 @@ msgstr "Opción experimental para permitir que yt-dlp use una cuenta de YouTube "Es posible que no se recomiende usar una cuenta personal.\n" "Configure sí para habilitar o no para deshabilitar." -#: musicbot/config.py:920 +#: musicbot/config.py:919 msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" "This starts the OAuth2 prompt early, rather than waiting for a song request.\n" "The URL set here should be an accessible YouTube video URL.\n" @@ -2739,31 +2789,31 @@ msgstr "URL de video de YouTube opcional que se utiliza al inicio para activar l "La URL que se establece aquí debe ser una URL de video de YouTube accesible.\n" "La autorización debe completarse antes del inicio; si se establece esta opción, continuará." -#: musicbot/config.py:939 +#: musicbot/config.py:938 msgid "Toggle the user block list feature, without emptying the block list." msgstr "Cambiar la función de lista de bloques de usuario, sin vaciar la lista de bloques." -#: musicbot/config.py:949 +#: musicbot/config.py:948 msgid "An optional file path to a text file listing Discord User IDs, one per line." msgstr "Una ruta opcional de archivo a un archivo de texto con los ID de usuario de Discord, uno por línea." -#: musicbot/config.py:961 +#: musicbot/config.py:960 msgid "Enable the song block list feature, without emptying the block list." msgstr "Activar la función de lista de bloques de canciones, sin vaciar la lista de bloques." -#: musicbot/config.py:971 +#: musicbot/config.py:970 msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" "Any song title or URL that contains any line in the list will be blocked." msgstr "Una ruta opcional de archivo a un archivo de texto que muestra URLs, palabras o frases una por línea.\n" "Cualquier título o URL de la canción que contenga cualquier línea de la lista será bloqueada." -#: musicbot/config.py:984 +#: musicbot/config.py:983 msgid "An optional path to a directory containing auto playlist files.\n" "Each file should contain a list of playable URLs or terms, one track per line." msgstr "Una ruta opcional a un directorio que contiene archivos de listas de reproducción automáticas.\n" "Cada archivo debe contener una lista de términos o URL reproducibles, una pista por línea." -#: musicbot/config.py:996 +#: musicbot/config.py:995 #, python-format msgid "An optional directory path where playable media files can be stored.\n" "All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" @@ -2774,11 +2824,11 @@ msgstr "Una ruta opcional de directorio donde se pueden almacenar archivos multi "Ejemplo: file://some/folder/name/file.ext\n" "Mapas a: %(path)s/some/folder/name/file.ext" -#: musicbot/config.py:1015 +#: musicbot/config.py:1014 msgid "An optional directory path where MusicBot will store long and short-term cache for playback." msgstr "Una ruta opcional de directorio donde MusicBot almacenará la caché a corto y largo plazo para la reproducción." -#: musicbot/config.py:1026 +#: musicbot/config.py:1025 #, python-format msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" "When disabled, only one log is kept and its contents are replaced each run.\n" @@ -2787,7 +2837,7 @@ msgstr "Configure la rotación automática de archivos de registro al reiniciar "Cuando está deshabilitada, solo se conserva un registro y su contenido se reemplaza en cada ejecución.\n" "Establezca en 0 para deshabilitarla. La cantidad máxima permitida es %(max)s." -#: musicbot/config.py:1039 +#: musicbot/config.py:1038 msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" "If left blank, a warning is logged and the default will be used instead.\n" "Learn more about time format codes from the tables and data here:\n" @@ -2797,13 +2847,13 @@ msgstr "Configura el formato de fecha del archivo de registro que se utiliza cua "Obtén más información sobre los códigos de formato de hora de las tablas y los datos aquí:\n" " https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" -#: musicbot/config.py:1053 +#: musicbot/config.py:1052 msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" "This option will disable UseExperimentalEqualization option as well." msgstr "Potentially reduce el uso de la CPU, pero desactiva los controles de volumen y velocidad.\n" "Esta opción también deshabilitará la opción de UseExperimentalEqualization" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2826,7 +2876,7 @@ msgstr "Error al leer la configuración.\n\n" " Cada sección debe tener al menos una opción.\n" " Use las opciones de ejemplo como plantilla o cópielas del repositorio." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2838,7 +2888,7 @@ msgstr "Error al validar las opciones de configuración.\n\n" "Solución:\n" " Asegúrese de que la ruta que ha configurado es una ruta a una carpeta / directorio." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2853,7 +2903,7 @@ msgstr "Error al validar las opciones de configuración.\n\n" "Solución:\n" " Verifique nuevamente que la configuración sea una ruta de directorio válida y accesible." -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2866,7 +2916,7 @@ msgstr "Error al leer las opciones de configuración.\n\n" "Solución:\n" " Establecer la opción de configuración del token o establecer la variable de entorno %(env_var)s con un token de aplicación." -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2880,7 +2930,7 @@ msgstr "Error al obtener 'OwnerID' automáticamente.\n\n" "Solución:\n" " Establezca manualmente la opción de configuración 'OwnerID' o vuelva a intentarlo más tarde." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2892,7 +2942,7 @@ msgstr "Error al validar las opciones de configuración.\n\n" "Solución:\n" " No utilice el Bot o el ID de la aplicación en el campo OwnerID." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2907,7 +2957,7 @@ msgstr "Error al localizar la configuración.\n\n" "Solución:\n" " Verifique que la carpeta y los archivos de configuración existan y que MusicBot pueda leerlos." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2924,7 +2974,7 @@ msgstr "Error al cargar la configuración.\n\n" " Asegúrese de que el archivo sea accesible y no tenga errores.\n" " Copie el archivo de ejemplo del repositorio si todo lo demás falla." -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2937,7 +2987,7 @@ msgstr "Error cargando valor de configuración.\n\n" ":\n" " Establece %(option)s a un ID numérico o establézcalo a `auto` o `0` para vincular al propietario automático." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2950,7 +3000,7 @@ msgstr "Error cargando valor de configuración.\n\n" "Solución:\n" " Comprueba la configuración de ruta y asegúrate de que el archivo existe y es accesible a MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" diff --git a/i18n/fr_FR/LC_MESSAGES/musicbot_logs.mo b/i18n/fr_FR/LC_MESSAGES/musicbot_logs.mo index 9a45df58582dd199e3fc258d0aba8c82f386d301..6a929c253e777c3fd114237168fe6717363dc82d 100644 GIT binary patch delta 13861 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 MU;bbD?&OO91JvE+6951J delta 13538 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

    Z73|dtB7xU-N?eQLZ)YgI-*Z8FfHDT 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 %(max)s)" msgstr "La durée de la musique dépasse la limite (%(length)s > %(max)s)" -#: musicbot/bot.py:4295 +#: musicbot/bot.py:4298 #, python-format msgid "Added song(s) at position %s" msgstr "Chanson(s) ajoutée à la position %s" -#: musicbot/bot.py:4332 +#: musicbot/bot.py:4335 #, python-format msgid "Cannot estimate time until playing for position: %d" msgstr "Impossible d'estimer le temps avant de jouer pour la position : %d" -#: musicbot/bot.py:4393 +#: musicbot/bot.py:4396 #, python-format msgid "Failed to get info from the stream request: %s" msgstr "Impossible d'obtenir les informations de la demande de flux: %s" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "La diffusion de listes de lecture n'est pas encore prise en charge." -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Vous avez atteint la limite d'élément de votre playlist (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Veuillez spécifier une requête de recherche. Utilisez `help search` pour plus d'informations." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "Vous ne pouvez pas rechercher plus de vidéos %(max)s" -#: musicbot/bot.py:4834 +#: musicbot/bot.py:4837 #, python-format msgid "Waiting for summon lock: %s" msgstr "En attente d'un verrou d'invocation : %s" -#: musicbot/bot.py:4837 +#: musicbot/bot.py:4840 #, python-format msgid "Summon lock acquired for: %s" msgstr "Verrouillage de convocation acquis pour: %s" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "Vous n'êtes pas connecté à la voix. Essayez de rejoindre un salon vocal !" -#: musicbot/bot.py:4866 +#: musicbot/bot.py:4869 #, python-format msgid "Joining %(guild)s/%(channel)s" msgstr "Rejoindre %(guild)s/%(channel)s" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot ne peut pas suivre un utilisateur qui n'est pas membre du serveur." -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Le joueur ne joue pas." -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Rien dans la file d'attente à supprimer !" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "Rien n'a été trouvé dans la file d'attente de l'utilisateur `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "Vous n'avez pas le droit de supprimer cette entrée de la file d'attente.\n" "Vous devez être celui qui l'a mis en file d'attente ou qui a des permissions de sauter instantanément." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Numéro d'entrée invalide. Utilisez la commande file d'attente pour trouver les positions de la file d'attente." -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Impossible de sauter ! Le joueur ne joue pas !" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "Vous n'avez pas la permission de forcer le saut d'une chanson en boucle." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "Vous n'avez pas la permission de forcer le saut." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "Vous n'avez pas la permission de sauter une chanson en boucle." -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` n'est pas un nombre valide" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Changement de volume déraisonnable fourni: %(old_volume)s%(adjustment)s est %(new_volume)s.\n" "Le volume ne peut être défini que de 1 à 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Volume déraisonnable fourni: %(volume)s. Fournissez une valeur comprise entre 1 et 100." -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "Aucune piste n'est lue, impossible de définir la vitesse.\n" "Utilisez la commande de configuration pour définir une vitesse de lecture par défaut." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "La vitesse ne peut pas être appliquée aux médias streamés." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Vous devez fournir une vitesse à définir." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "La vitesse que vous avez fournie n'est pas valide. Utilisez un nombre entre 0,5 et 100." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Option invalide pour la commande : `%(option)s`" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Échec de la sauvegarde des alias en raison d'une erreur :\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Vous devez fournir un alias et une commande à alias" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Vous devez fournir un nom d'alias à supprimer." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "L'alias `%(alias)s` n'existe pas." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "La configuration ne peut pas utiliser les mentions du canal et de l'utilisateur en même temps." -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Impossible de recharger la configuration en raison de l'erreur suivante :\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Impossible de résoudre le nom de la section à partir du nom de l'option. Veuillez fournir un nom de section et d'option valide." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "L'option donnée est ambiguë, veuillez fournir un nom de section." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Vous devez fournir un nom de section et un nom d'option pour cette commande." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "La section `%(section)s` n'est pas disponible.\n" "Les sections disponibles sont : %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "L'option `%(option)s` n'est pas disponible." -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "L'option `%(option)s` n'est pas modifiable. Impossible d'enregistrer sur le disque." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Impossible d'enregistrer l'option : `%(option)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "L'option `%(option)s` n'est pas modifiable, la valeur ne peut pas être affichée." -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "L'option `%(option)s` n'est pas modifiable. Impossible de mettre à jour le paramètre." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Vous devez fournir une section, une option et une valeur pour cette sous-commande." -#: musicbot/bot.py:5810 +#: musicbot/bot.py:5813 #, python-format msgid "Doing set with on %(config)s == %(value)s" msgstr "Faire avec %(config)s == %(value)s" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "L'option `%(option)s` n'a pas été mise à jour !" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "L'option `%(option)s` n'est pas modifiable. Impossible de réinitialiser à la valeur par défaut." -#: musicbot/bot.py:5845 +#: musicbot/bot.py:5848 #, python-format msgid "Resetting %(config)s to default %(value)s" msgstr "Réinitialisation de %(config)s à %(value)s par défaut" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "L'option `%(option)s` n'a pas été réinitialisée par défaut!" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "La commande d'option est obsolète, utilisez la commande config à la place." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Option non valide spécifiée, utilisez: info, mise à jour ou effacement" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Échec** pour supprimer la cache, vérifiez les logs pour plus d'infos..." -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "L'argument de la page de file d'attente doit être un nombre entier." -#: musicbot/bot.py:6004 +#: musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "Il n'y a pas de chansons en attente ! Mettre en file d'attente quelque chose avec une commande de lecture." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "Le numéro de page demandé est hors limites.\n" "Il y a **%(total)s** pages." -#: musicbot/bot.py:6056 +#: musicbot/bot.py:6057 msgid "Skipped the current playlist entry." msgstr "L'entrée de la playlist actuelle a été ignorée." -#: musicbot/bot.py:6099 +#: musicbot/bot.py:6100 msgid "Not enough entries to paginate the queue." msgstr "Pas assez d'entrées pour paginer la file d'attente." -#: musicbot/bot.py:6103 +#: musicbot/bot.py:6104 msgid "Could not post queue message, no message to add reactions to." msgstr "Impossible de poster le message de file d'attente, aucun message à ajouter des réactions." -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Essayez à nouveau. MusicBot n'a pas pu faire ou obtenir une référence au message de file d'attente.\n" "Si le problème persiste, remplissez un rapport de bogue." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Impossible d'utiliser la purge sur un canal DM privé." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "L'URL donnée n'est pas une URL valide." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Impossible d'extraire les infos de l'url d'entrée\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "Cela ne semble pas être une playlist." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "Identifiant d'utilisateur ou surnom de serveur invalide, veuillez vérifier l'ID et réessayer." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Impossible de déterminer l'utilisateur de la discord. Réessayez." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Les permissions ne peuvent pas utiliser les mentions de salon et d'utilisateurs en même temps." -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Impossible de recharger les autorisations en raison d'une erreur :\n" "%(raw_error)s" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Vous devez fournir un nom de groupe ou d'option pour cette commande." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Vous devez fournir un groupe, une option et une valeur à définir pour cette commande." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "La sous-commande %(option)s nécessite un nom de groupe et de permission." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "Le groupe `%(group)s` n'est pas disponible.\n" "Les groupes disponibles sont: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "La permission `%(option)s` n'est pas disponible." -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Impossible d'ajouter le groupe `%(group)s` il existe déjà." -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Impossible de supprimer le groupe intégré." -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "Le groupe propriétaire n'est pas modifiable." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Impossible d'enregistrer le groupe: `%(group)s`" -#: musicbot/bot.py:6736 +#: musicbot/bot.py:6737 #, python-format msgid "Doing set on %(option)s with value: %(value)s" msgstr "Faire sur %(option)s avec la valeur : %(value)s" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Permission `%(option)s` n'a pas été mise à jour !" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Impossible de changer le nom d'utilisateur. Avez-vous changé de nom trop de fois ?\n" "Rappelez-vous que les changements de nom sont limités à deux fois par heure.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Impossible de modifier le nom d'utilisateur en raison d'une erreur : \n" "%(raw_error)s" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Impossible de changer le pseudo : pas de permission." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Impossible de définir le pseudo en raison d'une erreur : \n" "%(raw_error)s" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Les émojis personnalisés doivent provenir de ce serveur pour être utilisés comme préfixes." -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Le préfixe par serveur n'est pas activé !\n" "Utilisez la commande de configuration pour mettre à jour le préfixe à la place." -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Cette commande ne peut être utilisée que dans les guildes." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Sous-commande invalide. Utilisez la commande d'aide pour plus d'informations." + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Impossible de définir la langue à `%(locale)s` il n'est pas disponible." + +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "Vous devez fournir une URL ou joindre un fichier." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Impossible de changer d'avatar en raison d'une erreur : \n" "%(raw_error)s" -#: musicbot/bot.py:6940 +#: musicbot/bot.py:7014 #, python-format msgid "MusicBot found a %s with no guild! This could be a problem." msgstr "MusicBot a trouvé une %s sans guilde! Cela pourrait être un problème." -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Pas actuellement connecté au serveur `%(guild)s`" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Option non valide, utilisez une de : soft, full, upgrade, uppip ou upgit" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Vous devez fournir un ID ou un nom." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "Aucune guilde n'a été trouvée avec l'ID ou le nom `%(input)s`" -#: musicbot/bot.py:7172 +#: musicbot/bot.py:7246 #, python-format msgid "Activating debug breakpoint ID: %(uuid)s" msgstr "Activation de l'ID du point d'arrêt de débogage : %(uuid)s" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Impossible d'importer `objgraph`, est-il installé ?" -#: musicbot/bot.py:7287 +#: musicbot/bot.py:7361 msgid "Debug code ran with eval()." msgstr "Le code de débogage a été exécuté avec eval()." -#: musicbot/bot.py:7297 +#: musicbot/bot.py:7371 msgid "Debug code ran with exec()." msgstr "Le code de débogage a été exécuté avec exec()." -#: musicbot/bot.py:7300 +#: musicbot/bot.py:7374 msgid "Debug code failed to execute." msgstr "L'exécution du code de débogage a échoué." -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1909,275 +1927,275 @@ msgstr "Impossible d'exécuter le code de débogage :\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "La sous-commande doit être une des : %(options)s" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Impossible de localiser l'exécutable git." -#: musicbot/bot.py:7483 +#: musicbot/bot.py:7559 msgid "Failed while checking for updates via git command." msgstr "Échec de la vérification des mises à jour via la commande git." -#: musicbot/bot.py:7512 +#: musicbot/bot.py:7588 msgid "Package missing meta in pip report." msgstr "Méta manquante dans le rapport pip." -#: musicbot/bot.py:7526 +#: musicbot/bot.py:7602 msgid "Failed to get pip update status due to some error." msgstr "Impossible d'obtenir le statut de mise à jour de pip en raison d'une erreur." -#: musicbot/bot.py:7586 +#: musicbot/bot.py:7662 msgid "Got a strange voice client entry." msgstr "Vous avez reçu une étrange entrée du client vocal." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookies déjà activés." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Les cookies doivent être téléchargés pour être activés. (Fichier de cookies)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Impossible d'activer les cookies en raison d'une erreur : %(raw_error)s" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Impossible de renommer le fichier des cookies en raison d'une erreur : %(raw_error)s\n" "Cookies temporairement désactivés et seront réactivés au prochain redémarrage." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "Aucun téléchargement en pièce jointe n'a été trouvé, essayez à nouveau en téléchargeant un fichier de cookies." -#: musicbot/bot.py:7740 +#: musicbot/bot.py:7816 #, python-format msgid "Could not remove old, disabled cookies file: %(raw_error)s" msgstr "Impossible de supprimer le fichier ancien, les cookies désactivés : %(raw_error)s" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Erreur lors du téléchargement du fichier des cookies depuis le discord: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Impossible d'enregistrer les cookies sur le disque : %(raw_error)s" -#: musicbot/bot.py:7772 +#: musicbot/bot.py:7848 #, python-format msgid "Got a message with no channel, somehow: %s" msgstr "A reçu un message sans canal, d'une manière ou d'une autre : %s" -#: musicbot/bot.py:7800 +#: musicbot/bot.py:7876 #, python-format msgid "Ignoring command from myself (%s)" msgstr "Commande ignorée de moi-même (%s)" -#: musicbot/bot.py:7808 +#: musicbot/bot.py:7884 #, python-format msgid "Ignoring command from other bot (%s)" msgstr "Commande ignorée par un autre bot (%s)" -#: musicbot/bot.py:7816 +#: musicbot/bot.py:7892 #, python-format msgid "Ignoring command from channel of type: %s" msgstr "Commande ignorée du canal de type : %s" -#: musicbot/bot.py:7900 +#: musicbot/bot.py:7976 #, python-format msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" msgstr "Utilisateur dans la liste de blocage : %(id)s/%(name)s a essayé la commande : %(command)s" -#: musicbot/bot.py:7907 +#: musicbot/bot.py:7983 #, python-format msgid "Message from %(id)s/%(name)s: %(message)s" msgstr "Message de %(id)s/%(name)s: %(message)s" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Cette commande n'est pas autorisée pour votre groupe de permissions : %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Cette commande nécessite d'être dans un canal vocal." -#: musicbot/bot.py:8060 +#: musicbot/bot.py:8136 #, python-format msgid "Invalid command usage, missing values for params: %(params)r" msgstr "Utilisation de la commande invalide, valeurs manquantes pour les paramètres : %(params)r" -#: musicbot/bot.py:8102 +#: musicbot/bot.py:8178 #, python-format msgid "Error in %(command)s: %(err_name)s: %(err_text)s" msgstr "Erreur dans %(command)s: %(err_name)s: %(err_text)s" -#: musicbot/bot.py:8126 +#: musicbot/bot.py:8202 #, python-format msgid "Exception while handling command: %(command)s" msgstr "Exception lors de la gestion de la commande : %(command)s" -#: musicbot/bot.py:8158 +#: musicbot/bot.py:8234 #, python-format msgid "Cannot generate help for missing command: %s" msgstr "Impossible de générer de l'aide pour la commande manquante : %s" -#: musicbot/bot.py:8162 +#: musicbot/bot.py:8238 #, python-format msgid "Missing help data for command: %s" msgstr "Il manque des données d'aide pour la commande : %s" -#: musicbot/bot.py:8279 +#: musicbot/bot.py:8355 #, python-format msgid "Leaving voice channel %s in %s due to inactivity." msgstr "Quitter le canal vocal %s en %s en raison de l'inactivité." -#: musicbot/bot.py:8288 +#: musicbot/bot.py:8364 msgid "MusicBot has become connected." msgstr "MusicBot est devenu connecté." -#: musicbot/bot.py:8292 +#: musicbot/bot.py:8368 msgid "MusicBot has become disconnected." msgstr "MusicBot est déconnecté." -#: musicbot/bot.py:8297 +#: musicbot/bot.py:8373 #, python-format msgid "Got a Socket Event: %s" msgstr "A eu un événement de socket: %s" -#: musicbot/bot.py:8313 +#: musicbot/bot.py:8389 msgid "VoiceState updated before on_ready finished" msgstr "VoiceState mis à jour avant que le_ready ne soit terminé" -#: musicbot/bot.py:8326 +#: musicbot/bot.py:8402 #, python-format msgid "Ignoring %s in %s as it is a bound voice channel." msgstr "%s ignoré dans %s car il s'agit d'un salon vocal lié." -#: musicbot/bot.py:8335 +#: musicbot/bot.py:8411 #, python-format msgid "%s has been detected as empty. Handling timeouts." msgstr "%s a été détecté comme vide. Délai de manutention expiré." -#: musicbot/bot.py:8346 +#: musicbot/bot.py:8422 #, python-format msgid "A user joined %s, cancelling timer." msgstr "Un utilisateur a rejoint %s, annulation du délai." -#: musicbot/bot.py:8359 +#: musicbot/bot.py:8435 #, python-format msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." msgstr "Le bot a été déplacé et le canal vocal %s est vide. Délai de manutention." -#: musicbot/bot.py:8368 +#: musicbot/bot.py:8444 #, python-format msgid "The bot got moved and the voice channel %s is not empty." msgstr "Le bot a été déplacé et le canal vocal %s n'est pas vide." -#: musicbot/bot.py:8402 +#: musicbot/bot.py:8493 #, python-format msgid "No longer following user %s" msgstr "Plus utilisateur suivant %s" -#: musicbot/bot.py:8424 +#: musicbot/bot.py:8515 #, python-format msgid "Following user `%(user)s` to channel: %(channel)s" msgstr "Utilisateur suivant `%(user)s` pour le salon : %(channel)s" -#: musicbot/bot.py:8444 +#: musicbot/bot.py:8535 msgid "VoiceState disconnect before.channel is None." msgstr "VoiceState déconnexion before.channel est Aucune." -#: musicbot/bot.py:8471 +#: musicbot/bot.py:8562 #, python-format msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" msgstr "Déconnecté de la voix par l'API Discord dans: %(guild)s/%(channel)s (Code : %(code)s) [S:%(state)s]" -#: musicbot/bot.py:8493 +#: musicbot/bot.py:8584 #, python-format msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" msgstr "Impossible d'utiliser le canal de connexion automatique avec le type : %(type)s dans la guilde : %(guild)s" -#: musicbot/bot.py:8500 +#: musicbot/bot.py:8591 #, python-format msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" msgstr "Impossible de trouver le canal auto-joint, a-t-il été supprimé? Guilde: %s" -#: musicbot/bot.py:8506 +#: musicbot/bot.py:8597 #, python-format msgid "Reconnecting to auto-joined guild on channel: %s" msgstr "Reconnexion à la guilde automatiquement rejoint sur le canal : %s" -#: musicbot/bot.py:8519 +#: musicbot/bot.py:8610 #, python-format msgid "Cannot auto join channel: %s" msgstr "Impossible de rejoindre automatiquement le canal : %s" -#: musicbot/bot.py:8535 +#: musicbot/bot.py:8626 #, python-format msgid "Bot has been added to guild: %s" msgstr "Le bot a été ajouté à la guilde : %s" -#: musicbot/bot.py:8547 +#: musicbot/bot.py:8638 #, python-format msgid "Left guild '%s' due to bot owner not found." msgstr "A quitté la guilde '%s' en raison du propriétaire du bot introuvable." -#: musicbot/bot.py:8561 +#: musicbot/bot.py:8652 #, python-format msgid "Creating data folder for guild %s" msgstr "Création du dossier de données pour la guilde %s" -#: musicbot/bot.py:8569 +#: musicbot/bot.py:8660 #, python-format msgid "Bot has been removed from guild: %s" msgstr "Le bot a été retiré de la guilde : %s" -#: musicbot/bot.py:8570 +#: musicbot/bot.py:8661 msgid "Updated guild list:" msgstr "Liste de guilde mise à jour :" -#: musicbot/bot.py:8585 +#: musicbot/bot.py:8676 #, python-format msgid "Guild \"%s\" has become available." msgstr "La guilde «%s» est devenue disponible." -#: musicbot/bot.py:8591 +#: musicbot/bot.py:8682 #, python-format msgid "Resuming player in \"%s\" due to availability." msgstr "Reprise du joueur dans «%s» en raison de la disponibilité." -#: musicbot/bot.py:8608 +#: musicbot/bot.py:8699 #, python-format msgid "Guild \"%s\" has become unavailable." msgstr "La guilde «%s» est devenue indisponible." -#: musicbot/bot.py:8614 +#: musicbot/bot.py:8705 #, python-format msgid "Pausing player in \"%s\" due to unavailability." msgstr "Pauser le joueur dans «%s» en raison de l'indisponibilité." -#: musicbot/bot.py:8630 +#: musicbot/bot.py:8721 #, python-format msgid "Guild update for: %s" msgstr "Mise à jour de guilde pour : %s" -#: musicbot/bot.py:8636 +#: musicbot/bot.py:8727 #, python-format msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" msgstr "L'attribut de guilde %(attr)s est maintenant : %(new)s -- Était: %(old)s" -#: musicbot/bot.py:8668 +#: musicbot/bot.py:8759 #, python-format msgid "Channel update for: %(channel)s -- %(changes)s" msgstr "Mise à jour du canal pour: %(channel)s -- %(changes)s" @@ -2192,7 +2210,7 @@ msgstr "Création de %s" msgid "Loading config from: %s" msgstr "Chargement de la configuration depuis : %s" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2215,16 +2233,16 @@ msgstr "Erreur lors de la lecture de la configuration.\n\n" " Chaque section doit avoir au moins une option.\n" " Utilisez les options d'exemple comme modèle ou copiez-les à partir du référentiel." -#: musicbot/config.py:1113 +#: musicbot/config.py:1112 #, python-format msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." msgstr "Impossible de stocker plus de fichiers journaux %s . L'option LogsMaxKept sera limitée à la place." -#: musicbot/config.py:1121 +#: musicbot/config.py:1120 msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." msgstr "L'option de configuration LogsDateFormat est vide et cela cassera la rotation des fichiers journaux. Utiliser par défaut à la place." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2236,11 +2254,11 @@ msgstr "Erreur lors de la validation des options de configuration.\n\n" "Solution :\n" " Assurez-vous que le chemin que vous avez configuré est un chemin vers un dossier / répertoire." -#: musicbot/config.py:1149 +#: musicbot/config.py:1148 msgid "An exception was thrown while validating AudioCachePath." msgstr "Une exception a été levée lors de la validation de AudioCachePath." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2255,12 +2273,12 @@ msgstr "Erreur lors de la validation des options de configuration.\n\n" "Solution :\n" " Double vérifier que la configuration est valide, chemin d'accès au répertoire." -#: musicbot/config.py:1165 +#: musicbot/config.py:1164 #, python-format msgid "Audio Cache will be stored in: %s" msgstr "Le cache audio sera stocké dans : %s" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2273,16 +2291,16 @@ msgstr "Erreur lors de la lecture des options de configuration.\n\n" "Solution :\n" " Définissez l'option de configuration du jeton ou définissez la variable d'environnement %(env_var)s avec un jeton d'application." -#: musicbot/config.py:1197 +#: musicbot/config.py:1196 msgid "StatusMessage config option is too long, it will be limited to 128 characters." msgstr "L'option de configuration StatusMessage est trop longue, elle sera limitée à 128 caractères." -#: musicbot/config.py:1206 +#: musicbot/config.py:1205 #, python-format msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." msgstr "La vitesse de lecture par défaut doit être comprise entre 0.5 et 100.0. La valeur d'option %.3f sera limitée à la place." -#: musicbot/config.py:1216 +#: musicbot/config.py:1215 msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "Cookies are not recommended, may not be supported, and may totally break.\n" "Copying cookies from your web-browser risks exposing personal data and \n" @@ -2294,15 +2312,15 @@ msgstr "Fichier TXT de cookies détecté. MusicBot les transmettra à yt-dlp.\n" "dans le meilleur des cas, cela peut entraîner le bannissement de vos comptes !\n\n" "Vous êtes prévenu ! Bonne chance ! \\U0001F596\n" -#: musicbot/config.py:1234 +#: musicbot/config.py:1233 msgid "Validating options with service data..." msgstr "Validation des options avec les données du service..." -#: musicbot/config.py:1240 +#: musicbot/config.py:1239 msgid "Acquired owner ID via API" msgstr "ID de propriétaire acquis via l'API" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2316,11 +2334,11 @@ msgstr "Erreur lors de la récupération automatique de « OwnerID ».\n\n" "Solution :\n" " Définissez manuellement l'option de configuration « OwnerID » ou réessayez plus tard." -#: musicbot/config.py:1256 +#: musicbot/config.py:1255 msgid "MusicBot does not have a user instance, cannot proceed." msgstr "MusicBot n'a pas d'instance d'utilisateur, impossible de continuer." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2332,30 +2350,30 @@ msgstr "Erreur lors de la validation des options de configuration.\n\n" "Solution :\n" " N'utilisez pas le Bot ou l'ID de l'application dans le champ 'OwnerID'." -#: musicbot/config.py:1286 +#: musicbot/config.py:1285 msgid "Config options file not found. Checking for alternatives..." msgstr "Fichier d'options de configuration introuvable. Vérification des alternatives..." -#: musicbot/config.py:1298 +#: musicbot/config.py:1297 #, python-format msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." msgstr "Renommer %(ini_file)s en %(option_file)s, vous devriez probablement activer les extensions de fichiers." -#: musicbot/config.py:1306 +#: musicbot/config.py:1305 #, python-format msgid "Copying existing example options file: %(example_file)s" msgstr "Copie du fichier d'options d'exemple existant : %(example_file)s" -#: musicbot/config.py:1315 +#: musicbot/config.py:1314 #, python-format msgid "Generated a new %(example_file)s and copied it to %(option_file)s" msgstr "Générer un nouveau %(example_file)s et le copier vers %(option_file)s" -#: musicbot/config.py:1323 +#: musicbot/config.py:1322 msgid "Something went wrong while trying to find a config option file." msgstr "Une erreur s'est produite lors de la recherche d'un fichier d'options de configuration." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2370,7 +2388,7 @@ msgstr "Erreur lors de la localisation de la configuration.\n\n" "Solution :\n" " Vérifiez que le dossier de configuration et les fichiers existent et peuvent être lus par MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2387,43 +2405,43 @@ msgstr "Erreur lors du chargement de la configuration.\n\n" " Assurez-vous que le fichier est accessible et sans erreur.\n" " Copiez le fichier d'exemple du dépôt si tout le reste échoue." -#: musicbot/config.py:1369 +#: musicbot/config.py:1368 msgid "Dev Bug! Config option has getter that is not available." msgstr "L'option Dev Bug ! L'option de configuration a getter qui n'est pas disponible." -#: musicbot/config.py:1374 +#: musicbot/config.py:1373 msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." msgstr "Bug Dev ! L'option de configuration a un type non valide, getter et default doit être le même type." -#: musicbot/config.py:1394 +#: musicbot/config.py:1393 msgid "Option was missing previously." msgstr "L'option était manquante précédemment." -#: musicbot/config.py:1409 +#: musicbot/config.py:1408 #, python-format msgid "Config section not in parsed config! Missing: %s" msgstr "La section de configuration n'est pas dans la configuration analysée ! Manquant : %s" -#: musicbot/config.py:1414 +#: musicbot/config.py:1413 #, python-format msgid "Saved config option: %(config)s = %(value)s" msgstr "Option de configuration enregistrée : %(config)s = %(value)s" -#: musicbot/config.py:1427 +#: musicbot/config.py:1426 #, python-format msgid "Failed to save config: %s" msgstr "Impossible d'enregistrer la configuration : %s" -#: musicbot/config.py:1932 +#: musicbot/config.py:1931 msgid "Option names are not unique between INI sections! Resolver is disabled." msgstr "Les noms d'options ne sont pas uniques entre les sections INI ! Le résolveur est désactivé." -#: musicbot/config.py:2094 musicbot/permissions.py:859 +#: musicbot/config.py:2099 musicbot/permissions.py:859 #, python-format msgid "Failed to save default INI file at: %s" msgstr "Impossible d'enregistrer le fichier INI par défaut à: %s" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2436,7 +2454,7 @@ msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" "Solution :\n" " Définissez %(option)s sur un ID numérique ou mettez-le à `auto` ou `0` pour relier automatiquement le propriétaire." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2449,7 +2467,7 @@ msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" "Solution :\n" " Vérifiez le paramétrage du chemin et assurez-vous que le fichier existe et est accessible à MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2462,60 +2480,60 @@ msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" "Solution :\n" " S'assurer que tous les identifiants sont numériques, et séparés uniquement par des espaces ou des virgules." -#: musicbot/config.py:2283 +#: musicbot/config.py:2288 #, python-format msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" msgstr "L'option «%(value)s» du DebugLevel n'est pas valide, elle revient au niveau: %(fallback)s" -#: musicbot/config.py:2304 +#: musicbot/config.py:2309 #, python-format msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." msgstr "L'option [%(section)s] > %(option)s a une valeur de configuration invalide '%(value)s' en utilisant la valeur par défaut." -#: musicbot/config.py:2353 +#: musicbot/config.py:2358 #, python-format msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." msgstr "L'option [%(section)s] > %(option)s a une valeur supérieure à 100 %% (%(value)s) et sera définie à %(fallback)s à la place." -#: musicbot/config.py:2437 +#: musicbot/config.py:2442 #, python-format msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" msgstr "Renommer l'entrée du fichier INI [%(old_s)s] > %(old_o)s en [%(new_s)s] > %(new_o)s" -#: musicbot/config.py:2493 +#: musicbot/config.py:2498 msgid "Upgrading config file with renamed options..." msgstr "Mise à jour du fichier de configuration avec les options renommées..." -#: musicbot/config.py:2510 +#: musicbot/config.py:2515 msgid "Failed to upgrade config. You'll need to upgrade it manually." msgstr "Échec de la mise à jour de la configuration. Vous devrez la mettre à jour manuellement." -#: musicbot/config.py:2551 +#: musicbot/config.py:2556 #, python-format msgid "Block list file not found: %s" msgstr "Fichier de liste de blocage non trouvé : %s" -#: musicbot/config.py:2572 +#: musicbot/config.py:2577 #, python-format msgid "Could not load block list from file: %s" msgstr "Impossible de charger la liste de blocage du fichier : %s" -#: musicbot/config.py:2610 musicbot/config.py:2643 +#: musicbot/config.py:2615 musicbot/config.py:2648 #, python-format msgid "Could not update the block list file: %s" msgstr "Impossible de mettre à jour le fichier de la liste de blocage : %s" -#: musicbot/config.py:2670 +#: musicbot/config.py:2675 #, python-format msgid "Loaded User Block list with %s entries." msgstr "Liste de blocage des utilisateurs chargée avec les entrées %s." -#: musicbot/config.py:2681 +#: musicbot/config.py:2686 #, python-format msgid "We found a legacy blacklist file, it will be renamed to: %s" msgstr "Nous avons trouvé un fichier de liste noire hérité, il sera renommé en : %s" -#: musicbot/config.py:2727 +#: musicbot/config.py:2732 #, python-format msgid "Loaded a Song Block list with %s entries." msgstr "Une liste de blocs de chansons avec des entrées %s a été chargée." @@ -2539,20 +2557,20 @@ msgstr "Chargement des données de guilde pour la guilde avec ID: %(id)s/%(name msgid "An OS error prevented reading guild data file: %s" msgstr "Une erreur du système d'exploitation a empêché la lecture du fichier de données de guilde : %s" -#: musicbot/constructs.py:255 +#: musicbot/constructs.py:257 #, python-format msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" msgstr "La guilde %(id)s/%(name)s a un préfixe de commande personnalisé : %(prefix)s" -#: musicbot/constructs.py:275 +#: musicbot/constructs.py:277 msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" msgstr "Impossible d'enregistrer des données pour la guilde avec l'ID 0. C'est probablement un bug dans le code!" -#: musicbot/constructs.py:298 +#: musicbot/constructs.py:301 msgid "Could not save guild specific data due to OS Error." msgstr "Impossible d'enregistrer les données spécifiques à la guilde en raison d'une erreur d'exploitation." -#: musicbot/constructs.py:301 +#: musicbot/constructs.py:304 msgid "Failed to serialize guild specific data due to invalid data." msgstr "Impossible de sérialiser les données spécifiques à la guilde en raison de données non valides." @@ -3025,10 +3043,10 @@ msgstr "Erreur Argument de Langue : %s" msgid "Failed to load log translations for any of: [%s] in: %s" msgstr "Impossible de charger les traductions du journal pour n'importe quelle de: [%s] dans: %s" -#: musicbot/i18n.py:333 +#: musicbot/i18n.py:340 #, python-format -msgid "Failed to load discord translations for any of: [%s] in: %s" -msgstr "Impossible de charger les traductions de discord pour n'importe quelle de: [%s] dans: %s" +msgid "Failed to load discord translations for any of: [%s] guild: %s in: %s" +msgstr "Impossible de charger les traductions de discord pour n'importe quelle de: [%s] guilde: %s dans: %s" #: musicbot/json.py:14 #, python-format diff --git a/i18n/fr_FR/LC_MESSAGES/musicbot_messages.mo b/i18n/fr_FR/LC_MESSAGES/musicbot_messages.mo index 970484e8a02420d481aeb064eee7d8013258bcf8..434afe0231298f52749e0386e797301c6db00060 100644 GIT binary patch delta 10542 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 delta 9445 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 %(max)s)" msgstr "La durée de la musique dépasse la limite (%(length)s > %(max)s)" -#: musicbot/bot.py:4289 +#: musicbot/bot.py:4292 #, python-format msgid "Enqueued `%(track)s` to be played.\n" "Position in queue: %(position)s" msgstr "A mis en file d'attente `%(track)s` pour être joué.\n" "Position dans la file d'attente : %(position)s" -#: musicbot/bot.py:4297 musicbot/bot.py:4312 +#: musicbot/bot.py:4300 musicbot/bot.py:4315 msgid "Playing next!" msgstr "Joue ensuite!" -#: musicbot/bot.py:4320 +#: musicbot/bot.py:4323 #, python-format msgid "%(position)s - estimated time until playing: `%(eta)s`" msgstr "%(position)s - Temps estimé avant de jouer : `%(eta)s`" -#: musicbot/bot.py:4328 +#: musicbot/bot.py:4331 #, python-format msgid "%(position)s - cannot estimate time until playing." msgstr "%(position)s - impossible d'estimer le temps avant de jouer." -#: musicbot/bot.py:4346 +#: musicbot/bot.py:4349 msgid "Add a media URL to the queue as a Stream.\n" "The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" "You can also use non-streamed media to play it without downloading it.\n" @@ -711,26 +711,26 @@ msgstr "Ajoutez une URL de média à la file d'attente en tant que flux.\n" "Vous pouvez également utiliser un média non diffusé en continu pour le lire sans le télécharger.\n" "Remarque : FFmpeg peut abandonner le flux de manière aléatoire ou en cas d'instabilité de la connexion.\n" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "La diffusion de listes de lecture n'est pas encore prise en charge." -#: musicbot/bot.py:4419 +#: musicbot/bot.py:4422 #, python-format msgid "Now streaming track `%(track)s`" msgstr "Streaming en continu `%(track)s`" -#: musicbot/bot.py:4428 +#: musicbot/bot.py:4431 msgid " Search with service for a number of results with the search query.\n" msgstr " Recherche avec service pour un certain nombre de résultats avec la requête de recherche.\n" -#: musicbot/bot.py:4432 +#: musicbot/bot.py:4435 msgid " Search YouTube for query but get a custom number of results.\n" " Note: the double-quotes are required in this case.\n" msgstr " Recherchez sur YouTube une requête mais obtenez un nombre personnalisé de résultats.\n" " Note: les guillemets doubles sont requis dans ce cas.\n" -#: musicbot/bot.py:4438 +#: musicbot/bot.py:4441 msgid "Search a supported service and select from results to add to queue.\n" "Service and number arguments can be omitted, default number is 3 results.\n" "Select from these services:\n" @@ -744,191 +744,191 @@ msgstr "Recherchez un service pris en charge et sélectionnez à partir des rés "- sc, soundcloud\n" "- yh, yahoo\n" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Vous avez atteint la limite d'élément de votre playlist (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Veuillez spécifier une requête de recherche. Utilisez `help search` pour plus d'informations." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "Vous ne pouvez pas rechercher plus de vidéos %(max)s" -#: musicbot/bot.py:4532 +#: musicbot/bot.py:4535 msgid "Searching for videos..." msgstr "Recherche de vidéos..." -#: musicbot/bot.py:4554 +#: musicbot/bot.py:4557 #, python-format msgid "Search failed due to an error: %(error)s" msgstr "La recherche a échoué en raison d'une erreur : %(error)s" -#: musicbot/bot.py:4566 +#: musicbot/bot.py:4569 msgid "No videos found." msgstr "Aucune vidéo trouvée." -#: musicbot/bot.py:4575 +#: musicbot/bot.py:4578 msgid "To select a song, type the corresponding number." msgstr "Pour sélectionner une chanson, tapez le numéro correspondant." -#: musicbot/bot.py:4576 +#: musicbot/bot.py:4579 #, python-format msgid "Search results from %(service)s:" msgstr "Résultats de la recherche à partir de %(service)s:" -#: musicbot/bot.py:4585 +#: musicbot/bot.py:4588 #, python-format msgid "**%(index)s**. **%(track)s** | %(length)s" msgstr "**%(index)s**. **%(track)s** | %(length)s" -#: musicbot/bot.py:4594 +#: musicbot/bot.py:4597 msgid "\n" "**0**. Cancel" msgstr "\n" "**0**. Annuler" -#: musicbot/bot.py:4598 +#: musicbot/bot.py:4601 msgid "Pick a song" msgstr "Choisir une chanson" -#: musicbot/bot.py:4649 +#: musicbot/bot.py:4652 #, python-format msgid "Added song [%(track)s](%(url)s) to the queue." msgstr "Ajout de la chanson [%(track)s](%(url)s) à la file d'attente." -#: musicbot/bot.py:4663 +#: musicbot/bot.py:4666 #, python-format msgid "Result %(number)s of %(total)s: %(url)s" msgstr "Résultat %(number)s de %(total)s: %(url)s" -#: musicbot/bot.py:4713 +#: musicbot/bot.py:4716 msgid "Alright, coming right up!" msgstr "D'accord, venez tout droit !" -#: musicbot/bot.py:4725 +#: musicbot/bot.py:4728 msgid "Show information on what is currently playing." msgstr "Afficher des informations sur ce qui est en train de jouer." -#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +#: musicbot/bot.py:4780 musicbot/bot.py:6028 musicbot/bot.py:6060 msgid "[autoplaylist]" msgstr "[autoplaylist]" -#: musicbot/bot.py:4781 +#: musicbot/bot.py:4784 msgid "Now playing" msgstr "En cours de lecture" -#: musicbot/bot.py:4784 +#: musicbot/bot.py:4787 msgid "Currently streaming:" msgstr "Actuellement en streaming:" -#: musicbot/bot.py:4786 +#: musicbot/bot.py:4789 msgid "Currently playing:" msgstr "En cours de lecture :" -#: musicbot/bot.py:4792 +#: musicbot/bot.py:4795 msgid "Added By:" msgstr "Ajouté par:" -#: musicbot/bot.py:4793 +#: musicbot/bot.py:4796 #, python-format msgid "`%(user)s`" msgstr "`%(user)s`" -#: musicbot/bot.py:4797 +#: musicbot/bot.py:4800 msgid "Progress:" msgstr "Progression :" -#: musicbot/bot.py:4815 musicbot/bot.py:6004 +#: musicbot/bot.py:4818 musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "Il n'y a pas de chansons en attente ! Mettre en file d'attente quelque chose avec une commande de lecture." -#: musicbot/bot.py:4818 +#: musicbot/bot.py:4821 msgid "Tell MusicBot to join the channel you're in." msgstr "Dites à MusicBot de rejoindre la chaîne dans laquelle vous êtes." -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "Vous n'êtes pas connecté à la voix. Essayez de rejoindre un salon vocal !" -#: musicbot/bot.py:4876 +#: musicbot/bot.py:4879 #, python-format msgid "Connected to `%(channel)s`" msgstr "Connecté à `%(channel)s`" -#: musicbot/bot.py:4882 +#: musicbot/bot.py:4885 msgid "Makes MusicBot follow a user when they change channels in a server.\n" msgstr "Permet à MusicBot de suivre un utilisateur lorsqu'il change de canal sur un serveur.\n" -#: musicbot/bot.py:4905 +#: musicbot/bot.py:4908 #, python-format msgid "No longer following user `%(user)s`" msgstr "Plus utilisateur suivant `%(user)s`" -#: musicbot/bot.py:4915 +#: musicbot/bot.py:4918 #, python-format msgid "Now following user `%(user)s` between voice channels." msgstr "Maintenant, l'utilisateur suivant `%(user)s` entre les salons vocaux." -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot ne peut pas suivre un utilisateur qui n'est pas membre du serveur." -#: musicbot/bot.py:4935 +#: musicbot/bot.py:4938 #, python-format msgid "Will follow user `%(user)s` between voice channels." msgstr "Suivra l'utilisateur `%(user)s` entre les salons vocaux." -#: musicbot/bot.py:4941 +#: musicbot/bot.py:4944 msgid "Pause playback if a track is currently playing." msgstr "Mettre en pause la lecture si une piste est en cours de lecture." -#: musicbot/bot.py:4952 +#: musicbot/bot.py:4955 #, python-format msgid "Paused music in `%(channel)s`" msgstr "Musique en pause dans `%(channel)s`" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Le joueur ne joue pas." -#: musicbot/bot.py:4958 +#: musicbot/bot.py:4961 msgid "Resumes playback if the player was previously paused." msgstr "Reprend la lecture si le lecteur a été mis en pause précédemment." -#: musicbot/bot.py:4969 +#: musicbot/bot.py:4972 #, python-format msgid "Resumed music in `%(channel)s`" msgstr "Reprise de la musique dans `%(channel)s`" -#: musicbot/bot.py:4975 +#: musicbot/bot.py:4978 msgid "Resumed music queue" msgstr "Reprise de la file d'attente musicale" -#: musicbot/bot.py:4977 +#: musicbot/bot.py:4980 msgid "Player is not paused." msgstr "Le lecteur n'est pas mis en pause." -#: musicbot/bot.py:4979 +#: musicbot/bot.py:4982 msgid "Shuffle all current tracks in the queue." msgstr "Mélanger toutes les pistes en cours dans la file d'attente." -#: musicbot/bot.py:5014 +#: musicbot/bot.py:5017 msgid "Shuffled all songs in the queue." msgstr "Mélange toutes les chansons dans la file d'attente." -#: musicbot/bot.py:5016 +#: musicbot/bot.py:5019 msgid "Removes all songs currently in the queue." msgstr "Supprime toutes les chansons actuellement dans la file d'attente." -#: musicbot/bot.py:5028 +#: musicbot/bot.py:5031 msgid "Cleared all songs from the queue." msgstr "Toutes les chansons de la file d'attente ont été supprimées." -#: musicbot/bot.py:5033 +#: musicbot/bot.py:5036 msgid "Remove a song from the queue, optionally at the given queue position.\n" "If the position is omitted, the song at the end of the queue is removed.\n" "Use the queue command to find position number of your track.\n" @@ -938,41 +938,41 @@ msgstr "Supprimez une chanson de la file d'attente, éventuellement à la positi "Utilisez la commande queue pour trouver le numéro de position de votre piste.\n" "Cependant, les positions de toutes les chansons sont modifiées lorsqu'une nouvelle chanson commence à jouer.\n" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Rien dans la file d'attente à supprimer !" -#: musicbot/bot.py:5068 +#: musicbot/bot.py:5071 #, python-format msgid "Removed `%(track)s` added by `%(user)s`" msgstr "Supprimé `%(track)s` ajouté par `%(user)s`" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "Rien n'a été trouvé dans la file d'attente de l'utilisateur `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "Vous n'avez pas le droit de supprimer cette entrée de la file d'attente.\n" "Vous devez être celui qui l'a mis en file d'attente ou qui a des permissions de sauter instantanément." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Numéro d'entrée invalide. Utilisez la commande file d'attente pour trouver les positions de la file d'attente." -#: musicbot/bot.py:5105 +#: musicbot/bot.py:5108 #, python-format msgid "Removed entry `%(track)s` added by `%(user)s`" msgstr "Entrée supprimée `%(track)s` ajoutée par `%(user)s`" -#: musicbot/bot.py:5110 +#: musicbot/bot.py:5113 #, python-format msgid "Removed entry `%(track)s`" msgstr "Entrée retirée `%(track)s`" -#: musicbot/bot.py:5121 +#: musicbot/bot.py:5124 msgid "Skip or vote to skip the current playing song.\n" "Members with InstaSkip permission may use force parameter to bypass voting.\n" "If LegacySkip option is enabled, the force parameter can be ignored.\n" @@ -980,67 +980,67 @@ msgstr "Ignorez ou votez pour passer la chanson en cours de lecture.\n" "les membres avec la permission InstaSkip peuvent utiliser le paramètre de force pour contourner le vote.\n" "Si l'option LegacySkip est activée, le paramètre force peut être ignoré.\n" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Impossible de sauter ! Le joueur ne joue pas !" -#: musicbot/bot.py:5153 +#: musicbot/bot.py:5156 #, python-format msgid "The next song `%(track)s` is downloading, please wait." msgstr "La prochaine chanson `%(track)s` est en cours de téléchargement, veuillez patienter." -#: musicbot/bot.py:5161 +#: musicbot/bot.py:5164 msgid "The next song will be played shortly. Please wait." msgstr "La prochaine chanson sera jouée sous peu. Veuillez patienter." -#: musicbot/bot.py:5166 +#: musicbot/bot.py:5169 msgid "Something odd is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Quelque chose de bizarre se passe.\n" "Vous pouvez redémarrer le bot s'il ne commence pas à fonctionner." -#: musicbot/bot.py:5173 +#: musicbot/bot.py:5176 msgid "Something strange is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Quelque chose d'étrange est en train de se produire.\n" "Vous pouvez redémarrer le bot si cela ne fonctionne pas." -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "Vous n'avez pas la permission de forcer le saut d'une chanson en boucle." -#: musicbot/bot.py:5211 +#: musicbot/bot.py:5214 #, python-format msgid "Force skipped `%(track)s`." msgstr "Force ignorée `%(track)s`." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "Vous n'avez pas la permission de forcer le saut." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "Vous n'avez pas la permission de sauter une chanson en boucle." -#: musicbot/bot.py:5269 +#: musicbot/bot.py:5272 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "The vote to skip has been passed.%(next_up)s" msgstr "Votre saut pour `%(track)s` a été reconnu.\n" "Le vote à passer a été passé.%(next_up)s" -#: musicbot/bot.py:5276 +#: musicbot/bot.py:5279 msgid " Next song coming up!" msgstr " Prochaine chanson à venir !" -#: musicbot/bot.py:5293 +#: musicbot/bot.py:5296 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "Need **%(votes)s** more vote(s) to skip this song." msgstr "Votre saut pour `%(track)s` a été reconnu.\n" "Besoin de **%(votes)s** plus de votes pour sauter cette chanson." -#: musicbot/bot.py:5306 +#: musicbot/bot.py:5309 msgid "Set the output volume level of MusicBot from 1 to 100.\n" "Volume parameter allows a leading + or - for relative adjustments.\n" "The volume setting is retained until MusicBot is restarted.\n" @@ -1048,34 +1048,34 @@ msgstr "Définissez le niveau de volume de sortie de MusicBot de 1 à 100.\n" "paramètre de volume permet un + ou - premier + ou - pour des ajustements relatifs.\n" "Le réglage de volume est conservé jusqu'à ce que MusicBot soit redémarré.\n" -#: musicbot/bot.py:5323 +#: musicbot/bot.py:5326 #, python-format msgid "Current volume: `%(volume)s%%`" msgstr "Volume actuel : `%(volume)s%%`" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` n'est pas un nombre valide" -#: musicbot/bot.py:5351 +#: musicbot/bot.py:5354 #, python-format msgid "Updated volume from **%(old)d** to **%(new)d**" msgstr "Volume mis à jour de **%(old)d** à **%(new)d**" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Changement de volume déraisonnable fourni: %(old_volume)s%(adjustment)s est %(new_volume)s.\n" "Le volume ne peut être défini que de 1 à 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Volume déraisonnable fourni: %(volume)s. Fournissez une valeur comprise entre 1 et 100." -#: musicbot/bot.py:5374 +#: musicbot/bot.py:5377 msgid "Change the playback speed of the currently playing track only.\n" "The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" "Streaming playback does not support speed adjustments.\n" @@ -1083,133 +1083,133 @@ msgstr "Modifier la vitesse de lecture de la piste en cours de lecture.\n" "La vitesse doit être comprise entre 0,5 et 100. en raison des limites de ffmpeg.\n" "La lecture en continu ne prend pas en charge les réglages de vitesse.\n" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "Aucune piste n'est lue, impossible de définir la vitesse.\n" "Utilisez la commande de configuration pour définir une vitesse de lecture par défaut." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "La vitesse ne peut pas être appliquée aux médias streamés." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Vous devez fournir une vitesse à définir." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "La vitesse que vous avez fournie n'est pas valide. Utilisez un nombre entre 0,5 et 100." -#: musicbot/bot.py:5432 +#: musicbot/bot.py:5435 #, python-format msgid "Setting playback speed to `%(speed).3f` for current track." msgstr "Réglage de la vitesse de lecture à `%(speed).3f` pour la piste actuelle." -#: musicbot/bot.py:5441 +#: musicbot/bot.py:5444 msgid " Add an new alias with optional arguments.\n" msgstr " Ajouter un nouvel alias avec des arguments optionnels.\n" -#: musicbot/bot.py:5444 +#: musicbot/bot.py:5447 msgid " Remove an alias with the given name." msgstr " Supprimer un alias avec le nom donné." -#: musicbot/bot.py:5447 +#: musicbot/bot.py:5450 msgid " Reload or save aliases from/to the config file." msgstr " Recharger ou enregistrer les alias de/vers le fichier de configuration." -#: musicbot/bot.py:5451 +#: musicbot/bot.py:5454 msgid "Allows management of aliases from discord. To see aliases use the help command." msgstr "Permet de gérer les alias depuis le discord. Pour voir les alias, utilisez la commande d'aide." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Option invalide pour la commande : `%(option)s`" -#: musicbot/bot.py:5477 +#: musicbot/bot.py:5480 msgid "Aliases reloaded from config file." msgstr "Alias rechargé depuis le fichier de configuration." -#: musicbot/bot.py:5482 +#: musicbot/bot.py:5485 msgid "Aliases saved to config file." msgstr "Alias enregistrés dans le fichier de configuration." -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Échec de la sauvegarde des alias en raison d'une erreur :\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Vous devez fournir un alias et une commande à alias" -#: musicbot/bot.py:5498 +#: musicbot/bot.py:5501 #, python-format msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" msgstr "Nouvel alias ajouté. `%(alias)s` est maintenant un alias de `%(command)s`" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Vous devez fournir un nom d'alias à supprimer." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "L'alias `%(alias)s` n'existe pas." -#: musicbot/bot.py:5518 +#: musicbot/bot.py:5521 #, python-format msgid "Alias `%(alias)s` was removed." msgstr "Alias `%(alias)s` a été supprimé." -#: musicbot/bot.py:5528 +#: musicbot/bot.py:5531 msgid " Shows help text about any missing config options.\n" msgstr " Affiche le texte d'aide à propos de toutes les options de configuration manquantes.\n" -#: musicbot/bot.py:5531 +#: musicbot/bot.py:5534 msgid " Lists the names of options which have been changed since loading config file.\n" msgstr " Liste les noms des options qui ont été modifiées depuis le chargement du fichier de configuration.\n" -#: musicbot/bot.py:5534 +#: musicbot/bot.py:5537 msgid " List the available config options and their sections.\n" msgstr " Liste les options de configuration disponibles et leurs sections.\n" -#: musicbot/bot.py:5537 +#: musicbot/bot.py:5540 msgid " Reload the options.ini file from disk.\n" msgstr " Recharger le fichier options.ini à partir du disque.\n" -#: musicbot/bot.py:5540 +#: musicbot/bot.py:5543 msgid " Shows help text for a specific option.\n" msgstr " Affiche le texte d'aide pour une option spécifique.\n" -#: musicbot/bot.py:5543 +#: musicbot/bot.py:5546 msgid " Display the current value of the option.\n" msgstr " Affiche la valeur actuelle de l'option.\n" -#: musicbot/bot.py:5546 +#: musicbot/bot.py:5549 msgid " Saves the current value to the options file.\n" msgstr " Enregistre la valeur actuelle dans le fichier d'options.\n" -#: musicbot/bot.py:5549 +#: musicbot/bot.py:5552 msgid " Validates the option and sets the config for the session, but not to file.\n" msgstr " Valide l'option et définit la configuration pour la session, mais pas pour le fichier.\n" -#: musicbot/bot.py:5552 +#: musicbot/bot.py:5555 msgid " Reset the option to its default value.\n" msgstr " Réinitialiser l'option à sa valeur par défaut.\n" -#: musicbot/bot.py:5555 +#: musicbot/bot.py:5558 msgid "Manage options.ini configuration from within Discord." msgstr "Gérer la configuration options.ini à partir de Discord." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "La configuration ne peut pas utiliser les mentions du canal et de l'utilisateur en même temps." -#: musicbot/bot.py:5596 +#: musicbot/bot.py:5599 #, python-format msgid "**Missing Option:** `%(config)s`\n" "```\n" @@ -1220,22 +1220,22 @@ msgstr "**Option manquante :** `%(config)s`\n" "%(comment)s\n" "La valeur par défaut est définie à : %(default)s```\n" -#: musicbot/bot.py:5609 +#: musicbot/bot.py:5612 msgid "*All config options are present and accounted for!*" msgstr "*Toutes les options de configuration sont présentes et comptabilisées !*" -#: musicbot/bot.py:5625 +#: musicbot/bot.py:5628 msgid "No config options appear to be changed." msgstr "Aucune option de configuration ne semble être modifiée." -#: musicbot/bot.py:5627 +#: musicbot/bot.py:5630 #, python-format msgid "**Changed Options:**\n" "%(changed)s" msgstr "**Options modifiées :**\n" "%(changed)s" -#: musicbot/bot.py:5647 +#: musicbot/bot.py:5650 #, python-format msgid "## Available Options:\n" "**Editable Options:**\n" @@ -1248,51 +1248,51 @@ msgstr "## Options disponibles :\n" "**Modification manuelle uniquement :**\n" "%(manual)s" -#: musicbot/bot.py:5669 +#: musicbot/bot.py:5672 msgid "Config options reloaded from file successfully!" msgstr "Les options de configuration ont été rechargées à partir du fichier avec succès !" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Impossible de recharger la configuration en raison de l'erreur suivante :\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Impossible de résoudre le nom de la section à partir du nom de l'option. Veuillez fournir un nom de section et d'option valide." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "L'option donnée est ambiguë, veuillez fournir un nom de section." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Vous devez fournir un nom de section et un nom d'option pour cette commande." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "La section `%(section)s` n'est pas disponible.\n" "Les sections disponibles sont : %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "L'option `%(option)s` n'est pas disponible." -#: musicbot/bot.py:5733 +#: musicbot/bot.py:5736 msgid "This option can only be set by editing the config file." msgstr "Cette option ne peut être définie qu'en modifiant le fichier de configuration." -#: musicbot/bot.py:5737 +#: musicbot/bot.py:5740 #, python-format msgid "By default this option is set to: %(default)s" msgstr "Par défaut, cette option est réglée à : %(default)s" -#: musicbot/bot.py:5742 +#: musicbot/bot.py:5745 #, python-format msgid "**Option:** `%(config)s`\n" "%(comment)s\n\n" @@ -1301,27 +1301,27 @@ msgstr "**Option :** `%(config)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "L'option `%(option)s` n'est pas modifiable. Impossible d'enregistrer sur le disque." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Impossible d'enregistrer l'option : `%(option)s`" -#: musicbot/bot.py:5767 +#: musicbot/bot.py:5770 #, python-format msgid "Successfully saved the option: `%(config)s`" msgstr "Option enregistrée avec succès: `%(config)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "L'option `%(option)s` n'est pas modifiable, la valeur ne peut pas être affichée." -#: musicbot/bot.py:5784 +#: musicbot/bot.py:5787 #, python-format msgid "**Option:** `%(config)s`\n" "Current Value: `%(loaded)s`\n" @@ -1330,80 +1330,80 @@ msgstr "**Option :** `%(config)s`\n" "Valeur actuelle : `%(loaded)s`\n" "Valeur du fichier INI : `%(ini)s`" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "L'option `%(option)s` n'est pas modifiable. Impossible de mettre à jour le paramètre." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Vous devez fournir une section, une option et une valeur pour cette sous-commande." -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "L'option `%(option)s` n'a pas été mise à jour !" -#: musicbot/bot.py:5822 +#: musicbot/bot.py:5825 #, python-format msgid "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "L'option `%(config)s` a été mise à jour pour cette session.\n" "Pour sauvegarder le changement, utilisez `config save %(section)s %(option)s`" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "L'option `%(option)s` n'est pas modifiable. Impossible de réinitialiser à la valeur par défaut." -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "L'option `%(option)s` n'a pas été réinitialisée par défaut!" -#: musicbot/bot.py:5857 +#: musicbot/bot.py:5860 #, python-format msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "L'option `%(config)s` a été réinitialisée à sa valeur par défaut `%(default)s`.\n" "Pour sauvegarder le changement, utilisez `config save %(section)s %(option)s`" -#: musicbot/bot.py:5872 +#: musicbot/bot.py:5875 msgid "Deprecated command, use the config command instead." msgstr "Commande obsolète, utilisez la commande config à la place." -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "La commande d'option est obsolète, utilisez la commande config à la place." -#: musicbot/bot.py:5892 +#: musicbot/bot.py:5895 msgid "Display information about cache storage or clear cache according to configured limits.\n" "Using update option will scan the cache for external changes before displaying details." msgstr "Affichez des informations sur le stockage en cache ou effacez le cache en fonction des limites configurées.\n" "L'utilisation de l'option de mise à jour analysera le cache à la recherche de modifications externes avant d'afficher les détails." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Option non valide spécifiée, utilisez: info, mise à jour ou effacement" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Disabled" msgstr "Désactivé" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Enabled" msgstr "Activé" -#: musicbot/bot.py:5919 +#: musicbot/bot.py:5922 #, python-format msgid "%(time)s days" msgstr "%(time)s jours" -#: musicbot/bot.py:5925 musicbot/bot.py:5928 +#: musicbot/bot.py:5928 musicbot/bot.py:5931 msgid "Unlimited" msgstr "Illimité" -#: musicbot/bot.py:5933 +#: musicbot/bot.py:5936 #, python-format msgid "**Video Cache:** *%(state)s*\n" "**Storage Limit:** *%(size)s*\n" @@ -1414,40 +1414,40 @@ msgstr "**Cache Vidéo :** *%(state)s*\n" "**Limite de Temps :** *%(time)s*\n\n" "**Mise en cache Maintenant : %(used)s dans %(files)s fichier(s)." -#: musicbot/bot.py:5956 +#: musicbot/bot.py:5959 msgid "Cache has been cleared." msgstr "Le cache a été effacé." -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Échec** pour supprimer la cache, vérifiez les logs pour plus d'infos..." -#: musicbot/bot.py:5965 +#: musicbot/bot.py:5968 msgid "No cache found to clear." msgstr "Aucune cache trouvée à effacer." -#: musicbot/bot.py:5973 +#: musicbot/bot.py:5976 msgid "Display information about the current player queue.\n" "Optional page number shows later entries in the queue.\n" msgstr "Affiche des informations sur la file d'attente du joueur.\n" "Le numéro de page facultatif affiche les entrées ultérieures dans la file d'attente.\n" -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "L'argument de la page de file d'attente doit être un nombre entier." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "Le numéro de page demandé est hors limites.\n" "Il y a **%(total)s** pages." -#: musicbot/bot.py:6025 +#: musicbot/bot.py:6026 msgid "(unknown duration)" msgstr "(durée inconnue)" -#: musicbot/bot.py:6034 +#: musicbot/bot.py:6035 #, python-format msgid "Currently playing: `%(title)s`\n" "Added by: `%(user)s`\n" @@ -1456,14 +1456,14 @@ msgstr "Joue actuellement : `%(title)s`\n" "Ajouté par : `%(user)s`\n" "Progression : `[%(progress)s/%(total)s]`\n" -#: musicbot/bot.py:6064 +#: musicbot/bot.py:6065 #, python-format msgid "**Entry #%(index)s:**Title: `%(title)s`\n" "Added by: `%(user)s\n\n" msgstr "**Entrée #%(index)s:**Titre: `%(title)s`\n" "Ajouté par: `%(user)s\n\n" -#: musicbot/bot.py:6072 +#: musicbot/bot.py:6073 #, python-format msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" "Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" @@ -1472,17 +1472,17 @@ msgstr "%(progress)sIl y a `%(total)s` entrées dans la file d'attente.\n" "Voici les prochaines %(per_page)s chansons, commençant à la chanson #%(start)s\n\n" "%(tracks)s" -#: musicbot/bot.py:6085 +#: musicbot/bot.py:6086 msgid "Songs in queue" msgstr "Chansons en file d'attente" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Essayez à nouveau. MusicBot n'a pas pu faire ou obtenir une référence au message de file d'attente.\n" "Si le problème persiste, remplissez un rapport de bogue." -#: musicbot/bot.py:6156 +#: musicbot/bot.py:6157 msgid "Search for and remove bot messages and commands from the calling text channel.\n" "Optionally supply a number of messages to search through, 50 by default 500 max.\n" "This command may be slow if larger ranges are given.\n" @@ -1490,64 +1490,64 @@ msgstr "Recherchez et supprimez les messages de bot et les commandes du canal te "Optionnellement fournir un nombre de messages à rechercher, 50 par défaut 500 max.\n" "Cette commande peut être lente si de plus grandes plages sont données.\n" -#: musicbot/bot.py:6180 +#: musicbot/bot.py:6181 msgid "Invalid parameter. Please provide a number of messages to search." msgstr "Paramètre invalide. Veuillez fournir un nombre de messages à rechercher." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Impossible d'utiliser la purge sur un canal DM privé." -#: musicbot/bot.py:6222 +#: musicbot/bot.py:6223 #, python-format msgid "Cleaned up %(number)s message(s)." msgstr "Messagerie %(number)s nettoyée." -#: musicbot/bot.py:6226 +#: musicbot/bot.py:6227 msgid "Bot does not have permission to manage messages." msgstr "Le bot n'a pas la permission de gérer les messages." -#: musicbot/bot.py:6231 +#: musicbot/bot.py:6232 msgid "Dump the individual URLs of a playlist to a file." msgstr "Supprime les URLs individuelles d'une playlist dans un fichier." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "L'URL donnée n'est pas une URL valide." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Impossible d'extraire les infos de l'url d'entrée\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "Cela ne semble pas être une playlist." -#: musicbot/bot.py:6282 +#: musicbot/bot.py:6283 #, python-format msgid "Here is the playlist dump for: %(url)s" msgstr "Voici le dump de la playlist pour : %(url)s" -#: musicbot/bot.py:6292 +#: musicbot/bot.py:6293 msgid "Display your Discord User ID, or the ID of a mentioned user.\n" "This command is deprecated in favor of Developer Mode in Discord clients.\n" msgstr "Affiche votre ID d'utilisateur Discord, ou l'ID d'un utilisateur mentionné.\n" "Cette commande est obsolète en faveur du mode développeur dans les clients Discord.\n" -#: musicbot/bot.py:6307 +#: musicbot/bot.py:6308 #, python-format msgid "Your user ID is `%(id)s`" msgstr "Votre ID d'utilisateur est `%(id)s`" -#: musicbot/bot.py:6312 +#: musicbot/bot.py:6313 #, python-format msgid "The user ID for `%(username)s` is `%(id)s`" msgstr "L'ID de l'utilisateur pour `%(username)s` est `%(id)s`" -#: musicbot/bot.py:6319 +#: musicbot/bot.py:6320 msgid "List the Discord IDs for the selected category.\n" "Returns all ID data by default, but one or more categories may be selected.\n" "This command is deprecated in favor of using Developer mode in Discord clients.\n" @@ -1555,28 +1555,28 @@ msgstr "Liste les identifiants Discord pour la catégorie sélectionnée.\n" "Renvoie toutes les données d'identification par défaut, mais une ou plusieurs catégories peuvent être sélectionnées.\n" "Cette commande est dépréciée en faveur de l'utilisation du mode développeur dans les clients Discord.\n" -#: musicbot/bot.py:6341 +#: musicbot/bot.py:6342 #, python-format msgid "Valid categories: %(cats)s" msgstr "Catégories valides : %(cats)s" -#: musicbot/bot.py:6388 +#: musicbot/bot.py:6389 msgid "Here are the IDs you requested:" msgstr "Voici les identifiants que vous avez demandés :" -#: musicbot/bot.py:6395 +#: musicbot/bot.py:6396 msgid "Get a list of your permissions, or the permissions of the mentioned user." msgstr "Obtenir une liste de vos permissions, ou les permissions de l'utilisateur mentionné." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "Identifiant d'utilisateur ou surnom de serveur invalide, veuillez vérifier l'ID et réessayer." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Impossible de déterminer l'utilisateur de la discord. Réessayez." -#: musicbot/bot.py:6439 +#: musicbot/bot.py:6440 #, python-format msgid "Your command permissions in %(server)s are:\n" "```\n" @@ -1587,7 +1587,7 @@ msgstr "Vos permissions de commande dans %(server)s sont:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6448 +#: musicbot/bot.py:6449 #, python-format msgid "The command permissions for %(username)s in %(server)s are:\n" "```\n" @@ -1598,58 +1598,58 @@ msgstr "Les permissions de commandes pour %(username)s dans %(server)s sont :\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6464 +#: musicbot/bot.py:6465 msgid " Show loaded groups and list permission options.\n" msgstr " Afficher les groupes chargés et les options de permission de liste.\n" -#: musicbot/bot.py:6467 +#: musicbot/bot.py:6468 msgid " Reloads permissions from the permissions.ini file.\n" msgstr " Recharge les permissions depuis le fichier permissions.ini\n" -#: musicbot/bot.py:6470 +#: musicbot/bot.py:6471 msgid " Add new group with defaults.\n" msgstr " Ajouter un nouveau groupe par défaut.\n" -#: musicbot/bot.py:6473 +#: musicbot/bot.py:6474 msgid " Remove existing group.\n" msgstr " Supprimer le groupe existant.\n" -#: musicbot/bot.py:6476 +#: musicbot/bot.py:6477 msgid " Show help text for the permission option.\n" msgstr " Afficher le texte d'aide pour l'option de permission.\n" -#: musicbot/bot.py:6479 +#: musicbot/bot.py:6480 msgid " Show permission value for given group and permission.\n" msgstr " Afficher la valeur de la permission pour un groupe donné et une autorisation.\n" -#: musicbot/bot.py:6482 +#: musicbot/bot.py:6483 msgid " Save permissions group to file.\n" msgstr " Enregistrer le groupe de permissions dans un fichier.\n" -#: musicbot/bot.py:6485 +#: musicbot/bot.py:6486 msgid " Set permission value for the group.\n" msgstr " Définir la valeur de permission pour le groupe.\n" -#: musicbot/bot.py:6488 +#: musicbot/bot.py:6489 msgid "Manage permissions.ini configuration from within discord." msgstr "Gérer la configuration permissions.ini depuis le discord." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Les permissions ne peuvent pas utiliser les mentions de salon et d'utilisateurs en même temps." -#: musicbot/bot.py:6534 +#: musicbot/bot.py:6535 msgid "Permissions reloaded from file successfully!" msgstr "Permissions rechargées depuis le fichier avec succès !" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Impossible de recharger les autorisations en raison d'une erreur :\n" "%(raw_error)s" -#: musicbot/bot.py:6558 +#: musicbot/bot.py:6559 #, python-format msgid "## Available Groups:\n" "%(groups)s\n" @@ -1660,41 +1660,41 @@ msgstr "## Groupes disponibles :\n" "## Options disponibles :\n" "%(options)s\n" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Vous devez fournir un nom de groupe ou d'option pour cette commande." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Vous devez fournir un groupe, une option et une valeur à définir pour cette commande." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "La sous-commande %(option)s nécessite un nom de groupe et de permission." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "Le groupe `%(group)s` n'est pas disponible.\n" "Les groupes disponibles sont: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "La permission `%(option)s` n'est pas disponible." -#: musicbot/bot.py:6624 +#: musicbot/bot.py:6625 msgid "This permission can only be set by editing the permissions file." msgstr "Cette permission ne peut être définie qu'en modifiant le fichier de permissions." -#: musicbot/bot.py:6633 +#: musicbot/bot.py:6634 #, python-format msgid "By default this permission is set to: `%(value)s`" msgstr "Par défaut, cette permission est définie à : `%(value)s`" -#: musicbot/bot.py:6638 +#: musicbot/bot.py:6639 #, python-format msgid "**Permission:** `%(option)s`\n" "%(comment)s\n\n" @@ -1703,12 +1703,12 @@ msgstr "**Permission :** `%(option)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Impossible d'ajouter le groupe `%(group)s` il existe déjà." -#: musicbot/bot.py:6660 +#: musicbot/bot.py:6661 #, python-format msgid "Successfully added new group: `%(group)s`\n" "You can now customize the permissions with: `setperms set %(group)s`\n" @@ -1717,32 +1717,32 @@ msgstr "Nouveau groupe ajouté avec succès: `%(group)s`\n" "Vous pouvez maintenant personnaliser les permissions avec: `setperms set %(group)s`\n" "Assurez-vous de sauvegarder le nouveau groupe avec: `setperms save %(group)s`" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Impossible de supprimer le groupe intégré." -#: musicbot/bot.py:6677 +#: musicbot/bot.py:6678 #, python-format msgid "Successfully removed group: `%(group)s`\n" "Make sure to save this change with: `setperms save %(group)s`" msgstr "Groupe supprimé avec succès: `%(group)s`\n" "Assurez-vous de sauvegarder ce changement avec: `setperms save %(group)s`" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "Le groupe propriétaire n'est pas modifiable." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Impossible d'enregistrer le groupe: `%(group)s`" -#: musicbot/bot.py:6700 +#: musicbot/bot.py:6701 #, python-format msgid "Successfully saved the group: `%(group)s`" msgstr "Le groupe a été enregistré avec succès : `%(group)s`" -#: musicbot/bot.py:6711 +#: musicbot/bot.py:6712 #, python-format msgid "**Permission:** `%(permission)s`\n" "Current Value: `%(loaded)s`\n" @@ -1751,155 +1751,205 @@ msgstr "**Permission :** `%(permission)s`\n" "Valeur actuelle : `%(loaded)s`\n" "Valeur du fichier INI : `%(ini)s`" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Permission `%(option)s` n'a pas été mise à jour !" -#: musicbot/bot.py:6748 +#: musicbot/bot.py:6749 #, python-format msgid "Permission `%(permission)s` was updated for this session.\n" "To save the change use `setperms save %(section)s %(option)s`" msgstr "Permission `%(permission)s` a été mise à jour pour cette session.\n" "Pour enregistrer le changement, utilisez `setperms enregistrer %(section)s %(option)s`" -#: musicbot/bot.py:6765 +#: musicbot/bot.py:6766 msgid "Change the bot's username on discord.\n" "Note: The API may limit name changes to twice per hour." msgstr "Changer le nom d'utilisateur du bot sur discord.\n" "Note: L'API peut limiter les changements de nom à deux fois par heure." -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Impossible de changer le nom d'utilisateur. Avez-vous changé de nom trop de fois ?\n" "Rappelez-vous que les changements de nom sont limités à deux fois par heure.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Impossible de modifier le nom d'utilisateur en raison d'une erreur : \n" "%(raw_error)s" -#: musicbot/bot.py:6795 +#: musicbot/bot.py:6796 #, python-format msgid "Set the bot's username to `%(name)s`" msgstr "Le nom d'utilisateur du bot a été défini à `%(name)s`" -#: musicbot/bot.py:6798 +#: musicbot/bot.py:6799 msgid "Change the MusicBot's nickname." msgstr "Changez le surnom du MusicBot." -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Impossible de changer le pseudo : pas de permission." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Impossible de définir le pseudo en raison d'une erreur : \n" "%(raw_error)s" -#: musicbot/bot.py:6825 +#: musicbot/bot.py:6826 #, python-format msgid "Set the bot's nickname to `%(nick)s`" msgstr "Pseudo du bot défini à `%(nick)s`" -#: musicbot/bot.py:6832 +#: musicbot/bot.py:6833 msgid " Set a per-server command prefix." msgstr " Définissez un préfixe de commande par serveur." -#: musicbot/bot.py:6834 +#: musicbot/bot.py:6835 msgid " Clear the per-server command prefix." msgstr " Effacer le préfixe de commande par serveur." -#: musicbot/bot.py:6838 +#: musicbot/bot.py:6839 msgid "Override the default command prefix in the server.\n" "The option EnablePrefixPerGuild must be enabled first." msgstr "Remplacer le préfixe de commande par défaut sur le serveur.\n" "L'option EnablePrefixPerGuild doit d'abord être activée." -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Les émojis personnalisés doivent provenir de ce serveur pour être utilisés comme préfixes." -#: musicbot/bot.py:6866 +#: musicbot/bot.py:6867 msgid "Server command prefix is cleared." msgstr "Le préfixe de commande du serveur est effacé." -#: musicbot/bot.py:6871 +#: musicbot/bot.py:6872 #, python-format msgid "Server command prefix is now: %(prefix)s" msgstr "Le préfixe de commande du serveur est maintenant : %(prefix)s" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Le préfixe par serveur n'est pas activé !\n" "Utilisez la commande de configuration pour mettre à jour le préfixe à la place." -#: musicbot/bot.py:6885 +#: musicbot/bot.py:6886 +msgid " Show language codes available to use.\n" +msgstr " Afficher les codes de langue disponibles à utiliser.\n" + +#: musicbot/bot.py:6889 +msgid " Set the desired language for this server.\n" +msgstr " Définissez la langue souhaitée pour ce serveur.\n" + +#: musicbot/bot.py:6892 +msgid " Reset the server language to bot's default language.\n" +msgstr " Réinitialiser la langue du serveur à la langue par défaut du bot.\n" + +#: musicbot/bot.py:6895 +msgid "Manage the language used for messages in the calling server." +msgstr "Gérer la langue utilisée pour les messages dans le serveur appelant." + +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Cette commande ne peut être utilisée que dans les guildes." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Sous-commande invalide. Utilisez la commande d'aide pour plus d'informations." + +#: musicbot/bot.py:6924 +#, python-format +msgid "**Current Language:** `%(locale)s`\n" +"**Available Languages:**\n" +"```\n" +"%(languages)s```" +msgstr "**Langue actuelle :** `%(locale)s`\n" +"**Langues disponibles :**\n" +"```\n" +"%(languages)s```" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Impossible de définir la langue à `%(locale)s` il n'est pas disponible." + +#: musicbot/bot.py:6939 +#, python-format +msgid "Language for this server now set to: `%(locale)s`" +msgstr "La langue de ce serveur est maintenant définie à : `%(locale)s`" + +#: musicbot/bot.py:6947 +#, python-format +msgid "Language for this server has been reset to: `%(locale)s`" +msgstr "La langue de ce serveur a été réinitialisée à : `%(locale)s`" + +#: musicbot/bot.py:6959 msgid "Change MusicBot's avatar.\n" "Attaching a file and omitting the url parameter also works.\n" msgstr "Change l'avatar de MusicBot.\n" "Attacher un fichier et omettre le paramètre url fonctionne aussi.\n" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "Vous devez fournir une URL ou joindre un fichier." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Impossible de changer d'avatar en raison d'une erreur : \n" "%(raw_error)s" -#: musicbot/bot.py:6919 +#: musicbot/bot.py:6993 msgid "Changed the bot's avatar." msgstr "L'avatar du bot a été modifié." -#: musicbot/bot.py:6922 +#: musicbot/bot.py:6996 msgid "Force MusicBot to disconnect from the discord server." msgstr "Forcer MusicBot à se déconnecter du serveur discord." -#: musicbot/bot.py:6933 +#: musicbot/bot.py:7007 #, python-format msgid "Disconnected from server `%(guild)s`" msgstr "Déconnecté du serveur `%(guild)s`" -#: musicbot/bot.py:6948 +#: musicbot/bot.py:7022 msgid "Disconnected a playerless voice client? [BUG]" msgstr "Déconnecté un client vocal sans joueur ? [BUG]" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Pas actuellement connecté au serveur `%(guild)s`" -#: musicbot/bot.py:6960 +#: musicbot/bot.py:7034 msgid " Attempt to reload without process restart. The default option.\n" msgstr " Tentative de rechargement sans redémarrage du processus. L'option par défaut.\n" -#: musicbot/bot.py:6962 +#: musicbot/bot.py:7036 msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" msgstr " Tentative de redémarrer l'ensemble du processus MusicBot, rechargeant tout.\n" -#: musicbot/bot.py:6964 +#: musicbot/bot.py:7038 msgid " Full restart, but attempt to update pip packages before restart.\n" msgstr " Redémarrage complet, mais essayer de mettre à jour les paquets pip avant de redémarrer.\n" -#: musicbot/bot.py:6966 +#: musicbot/bot.py:7040 msgid " Full restart, but update MusicBot source code with git first.\n" msgstr " Redémarrage complet, mais mettez à jour le code source de MusicBot avec git d'abord.\n" -#: musicbot/bot.py:6968 +#: musicbot/bot.py:7042 msgid " Attempt to update all dependency and source code before fully restarting.\n" msgstr " Tentative de mettre à jour toutes les dépendances et le code source avant de redémarrer complètement.\n" -#: musicbot/bot.py:6972 +#: musicbot/bot.py:7046 msgid "Attempts to restart the MusicBot in a number of different ways.\n" "With no option supplied, a `soft` restart is implied.\n" "It can be used to remotely update a MusicBot installation, but should be used with care.\n" @@ -1909,103 +1959,103 @@ msgstr "Tente de redémarrer MusicBot de différentes manières.\n" "Il peut être utilisé pour mettre à jour à distance une installation MusicBot, mais doit être utilisé avec précaution.\n" "Si vous disposez d'un gestionnaire de services, nous vous recommandons de l'utiliser à la place de cette commande pour les redémarrages.\n" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Option non valide, utilisez une de : soft, full, upgrade, uppip ou upgit" -#: musicbot/bot.py:6999 +#: musicbot/bot.py:7073 #, python-format msgid "%(emoji)s Restarting current instance..." msgstr "%(emoji)s Redémarrage de l'instance actuelle..." -#: musicbot/bot.py:7004 +#: musicbot/bot.py:7078 #, python-format msgid "%(emoji)s Restarting bot process..." msgstr "%(emoji)s Le processus de redémarrage du bot..." -#: musicbot/bot.py:7009 +#: musicbot/bot.py:7083 #, python-format msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." msgstr "%(emoji)s va essayer de mettre à niveau les packages pip requis et de redémarrer le bot..." -#: musicbot/bot.py:7014 +#: musicbot/bot.py:7088 #, python-format msgid "%(emoji)s Will try to update bot code with git and restart the bot..." msgstr "%(emoji)s va essayer de mettre à jour le code du bot avec git et de redémarrer le bot..." -#: musicbot/bot.py:7019 +#: musicbot/bot.py:7093 #, python-format msgid "%(emoji)s Will try to upgrade everything and restart the bot..." msgstr "%(emoji)s Je vais essayer de tout mettre à niveau et de redémarrer le bot..." -#: musicbot/bot.py:7053 +#: musicbot/bot.py:7127 msgid "Disconnect from all voice channels and close the MusicBot process." msgstr "Déconnectez de tous les canaux vocaux et fermez le processus MusicBot." -#: musicbot/bot.py:7079 +#: musicbot/bot.py:7153 msgid " Leave the discord server given by name or server ID." msgstr " Laissez le serveur discord donné par le nom ou l'ID du serveur." -#: musicbot/bot.py:7083 +#: musicbot/bot.py:7157 msgid "Force MusicBot to leave the given Discord server.\n" "Names are case-sensitive, so using an ID number is more reliable.\n" msgstr "Forcer MusicBot à quitter le serveur Discord donné.\n" "Les noms sont sensibles à la casse, donc l'utilisation d'un numéro d'identification est plus fiable.\n" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Vous devez fournir un ID ou un nom." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "Aucune guilde n'a été trouvée avec l'ID ou le nom `%(input)s`" -#: musicbot/bot.py:7121 +#: musicbot/bot.py:7195 msgid "Unknown" msgstr "Inconnu" -#: musicbot/bot.py:7128 +#: musicbot/bot.py:7202 #, python-format msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" msgstr "A quitté la guilde : `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" -#: musicbot/bot.py:7138 +#: musicbot/bot.py:7212 msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." msgstr "Commande utilisée pour les tests. Elle affiche une liste de commandes qui peuvent être vérifiées par une suite de test." -#: musicbot/bot.py:7162 +#: musicbot/bot.py:7236 msgid "This command issues a log at level CRITICAL, but does nothing else.\n" "Can be used to manually pinpoint events in the MusicBot log file.\n" msgstr "Cette commande émet un journal au niveau CRITICAL, mais ne fait rien d'autre.\n" "Peut être utilisé pour identifier manuellement les événements dans le fichier journal MusicBot.\n" -#: musicbot/bot.py:7173 +#: musicbot/bot.py:7247 #, python-format msgid "Logged breakpoint with ID: %(uuid)s" msgstr "Point d’arrêt connecté avec ID: %(uuid)s" -#: musicbot/bot.py:7180 +#: musicbot/bot.py:7254 msgid " View most common types reported by objgraph.\n" msgstr " Voir les types les plus courants signalés par objgraphe.\n" -#: musicbot/bot.py:7183 +#: musicbot/bot.py:7257 msgid " View limited objgraph.show_growth() output.\n" msgstr " Voir la sortie objgraph.show_growth() limitée.\n" -#: musicbot/bot.py:7186 +#: musicbot/bot.py:7260 msgid " View most common types of leaking objects.\n" msgstr " Voir les types les plus courants d'objets fuites.\n" -#: musicbot/bot.py:7189 +#: musicbot/bot.py:7263 msgid " View typestats of leaking objects.\n" msgstr " Voir les typestats des objets fuites.\n" -#: musicbot/bot.py:7192 +#: musicbot/bot.py:7266 msgid " Evaluate the given function and arguments on objgraph.\n" msgstr " Évaluer la fonction donnée et les arguments sur objgraph.\n" -#: musicbot/bot.py:7196 +#: musicbot/bot.py:7270 msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" "You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" "Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" @@ -2013,11 +2063,11 @@ msgstr "Interagissez avec objgraph, s'il est installé, pour avoir un aperçu de "Vous pouvez passer une méthode arbitraire avec des arguments (mais pas d'espaces !) qui est membre d'objgraph.\n" "Étant donné que cette méthode évalue du code arbitraire, elle est considérée comme dangereuse comme la commande debug.\n" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Impossible d'importer `objgraph`, est-il installé ?" -#: musicbot/bot.py:7249 +#: musicbot/bot.py:7323 msgid "This command will execute arbitrary python code in the command scope.\n" "First eval() is attempted, if exceptions are thrown exec() is tried next.\n" "If eval is successful, it's return value is displayed.\n" @@ -2035,7 +2085,7 @@ msgstr "Cette commande exécutera un code Python arbitraire dans la portée de l "Cette commande peut être supprimée dans une future version et est utilisée par les développeurs pour déboguer le comportement de MusicBot.\n" "Le danger de cette commande ne peut être sous-estimé. Ne l'utilisez pas et ne lui donnez pas accès si vous ne comprenez pas les risques !\n" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -2048,65 +2098,65 @@ msgstr "Impossible d'exécuter le code de débogage :\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7320 +#: musicbot/bot.py:7394 msgid "Create 'markdown' for options, permissions, or commands from the code.\n" "The output is used to update GitHub Pages and is thus unsuitable for normal reference use." msgstr "Créer un « markdown » pour les options, les permissions ou les commandes à partir du code.\n" "La sortie est utilisée pour mettre à jour les pages GitHub et n'est donc pas appropriée pour une utilisation normale de référence." -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "La sous-commande doit être une des : %(options)s" -#: musicbot/bot.py:7387 +#: musicbot/bot.py:7461 msgid "Makes default INI files." msgstr "Fait des fichiers INI par défaut." -#: musicbot/bot.py:7410 +#: musicbot/bot.py:7486 msgid "Saved the requested INI file to disk. Go check it" msgstr "Le fichier INI demandé a été enregistré sur le disque. Allez le vérifier" -#: musicbot/bot.py:7415 +#: musicbot/bot.py:7491 msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" msgstr "Affiche la version actuelle du bot et vérifie les mises à jour de MusicBot ou des dépendances.\n" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Impossible de localiser l'exécutable git." -#: musicbot/bot.py:7473 +#: musicbot/bot.py:7549 #, python-format msgid "No updates in branch `%(branch)s` remote." msgstr "Aucune mise à jour dans la branche `%(branch)s` distante." -#: musicbot/bot.py:7478 +#: musicbot/bot.py:7554 #, python-format msgid "New commits are available in `%(branch)s` branch remote." msgstr "De nouveaux commits sont disponibles dans la branche distante `%(branch)s`." -#: musicbot/bot.py:7484 musicbot/bot.py:7527 +#: musicbot/bot.py:7560 musicbot/bot.py:7603 msgid "Error while checking, see logs for details." msgstr "Erreur lors de la vérification, voir les journaux pour plus de détails." -#: musicbot/bot.py:7518 +#: musicbot/bot.py:7594 #, python-format msgid "Update for `%(name)s` to version: `%(version)s`\n" msgstr "Mise à jour pour `%(name)s` vers la version : `%(version)s`\n" -#: musicbot/bot.py:7524 +#: musicbot/bot.py:7600 msgid "No updates for dependencies found." msgstr "Aucune mise à jour pour les dépendances trouvées." -#: musicbot/bot.py:7530 +#: musicbot/bot.py:7606 msgid "There are updates for MusicBot available for download." msgstr "Il y a des mises à jour pour MusicBot disponibles pour téléchargement." -#: musicbot/bot.py:7532 +#: musicbot/bot.py:7608 msgid "MusicBot is totally up-to-date!" msgstr "MusicBot est totalement à jour!" -#: musicbot/bot.py:7536 +#: musicbot/bot.py:7612 #, python-format msgid "%(status)s\n\n" "**Source Code Updates:**\n" @@ -2119,29 +2169,29 @@ msgstr "%(status)s\n\n" "**Mises à jour des dépendances:**\n" "%(pip_status)s" -#: musicbot/bot.py:7550 +#: musicbot/bot.py:7626 msgid "Displays the MusicBot uptime, or time since last start / restart." msgstr "Affiche le temps de disponibilité de MusicBot, ou le temps écoulé depuis le dernier démarrage / redémarrage." -#: musicbot/bot.py:7565 +#: musicbot/bot.py:7641 #, python-format msgid "%(name)s has been online for `%(time)s`" msgstr "%(name)s a été en ligne pour `%(time)s`" -#: musicbot/bot.py:7572 +#: musicbot/bot.py:7648 msgid "Display latency information for Discord API and all connected voice clients." msgstr "Affiche les informations de latence pour l'API Discord et tous les clients vocaux connectés." -#: musicbot/bot.py:7594 +#: musicbot/bot.py:7670 #, python-format msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Moyenne) dans la région: `%(region)s`\n" -#: musicbot/bot.py:7599 +#: musicbot/bot.py:7675 msgid "No voice clients connected.\n" msgstr "Aucun client vocal connecté.\n" -#: musicbot/bot.py:7604 +#: musicbot/bot.py:7680 #, python-format msgid "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" @@ -2150,47 +2200,47 @@ msgstr "**Latence de l'API:** `%(delay).0f ms`\n" "**Latency:**\n" "%(voices)s" -#: musicbot/bot.py:7612 +#: musicbot/bot.py:7688 msgid "Display API latency and Voice latency if MusicBot is connected." msgstr "Afficher la latence de l'API et la latence vocale si MusicBot est connecté." #. TRANSLATORS: short for automatic, displayed when voice region is not selected. -#: musicbot/bot.py:7628 +#: musicbot/bot.py:7704 msgid "auto" msgstr "Automatique" -#: musicbot/bot.py:7630 +#: musicbot/bot.py:7706 #, python-format msgid "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" msgstr "\n" "**Latencye vocale:** `%(delay).0f ms` (`%(average).0f ms` Moy.) dans la région `%(region)s`" -#: musicbot/bot.py:7635 +#: musicbot/bot.py:7711 #, python-format msgid "**API Latency:** `%(delay).0f ms`%(voice)s" msgstr "**Latence de l'API:** `%(delay).0f ms`%(voice)s" -#: musicbot/bot.py:7640 +#: musicbot/bot.py:7716 msgid "Display MusicBot version number in the chat." msgstr "Affiche le numéro de version de MusicBot dans le chat." -#: musicbot/bot.py:7648 +#: musicbot/bot.py:7724 #, python-format msgid "https://github.com/Just-Some-Bots/MusicBot\n" "Current version: `%(version)s`" msgstr "https://github.com/Just-Some-Bots/MusicBot\n" "Version actuelle : `%(version)s`" -#: musicbot/bot.py:7660 +#: musicbot/bot.py:7736 msgid " Update the cookies.txt file using a cookies.txt attachment." msgstr " Mettre à jour le fichier cookies.txt en utilisant une pièce jointe de cookies.txt." -#: musicbot/bot.py:7663 +#: musicbot/bot.py:7739 msgid " Enable or disable cookies.txt file without deleting it." msgstr " Activer ou désactiver le fichier cookies.txt sans le supprimer." -#: musicbot/bot.py:7667 +#: musicbot/bot.py:7743 msgid "Allows management of the cookies feature in yt-dlp.\n" "When updating cookies, you must upload a file named cookies.txt\n" "If cookies are disabled, uploading will enable the feature.\n" @@ -2210,90 +2260,90 @@ msgstr "Permet de gérer la fonctionnalité des cookies dans yt-dlp.\n" " Elle n'est pas recommandée en raison de ces risques, et vous ne devez pas utiliser cette\n" " fonctionnalité si vous ne savez pas comment éviter les risques." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookies déjà activés." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Les cookies doivent être téléchargés pour être activés. (Fichier de cookies)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Impossible d'activer les cookies en raison d'une erreur : %(raw_error)s" -#: musicbot/bot.py:7711 +#: musicbot/bot.py:7787 msgid "Cookies have been enabled." msgstr "Les cookies ont été activés." -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Impossible de renommer le fichier des cookies en raison d'une erreur : %(raw_error)s\n" "Cookies temporairement désactivés et seront réactivés au prochain redémarrage." -#: musicbot/bot.py:7726 +#: musicbot/bot.py:7802 msgid "Cookies have been disabled." msgstr "Les cookies ont été désactivés." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "Aucun téléchargement en pièce jointe n'a été trouvé, essayez à nouveau en téléchargeant un fichier de cookies." -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Erreur lors du téléchargement du fichier des cookies depuis le discord: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Impossible d'enregistrer les cookies sur le disque : %(raw_error)s" -#: musicbot/bot.py:7762 +#: musicbot/bot.py:7838 msgid "Cookies uploaded and enabled." msgstr "Cookies téléchargés et activés." -#: musicbot/bot.py:7872 +#: musicbot/bot.py:7948 msgid "You cannot use this bot in private messages." msgstr "Vous ne pouvez pas utiliser ce bot dans des messages privés." -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Cette commande n'est pas autorisée pour votre groupe de permissions : %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Cette commande nécessite d'être dans un canal vocal." -#: musicbot/bot.py:8075 +#: musicbot/bot.py:8151 #, python-format msgid "**Command:** %(name)s" msgstr "**Commande:** %(name)s" -#: musicbot/bot.py:8134 +#: musicbot/bot.py:8210 msgid "Exception Error" msgstr "Erreur d'exception" -#: musicbot/bot.py:8179 +#: musicbot/bot.py:8255 #, python-format msgid "**Example with prefix:**\n" "%(prefix)s`%(command)s ...`\n" msgstr "**Exemple avec préfixe :**\n" "%(prefix)s`%(command)s ...`\n" -#: musicbot/bot.py:8183 +#: musicbot/bot.py:8259 msgid "No description given.\n" msgstr "Aucune description donnée.\n" -#: musicbot/bot.py:8186 +#: musicbot/bot.py:8262 msgid "No usage given." msgstr "Aucune utilisation donnée." -#: musicbot/bot.py:8220 +#: musicbot/bot.py:8296 #, python-format msgid "**Example usage:**\n" "```%(usage)s```\n" @@ -2304,12 +2354,12 @@ msgstr "**Exemple d'utilisation :**\n" "%(prefix_note)s**Description:**\n" "%(desc)s" -#: musicbot/bot.py:8273 +#: musicbot/bot.py:8349 #, python-format msgid "Leaving voice channel %(channel)s due to inactivity." msgstr "Quitter le salon vocal %(channel)s en raison de l'inactivité." -#: musicbot/bot.py:8554 +#: musicbot/bot.py:8645 #, python-format msgid "Left `%(guild)s` due to bot owner not being found in it." msgstr "A gauche `%(guild)s` car le propriétaire du bot n'a pas été trouvé dedans." @@ -2493,43 +2543,43 @@ msgid "Enable automatic skip of auto playlist songs when a user plays a new song msgstr "Activez le saut automatique des chansons de la liste de lecture automatique lorsqu'un utilisateur écoute une nouvelle chanson.\n" "Cela s'applique uniquement à la chanson en cours de lecture si elle a été ajoutée par la liste de lecture automatique." -#: musicbot/config.py:469 +#: musicbot/config.py:468 msgid "Remove songs from the auto playlist if they are found in the song block list." msgstr "Retirer des chansons de la liste de lecture automatique si elles sont trouvées dans la liste des morceaux bloqués." -#: musicbot/config.py:488 +#: musicbot/config.py:487 msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" "Delay period is controlled by DeleteDelayShort and DeleteDelayLong." msgstr "Autoriser MusicBot à supprimer automatiquement les messages qu'il envoie, après un délai.\n" "La période de délai est contrôlée par DeleteDelayShort et DeleteDelayLong." -#: musicbot/config.py:498 +#: musicbot/config.py:497 msgid "Auto delete valid commands after a delay." msgstr "Supprimer automatiquement les commandes valides après un délai." -#: musicbot/config.py:507 +#: musicbot/config.py:506 msgid "Sets the short period of seconds before deleting messages.\n" "This period is used by messages that require no further interaction." msgstr "Définit la courte période de secondes avant de supprimer les messages.\n" "Cette période est utilisée par les messages qui ne nécessitent aucune autre interaction." -#: musicbot/config.py:518 +#: musicbot/config.py:517 msgid "Sets the long delay period before deleting messages.\n" "This period is used by interactive or long-winded messages, like search and help." msgstr "Définit la période de délai longue avant de supprimer les messages.\n" "Cette période est utilisée par des messages interactifs ou longs, comme la recherche et l'aide." -#: musicbot/config.py:530 +#: musicbot/config.py:529 msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." msgstr "Permettre à MusicBot d'enregistrer la file d'attente pour que les chansons en file d'attente survivent aux redémarrages." -#: musicbot/config.py:540 +#: musicbot/config.py:539 msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" "Currently this option does not apply to auto playlist or songs added to an empty queue." msgstr "Activez MusicBot pour télécharger la chanson suivante dans la file d'attente pendant la lecture d'une chanson.\n" "Actuellement, cette option ne s'applique pas à la liste de lecture automatique ou aux chansons ajoutées à une file d'attente vide." -#: musicbot/config.py:550 +#: musicbot/config.py:549 msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" "will display dynamic info about music currently being played in its status instead.\n" "Status messages may also use the following variables:\n" @@ -2553,69 +2603,69 @@ msgstr "Spécifiez un message personnalisé à utiliser comme statut du bot. Si " {p0_title} = Le titre de la piste en cours de lecture.\n" " {p0_url} = L'URL de la piste en cours de lecture." -#: musicbot/config.py:571 +#: musicbot/config.py:570 msgid "If enabled, status messages will report info on paused players." msgstr "Si cette option est activée, les messages d'état signaleront les informations sur les joueurs mis en pause." #. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. -#: musicbot/config.py:582 +#: musicbot/config.py:581 msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" msgstr "Si activé, MusicBot sauvegardera le titre de la piste dans : data/[ID du serveur]/current.txt" -#: musicbot/config.py:592 +#: musicbot/config.py:591 msgid "Allow the member who requested the song to skip it, bypassing votes." msgstr "Permettre au membre qui a demandé à la chanson de le sauter, en contournant les votes." -#: musicbot/config.py:602 +#: musicbot/config.py:601 msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" "This option can cause delay between playing songs, as the whole track must be processed." msgstr "Essaie d'utiliser ffmpeg pour obtenir des options de normalisation du volume à utiliser lors de la lecture.\n" "Cette option peut entraîner un délai entre la lecture des chansons, car la piste entière doit être traitée." -#: musicbot/config.py:612 +#: musicbot/config.py:611 msgid "Allow MusicBot to format its messages as embeds." msgstr "Permettre à MusicBot de formater ses messages en embeds." -#: musicbot/config.py:621 +#: musicbot/config.py:620 msgid "The number of entries to show per-page when using q command to list the queue." msgstr "Le nombre d'entrées à afficher par page lors de l'utilisation de la commande q pour lister la file d'attente." -#: musicbot/config.py:631 +#: musicbot/config.py:630 msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." msgstr "Activez MusicBot pour supprimer automatiquement les entrées injouables de la liste de lecture automatique." -#: musicbot/config.py:640 +#: musicbot/config.py:639 msgid "Display MusicBot config settings in the logs at startup." msgstr "Afficher les paramètres de configuration de MusicBot dans les journaux au démarrage." #. TRANSLATORS: InstaSkip should not be translated. -#: musicbot/config.py:650 +#: musicbot/config.py:649 msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." msgstr "Permettre aux utilisateurs avec la permission InstaSkip de contourner le vote et de forcer les sauts." -#: musicbot/config.py:660 +#: musicbot/config.py:659 msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." msgstr "Si activé, MusicBot quittera les serveurs si le propriétaire n'est pas dans sa liste de membres." -#: musicbot/config.py:670 +#: musicbot/config.py:669 msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" msgstr "Si activé, MusicBot autorisera les commandes à avoir plusieurs noms en utilisant les données dans: config/aliases.json" -#: musicbot/config.py:681 +#: musicbot/config.py:680 msgid "Replace MusicBot name/version in embed footer with custom text.\n" "Only applied when UseEmbeds is enabled and it is not blank." msgstr "Remplacer le nom/version de MusicBot dans le pied de page intégré par du texte personnalisé.\n" "Appliqué uniquement lorsque UseEmbeds est activé et qu'il n'est pas vide." -#: musicbot/config.py:691 +#: musicbot/config.py:690 msgid "Completely remove the footer from embeds." msgstr "Retirer complètement le pied de page des embeds." -#: musicbot/config.py:700 +#: musicbot/config.py:699 msgid "MusicBot will automatically deafen itself when entering a voice channel." msgstr "MusicBot sera automatiquement sourd quand il entrera dans un canal vocal." -#: musicbot/config.py:711 +#: musicbot/config.py:710 msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" "after waiting for a period set in LeaveInactiveVCTimeOut option.\n" "Listeners are channel members, excluding bots, who are not deafened." @@ -2623,17 +2673,17 @@ msgstr "Si activé, MusicBot quittera un canal vocal quand aucun utilisateur n' "après avoir attendu une période définie dans l'option LeaveInactiveVCTimeOut .\n" "Les auditeurs sont des membres du canal, excluant les bots, qui ne sont pas assourdis." -#: musicbot/config.py:723 +#: musicbot/config.py:722 msgid "Set a period of time to wait before leaving an inactive voice channel.\n" "You can set this to a number of seconds or phrase like: 4 hours" msgstr "Définissez une période de temps d'attente avant de quitter un canal vocal inactif.\n" "Vous pouvez définir ceci à un nombre de secondes ou une phrase comme : 4 heures" -#: musicbot/config.py:734 +#: musicbot/config.py:733 msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." msgstr "Si activé, MusicBot quittera le canal immédiatement lorsque la file d'attente est vide." -#: musicbot/config.py:744 +#: musicbot/config.py:743 msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" "You can set this to a number of seconds of phrase like: 15 minutes\n" "Set it to 0 to disable leaving in this way." @@ -2641,24 +2691,24 @@ msgstr "Lorsqu'il est mis en pause ou qu'il ne joue plus, attendez ce temps puis "Vous pouvez définir ceci à un nombre de secondes de phrase comme : 15 minutes\n" "Réglez la à 0 pour désactiver le départ de cette façon." -#: musicbot/config.py:756 +#: musicbot/config.py:755 msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." msgstr "Si activé, les utilisateurs doivent indiquer les choix de résultats de recherche en envoyant un message au lieu d'utiliser des réactions." -#: musicbot/config.py:766 +#: musicbot/config.py:765 msgid "Sets the default number of search results to fetch when using the search command without a specific number." msgstr "Définit le nombre de résultats de recherche par défaut à récupérer lors de l'utilisation de la commande de recherche sans numéro spécifique." #. TRANSLATORS: setprefix should not be translated. -#: musicbot/config.py:778 +#: musicbot/config.py:777 msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." msgstr "Autoriser MusicBot à enregistrer un préfixe de commande par serveur, et active la commande setprefix." -#: musicbot/config.py:789 +#: musicbot/config.py:788 msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." msgstr "Si activé, et plusieurs membres ajoutent des chansons, MusicBot organisera la lecture pour une chanson par membre." -#: musicbot/config.py:800 +#: musicbot/config.py:799 msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" "This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" "MusicBot must be restarted to enable network testing.\n" @@ -2668,7 +2718,7 @@ msgstr "Autoriser MusicBot à utiliser des pings temporisés pour détecter les "MusicBot doit être redémarré pour activer les tests réseau.\n" "Par défaut, cette option est désactivée." -#: musicbot/config.py:814 +#: musicbot/config.py:813 #, python-format msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" "This will contain all songs from all servers." @@ -2676,12 +2726,12 @@ msgstr "Activer l'enregistrement de toutes les chansons jouées par MusicBot dan "Cela contiendra toutes les chansons de tous les serveurs." #. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. -#: musicbot/config.py:829 +#: musicbot/config.py:828 #, python-format msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" msgstr "Activer la sauvegarde des chansons jouées par serveur dans un fichier de playlist : %(basename)s[ID du serveur]%(ext)s" -#: musicbot/config.py:845 +#: musicbot/config.py:844 msgid "Enable playback of local media files using the play command.\n" "When enabled, users can use: `play file://path/to/file.ext`\n" "to play files from the local MediaFileDirectory path." @@ -2689,11 +2739,11 @@ msgstr "Activer la lecture des fichiers médias locaux en utilisant la commande "Lorsqu'activé, les utilisateurs peuvent utiliser : `play file://path/to/file. xt`\n" "pour lire les fichiers depuis le chemin local MediaFileDirectory." -#: musicbot/config.py:858 +#: musicbot/config.py:857 msgid "Allow MusicBot to automatically unpause when play commands are used." msgstr "Permettre à MusicBot de reprendre automatiquement la pause lorsque les commandes de lecture sont utilisées." -#: musicbot/config.py:877 +#: musicbot/config.py:876 msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" "The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" "Leave blank to disable." @@ -2701,7 +2751,7 @@ msgstr "Paramètres expérimentaux de proxy HTTP/HTTPS à utiliser avec le tél "La valeur définie ici est passée à `ytdlp --proxy` et vérification d'en-tête aiohttp.\n" "Laisser vide pour désactiver." -#: musicbot/config.py:888 +#: musicbot/config.py:887 msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" "It is not typically recommended by yt-dlp to change the UA string.\n" "For examples of what you might put here, check the following two links:\n" @@ -2715,7 +2765,7 @@ msgstr "Option expérimentale pour définir un en-tête User-Agent statique en y " https://www.useragents.me/ \n" "Laisser blank to use default, dynamically generated UA strings." -#: musicbot/config.py:903 +#: musicbot/config.py:902 #, python-format msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" "When enabled, you must use the generated URL and code to authorize an account.\n" @@ -2730,7 +2780,7 @@ msgstr "Option expérimentale permettant à yt-dlp d'utiliser un compte YouTube "L'utilisation d'un compte personnel peut ne pas être recommandée.\n" "Réglez oui pour activer ou non pour désactiver." -#: musicbot/config.py:920 +#: musicbot/config.py:919 msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" "This starts the OAuth2 prompt early, rather than waiting for a song request.\n" "The URL set here should be an accessible YouTube video URL.\n" @@ -2740,31 +2790,31 @@ msgstr "URL vidéo YouTube optionnelle utilisée au démarrage pour le déclench "L'URL définie ici doit être une URL vidéo YouTube accessible.\n" "L'autorisation doit être complétée avant que le démarrage ne se poursuive lorsque cela est défini." -#: musicbot/config.py:939 +#: musicbot/config.py:938 msgid "Toggle the user block list feature, without emptying the block list." msgstr "Activer/désactiver la fonctionnalité de la liste des utilisateurs, sans vider la liste des blocs." -#: musicbot/config.py:949 +#: musicbot/config.py:948 msgid "An optional file path to a text file listing Discord User IDs, one per line." msgstr "Un chemin optionnel vers un fichier texte listant les identifiants d'utilisateur Discord, un par ligne." -#: musicbot/config.py:961 +#: musicbot/config.py:960 msgid "Enable the song block list feature, without emptying the block list." msgstr "Activer la fonctionnalité de liste de chansons bloquées, sans vider la liste de blocs." -#: musicbot/config.py:971 +#: musicbot/config.py:970 msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" "Any song title or URL that contains any line in the list will be blocked." msgstr "Un chemin d'accès facultatif vers un fichier texte qui répertorie les URL, les mots ou les phrases, un par ligne.\n" "Tout titre de chanson ou URL contenant une ligne de la liste sera bloqué." -#: musicbot/config.py:984 +#: musicbot/config.py:983 msgid "An optional path to a directory containing auto playlist files.\n" "Each file should contain a list of playable URLs or terms, one track per line." msgstr "Un chemin facultatif vers un répertoire contenant des fichiers de liste de lecture automatique.\n" "Chaque fichier doit contenir une liste d'URL ou de termes lisibles, une piste par ligne." -#: musicbot/config.py:996 +#: musicbot/config.py:995 #, python-format msgid "An optional directory path where playable media files can be stored.\n" "All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" @@ -2775,11 +2825,11 @@ msgstr "Un chemin de répertoire facultatif où les fichiers multimédias lisibl "Exemple : file://some/folder/name/file.ext\n" "Correspond à : %(path)s/some/folder/name/file.ext" -#: musicbot/config.py:1015 +#: musicbot/config.py:1014 msgid "An optional directory path where MusicBot will store long and short-term cache for playback." msgstr "Un chemin optionnel de répertoire où MusicBot stockera le cache long et court pour la lecture." -#: musicbot/config.py:1026 +#: musicbot/config.py:1025 #, python-format msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" "When disabled, only one log is kept and its contents are replaced each run.\n" @@ -2788,7 +2838,7 @@ msgstr "Configurez la rotation automatique des fichiers journaux au redémarrage "Lorsque cette option est désactivée, un seul journal est conservé et son contenu est remplacé à chaque exécution.\n" "Réglez sur 0 pour désactiver. Le nombre maximal autorisé est %(max)s." -#: musicbot/config.py:1039 +#: musicbot/config.py:1038 msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" "If left blank, a warning is logged and the default will be used instead.\n" "Learn more about time format codes from the tables and data here:\n" @@ -2798,13 +2848,13 @@ msgstr "Configurer le format de date du fichier journal utilisé lorsque LogsMax "En savoir plus sur les codes au format horaire des tables et des données ici :\n" " https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" -#: musicbot/config.py:1053 +#: musicbot/config.py:1052 msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" "This option will disable UseExperimentalEqualization option as well." msgstr "Réduit potentiellement l'utilisation du processeur, mais désactive les contrôles de volume et de vitesse.\n" "Cette option désactivera également l'option UseExperimentalEqualization ." -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2827,7 +2877,7 @@ msgstr "Erreur lors de la lecture de la configuration.\n\n" " Chaque section doit avoir au moins une option.\n" " Utilisez les options d'exemple comme modèle ou copiez-les à partir du référentiel." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2839,7 +2889,7 @@ msgstr "Erreur lors de la validation des options de configuration.\n\n" "Solution :\n" " Assurez-vous que le chemin que vous avez configuré est un chemin vers un dossier / répertoire." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2854,7 +2904,7 @@ msgstr "Erreur lors de la validation des options de configuration.\n\n" "Solution :\n" " Double vérifier que la configuration est valide, chemin d'accès au répertoire." -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2867,7 +2917,7 @@ msgstr "Erreur lors de la lecture des options de configuration.\n\n" "Solution :\n" " Définissez l'option de configuration du jeton ou définissez la variable d'environnement %(env_var)s avec un jeton d'application." -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2881,7 +2931,7 @@ msgstr "Erreur lors de la récupération automatique de « OwnerID ».\n\n" "Solution :\n" " Définissez manuellement l'option de configuration « OwnerID » ou réessayez plus tard." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2893,7 +2943,7 @@ msgstr "Erreur lors de la validation des options de configuration.\n\n" "Solution :\n" " N'utilisez pas le Bot ou l'ID de l'application dans le champ 'OwnerID'." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2908,7 +2958,7 @@ msgstr "Erreur lors de la localisation de la configuration.\n\n" "Solution :\n" " Vérifiez que le dossier de configuration et les fichiers existent et peuvent être lus par MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2925,7 +2975,7 @@ msgstr "Erreur lors du chargement de la configuration.\n\n" " Assurez-vous que le fichier est accessible et sans erreur.\n" " Copiez le fichier d'exemple du dépôt si tout le reste échoue." -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2938,7 +2988,7 @@ msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" "Solution :\n" " Définissez %(option)s sur un ID numérique ou mettez-le à `auto` ou `0` pour relier automatiquement le propriétaire." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2951,7 +3001,7 @@ msgstr "Erreur lors du chargement de la valeur de la configuration.\n\n" "Solution :\n" " Vérifiez le paramétrage du chemin et assurez-vous que le fichier existe et est accessible à MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" diff --git a/i18n/it_IT/LC_MESSAGES/musicbot_logs.mo b/i18n/it_IT/LC_MESSAGES/musicbot_logs.mo index c9f60892dabf2ee2e985cee921a770b30428fbb5..5902685d6b060d8ac7fa95db2300b9c8cfb3c171 100644 GIT binary patch delta 13911 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 diff --git a/i18n/it_IT/LC_MESSAGES/musicbot_logs.po b/i18n/it_IT/LC_MESSAGES/musicbot_logs.po index 6b9fd27f3..1233fa9b6 100644 --- a/i18n/it_IT/LC_MESSAGES/musicbot_logs.po +++ b/i18n/it_IT/LC_MESSAGES/musicbot_logs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 18:12\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:41\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -101,85 +101,85 @@ msgstr "URL già in playlist %s, ignorando" msgid "Adding new URL to playlist, %(playlist)s: %(track)s" msgstr "Aggiunta di un nuovo URL alla playlist, %(playlist)s: %(track)s" -#: musicbot/bot.py:163 +#: musicbot/bot.py:165 #, python-format msgid "Initializing MusicBot %s" msgstr "Inizializzazione MusicBot %s" -#: musicbot/bot.py:243 +#: musicbot/bot.py:245 #, python-format msgid "Loop is closed, cannot create task for: %r" msgstr "Loop è chiuso, impossibile creare task per: %r" -#: musicbot/bot.py:259 +#: musicbot/bot.py:261 #, python-format msgid "Unhandled exception for task: %r" msgstr "Eccezione non gestita per l'attività: %r" -#: musicbot/bot.py:263 +#: musicbot/bot.py:265 #, python-format msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" msgstr "Eccezione non gestita per l'attività: %(task)r -- %(raw_error)s" -#: musicbot/bot.py:308 musicbot/bot.py:330 +#: musicbot/bot.py:310 musicbot/bot.py:332 msgid "Spotify did not provide us with a token. Disabling." msgstr "Spotify non ci ha fornito un token. Disattivazione." -#: musicbot/bot.py:312 +#: musicbot/bot.py:314 msgid "Authenticated with Spotify successfully using client ID and secret." msgstr "Autenticato con Spotify con successo utilizzando l'ID client e segreto." -#: musicbot/bot.py:316 +#: musicbot/bot.py:318 #, python-format msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." msgstr "Impossibile avviare il client Spotify. Il tuo ID client e segreto sono corretti? Dettagli: %s. Continuare comunque in 5 secondi..." -#: musicbot/bot.py:324 +#: musicbot/bot.py:326 msgid "The config did not have Spotify app credentials, attempting to use guest mode." msgstr "La configurazione non ha le credenziali dell'applicazione Spotify, tentando di utilizzare la modalità ospite." -#: musicbot/bot.py:334 +#: musicbot/bot.py:336 msgid "Authenticated with Spotify successfully using guest mode." msgstr "Autenticato con Spotify con successo utilizzando la modalità ospite." -#: musicbot/bot.py:339 +#: musicbot/bot.py:341 #, python-format msgid "Could not start Spotify client using guest mode. Details: %s." msgstr "Impossibile avviare il client Spotify usando la modalità ospite. Dettagli: %s." -#: musicbot/bot.py:347 +#: musicbot/bot.py:349 msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" msgstr "Il plugin sperimentale Yt-dlp OAuth2 è abilitato. Questo potrebbe rompere in qualsiasi punto!" -#: musicbot/bot.py:354 +#: musicbot/bot.py:356 msgid "Initialized, now connecting to discord." msgstr "Inizializzato, ora si collega alla discordia." -#: musicbot/bot.py:365 +#: musicbot/bot.py:367 msgid "Network ping test is disabled via config." msgstr "Il test di rete ping è disabilitato tramite config." -#: musicbot/bot.py:369 +#: musicbot/bot.py:371 msgid "Network ping test is closing down." msgstr "Test ping di rete si sta chiudendo." -#: musicbot/bot.py:380 +#: musicbot/bot.py:382 msgid "Could not resolve ping target." msgstr "Impossibile risolvere il ping target." -#: musicbot/bot.py:410 +#: musicbot/bot.py:412 msgid "Network ping test cancelled." msgstr "Test ping di rete annullato." -#: musicbot/bot.py:424 +#: musicbot/bot.py:426 msgid "Network testing via HTTP does not have a session to borrow." msgstr "Il test di rete tramite HTTP non ha una sessione in prestito." -#: musicbot/bot.py:449 +#: musicbot/bot.py:451 msgid "Could not locate `ping` executable in your environment." msgstr "Impossibile trovare l'eseguibile `ping` nel tuo ambiente." -#: musicbot/bot.py:475 +#: musicbot/bot.py:477 #, python-format msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -190,7 +190,7 @@ msgstr "MusicBot non può trovare un percorso di comando `ping`. Tenterà invece "Dovresti abilitare il ping nel tuo ambiente di sistema o contenitore per ottenere i migliori risultati.\n" "In alternativa disabilita il controllo di rete tramite config." -#: musicbot/bot.py:485 +#: musicbot/bot.py:487 #, python-format msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -201,7 +201,7 @@ msgstr "MusicBot è stato negato il permesso di eseguire il comando `ping`. Tent "Dovresti abilitare il ping nel tuo ambiente di sistema o contenitore per ottenere i migliori risultati.\n" "In alternativa disabilita il controllo di rete tramite config." -#: musicbot/bot.py:495 +#: musicbot/bot.py:497 #, python-format msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -212,554 +212,559 @@ msgstr "Il tuo ambiente potrebbe non consentire il comando di sistema `ping`. Te "Dovresti abilitare il ping nel tuo ambiente di sistema o contenitore per ottenere i migliori risultati.\n" "In alternativa disabilita il controllo di rete tramite config." -#: musicbot/bot.py:510 +#: musicbot/bot.py:512 msgid "MusicBot detected network is available again." msgstr "MusicBot rilevato rete è nuovamente disponibile." -#: musicbot/bot.py:515 +#: musicbot/bot.py:517 msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." msgstr "VoiceClient non è connesso, in attesa di riprendere MusicPlayer..." -#: musicbot/bot.py:519 +#: musicbot/bot.py:521 #, python-format msgid "Resuming playback of player: (%(guild_id)s) %(player)r" msgstr "Riprendendo la riproduzione del giocatore: (%(guild_id)s) %(player)r" -#: musicbot/bot.py:530 +#: musicbot/bot.py:532 msgid "MusicBot detected a network outage." msgstr "MusicBot ha rilevato un'interruzione di rete." -#: musicbot/bot.py:534 +#: musicbot/bot.py:536 #, python-format msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" msgstr "Pausa MusicPlayer a causa della disponibilità della rete: (%(guild_id)s) %(player)r" -#: musicbot/bot.py:555 +#: musicbot/bot.py:557 #, python-format msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" msgstr "Alla ricerca del proprietario nella gilda: %(guild)s (voce obbligatoria: %(required)s) e ottiene: %(owner)s" -#: musicbot/bot.py:569 +#: musicbot/bot.py:571 msgid "Checking for channels to auto-join or resume..." msgstr "Controllo della presenza di canali da auto-entrare o riprendere..." -#: musicbot/bot.py:581 +#: musicbot/bot.py:583 #, python-format msgid "Guild not available, cannot auto join: %(id)s/%(name)s" msgstr "Gilda non disponibile, impossibile entrare automaticamente: %(id)s/%(name)s" -#: musicbot/bot.py:589 +#: musicbot/bot.py:591 #, python-format msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" msgstr "Trovato canale vocale riproducibile: %(channel)s nella gilda: %(guild)s" -#: musicbot/bot.py:602 +#: musicbot/bot.py:604 #, python-format msgid "Will try resuming voice session instead of Auto-Joining channel: %s" msgstr "Proverà a riprendere la sessione vocale invece di entrare automaticamente nel canale: %s" -#: musicbot/bot.py:619 +#: musicbot/bot.py:621 #, python-format msgid "Found owner in voice channel: %s" msgstr "Trovato proprietario nel canale vocale: %s" -#: musicbot/bot.py:624 +#: musicbot/bot.py:626 #, python-format msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" msgstr "Ignorando il canale riattivabile, AutoSummon al proprietario nel canale: %s" -#: musicbot/bot.py:629 +#: musicbot/bot.py:631 #, python-format msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" msgstr "Ignorando il canale Auto-Entra automatico, AutoSummon al proprietario nel canale: %s" -#: musicbot/bot.py:641 +#: musicbot/bot.py:643 #, python-format msgid "Already connected to channel: %(channel)s in guild: %(guild)s" msgstr "Già connesso al canale: %(channel)s nella gilda: %(guild)s" -#: musicbot/bot.py:650 +#: musicbot/bot.py:652 #, python-format msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" msgstr "Tentativo di entrare nel canale: %(channel)s nella gilda: %(guild)s" -#: musicbot/bot.py:657 +#: musicbot/bot.py:659 msgid "Discarding MusicPlayer and making a new one..." msgstr "Scartare MusicPlayer e crearne uno nuovo..." -#: musicbot/bot.py:677 +#: musicbot/bot.py:679 msgid "MusicBot will make a new MusicPlayer now..." msgstr "MusicBot renderà un nuovo MusicPlayer ora..." -#: musicbot/bot.py:698 +#: musicbot/bot.py:700 #, python-format msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." msgstr "Non entrando in %(guild)s/%(channel)s, non è un canale vocale supportato." -#: musicbot/bot.py:701 +#: musicbot/bot.py:703 msgid "Finished joining configured channels." msgstr "Completato il collegamento ai canali configurati." -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "Il membro non è abilitato alla voce e non può usare questo comando." -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "Non puoi usare questo comando quando non è nel canale vocale." -#: musicbot/bot.py:735 +#: musicbot/bot.py:737 msgid "Getting bot Application Info." msgstr "Ottenere bot Application Info." -#: musicbot/bot.py:760 +#: musicbot/bot.py:762 #, python-format msgid "MusicBot does not have permission to Connect in channel: %s" msgstr "MusicBot non ha il permesso di connettersi nel canale: %s" -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "MusicBot non ha il permesso di connettersi nel canale: `%(name)s`" -#: musicbot/bot.py:769 +#: musicbot/bot.py:771 #, python-format msgid "MusicBot does not have permission to Speak in channel: %s" msgstr "MusicBot non ha il permesso di parlare nel canale: %s" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "MusicBot non ha il permesso di parlare nel canale: `%(name)s`" -#: musicbot/bot.py:783 +#: musicbot/bot.py:785 #, python-format msgid "Reusing bots VoiceClient from guild: %s" msgstr "Riutilizzo di bot VoiceClient dalla gilda: %s" -#: musicbot/bot.py:788 +#: musicbot/bot.py:790 #, python-format msgid "Forcing disconnect on stale VoiceClient in guild: %s" msgstr "Forzare la disconnessione su VoiceClient obsoleto nella gilda: %s" -#: musicbot/bot.py:794 +#: musicbot/bot.py:796 msgid "Disconnect failed or was cancelled?" msgstr "Disconnessione fallita o annullata?" -#: musicbot/bot.py:802 +#: musicbot/bot.py:804 #, python-format msgid "MusicBot is unable to connect to the channel right now: %(channel)s" msgstr "MusicBot non è in grado di connettersi al canale in questo momento: %(channel)s" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "MusicBot non può connettersi al canale.\n" "Riprova più tardi, o riavvia il bot se continua." -#: musicbot/bot.py:817 +#: musicbot/bot.py:819 msgid "MusicBot has a VoiceClient now..." msgstr "MusicBot ha un VoiceClient ora..." -#: musicbot/bot.py:822 +#: musicbot/bot.py:824 #, python-format msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" msgstr "Riprovare la connessione dopo un errore di timeout (%(attempt)s) durante il tentativo di connettersi a: %(channel)s" -#: musicbot/bot.py:827 +#: musicbot/bot.py:829 msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." msgstr "Il tentativo di connessione MusicBot VoiceClient è stato annullato. Nessun riprovo." -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "La connessione MusicBot alla voce è stata annullata. Questo è strano. Forse riavviare?" -#: musicbot/bot.py:840 musicbot/bot.py:8386 +#: musicbot/bot.py:838 musicbot/bot.py:8471 +#, python-format +msgid "MusicBot is requesting to speak in channel: %s" +msgstr "MusicBot sta chiedendo di parlare nel canale: %s" + +#: musicbot/bot.py:843 musicbot/bot.py:8477 msgid "MusicBot does not have permission to speak." msgstr "MusicBot non ha il permesso di parlare." -#: musicbot/bot.py:844 musicbot/bot.py:8388 +#: musicbot/bot.py:847 musicbot/bot.py:8479 msgid "MusicBot could not request to speak." msgstr "MusicBot non può richiedere di parlare." -#: musicbot/bot.py:857 +#: musicbot/bot.py:860 #, python-format msgid "Disconnecting a MusicPlayer in guild: %s" msgstr "Disconnettere un musicista nella gilda: %s" -#: musicbot/bot.py:869 +#: musicbot/bot.py:872 msgid "Disconnecting VoiceClient before we kill the MusicPlayer." msgstr "Scollegare VoiceClient prima di uccidere MusicPlayer." -#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 -#: musicbot/bot.py:931 +#: musicbot/bot.py:880 musicbot/bot.py:899 musicbot/bot.py:911 +#: musicbot/bot.py:934 msgid "The disconnect failed or was cancelled." msgstr "La disconnessione non è riuscita o è stata annullata." -#: musicbot/bot.py:887 +#: musicbot/bot.py:890 msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." msgstr "MusicBot ha un VoiceProtocol che non è un VoiceClient. Disconnettersi comunque..." -#: musicbot/bot.py:900 +#: musicbot/bot.py:903 #, python-format msgid "Disconnecting a rogue VoiceClient in guild: %s" msgstr "Disconnettere un VoiceClient canaglia nella gilda: %s" -#: musicbot/bot.py:924 +#: musicbot/bot.py:927 msgid "Disconnecting a non-guild VoiceClient..." msgstr "Disconnettere un non-guild VoiceClient..." -#: musicbot/bot.py:934 +#: musicbot/bot.py:937 #, python-format msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" "The object is actually of type: %s" msgstr "La lista MusicBot.voice_clients contiene un oggetto non-VoiceClient?\n" "L'oggetto è in realtà di tipo: %s" -#: musicbot/bot.py:944 +#: musicbot/bot.py:947 #, python-format msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" msgstr "Abbiamo ancora un lettore musicale nella gilda (%(guild_id)s): %(player)r" -#: musicbot/bot.py:957 +#: musicbot/bot.py:960 #, python-format msgid "Guild (%(guild)s) wants a player, optional: %(player)r" msgstr "Gilda (%(guild)s) vuole un giocatore, opzionale: %(player)r" -#: musicbot/bot.py:964 +#: musicbot/bot.py:967 msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." msgstr "[BUG] MusicPlayer manca un VoiceClient in qualche modo. Probabilmente dovresti riavviare il bot." -#: musicbot/bot.py:969 +#: musicbot/bot.py:972 msgid "MusicPlayer has a VoiceClient that is not connected." msgstr "MusicPlayer ha un VoiceClient che non è connesso." -#: musicbot/bot.py:970 +#: musicbot/bot.py:973 #, python-format msgid "MusicPlayer obj: %r" msgstr "MusicPlayer obj: %r" -#: musicbot/bot.py:971 +#: musicbot/bot.py:974 #, python-format msgid "VoiceClient obj: %r" msgstr "VoiceClient obj: %r" -#: musicbot/bot.py:991 +#: musicbot/bot.py:994 #, python-format msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" msgstr "Ottenere un MusicPlayer per la gilda: %(guild)s Nel Canale: %(channel)s Crea: %(create)s Deserializza: %(serial)s" -#: musicbot/bot.py:1007 +#: musicbot/bot.py:1010 #, python-format msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" msgstr "Giocatore creato tramite deserializzazione per la gilda %(guild_id)s con voci %(number)s" -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "Il bot non è in un canale vocale.\n" "Usa il comando summon per portare il bot sul tuo canale vocale." -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "Qualcosa è sbagliato, non abbiamo ottenuto il VoiceClient." -#: musicbot/bot.py:1061 +#: musicbot/bot.py:1064 msgid "Running on_player_play" msgstr "Esecuzione on_player_play" -#: musicbot/bot.py:1136 +#: musicbot/bot.py:1139 #, python-format msgid "Setting URL history guild %(guild_id)s == %(url)s" msgstr "Impostazione della gilda cronologia URL %(guild_id)s == %(url)s" -#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#: musicbot/bot.py:1175 musicbot/bot.py:4809 #, python-format msgid "No thumbnail set for entry with URL: %s" msgstr "Nessuna miniatura impostata per la voce con URL: %s" -#: musicbot/bot.py:1184 +#: musicbot/bot.py:1187 msgid "no channel to put now playing message into" msgstr "nessun canale in cui inserire il messaggio in riproduzione" -#: musicbot/bot.py:1196 +#: musicbot/bot.py:1199 msgid "ignored now-playing message as it was already posted." msgstr "ignorato il messaggio in riproduzione ora come era già stato pubblicato." -#: musicbot/bot.py:1220 +#: musicbot/bot.py:1223 msgid "Running on_player_resume" msgstr "Esecuzione on_player_resume" -#: musicbot/bot.py:1233 +#: musicbot/bot.py:1236 msgid "Running on_player_pause" msgstr "Esecuzione on_player_pause" -#: musicbot/bot.py:1249 +#: musicbot/bot.py:1252 msgid "Running on_player_stop" msgstr "Esecuzione on_player_stop" -#: musicbot/bot.py:1259 +#: musicbot/bot.py:1262 msgid "Running on_player_finished_playing" msgstr "Esecuzione on_player_finished_playing" -#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +#: musicbot/bot.py:1264 musicbot/bot.py:1310 musicbot/bot.py:1381 msgid "Event loop is closed, nothing else to do here." msgstr "Il ciclo di eventi è chiuso, nient'altro da fare qui." -#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +#: musicbot/bot.py:1268 musicbot/bot.py:1314 musicbot/bot.py:1385 msgid "Logout under way, ignoring this event." msgstr "Logout in corso, ignorando questo evento." -#: musicbot/bot.py:1282 +#: musicbot/bot.py:1285 msgid "VoiceClient says it is not connected, nothing else we can do here." msgstr "VoiceClient dice che non è connesso, niente altro che possiamo fare qui." -#: musicbot/bot.py:1289 +#: musicbot/bot.py:1292 msgid "Player finished and queue is empty, leaving voice channel..." msgstr "Il giocatore finito e la coda è vuota, lasciando il canale vocale..." -#: musicbot/bot.py:1303 +#: musicbot/bot.py:1306 msgid "Looping over queue to expunge songs with missing author..." msgstr "Caricando sopra la coda per ripulire le canzoni con l'autore mancante..." -#: musicbot/bot.py:1342 +#: musicbot/bot.py:1345 #, python-format msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" msgstr "Autore `%(user)s` assente, saltato (cancellato) dalla coda: %(song)s" -#: musicbot/bot.py:1361 +#: musicbot/bot.py:1364 msgid "No playable songs in the Guild autoplaylist, disabling." msgstr "Nessun brano riproducibile nella lista di riproduzione automatica della gilda, disabilitata." -#: musicbot/bot.py:1366 +#: musicbot/bot.py:1369 msgid "No content in current autoplaylist. Filling with new music..." msgstr "Nessun contenuto nella playlist automatica. Riempimento con nuova musica..." -#: musicbot/bot.py:1374 +#: musicbot/bot.py:1377 msgid "Looping over player autoplaylist..." msgstr "Caricamento sopra la playlist del giocatore..." -#: musicbot/bot.py:1415 +#: musicbot/bot.py:1418 #, python-format msgid "Error while processing song \"%(url)s\": %(raw_error)s" msgstr "Errore durante l'elaborazione del brano \"%(url)s\": %(raw_error)s" -#: musicbot/bot.py:1426 +#: musicbot/bot.py:1429 #, python-format msgid "Error extracting song \"%(url)s\": %(raw_error)s" msgstr "Errore nell'estrarre il brano \"%(url)s\": %(raw_error)s" -#: musicbot/bot.py:1441 +#: musicbot/bot.py:1444 msgid "MusicBot needs to stop the auto playlist extraction and bail." msgstr "MusicBot ha bisogno di fermare l'estrazione della playlist automatica e la cauzione." -#: musicbot/bot.py:1446 +#: musicbot/bot.py:1449 msgid "MusicBot got an unhandled exception in player finished event." msgstr "MusicBot ha ottenuto un'eccezione non gestita nell'evento finito dal giocatore." -#: musicbot/bot.py:1452 +#: musicbot/bot.py:1455 #, python-format msgid "Expanding auto playlist with entries extracted from: %s" msgstr "Espandendo playlist automatica con voci estratte da: %s" -#: musicbot/bot.py:1476 +#: musicbot/bot.py:1479 #, python-format msgid "Error adding song from autoplaylist: %s" msgstr "Errore nell'aggiungere il brano dalla playlist automatica: %s" -#: musicbot/bot.py:1479 +#: musicbot/bot.py:1482 msgid "Exception data for above error:" msgstr "Eccezione di dati per l'errore sopra:" -#: musicbot/bot.py:1485 +#: musicbot/bot.py:1488 msgid "No playable songs in the autoplaylist, disabling." msgstr "Nessun brano riproducibile nella playlist automatica, disabilitato." -#: musicbot/bot.py:1505 +#: musicbot/bot.py:1508 msgid "Running on_player_entry_added" msgstr "Esecuzione su_player_entry_added" -#: musicbot/bot.py:1515 +#: musicbot/bot.py:1518 msgid "Automatically skipping auto-playlist entry for queued entry." msgstr "Saltando automaticamente la voce della scaletta automatica per la voce in coda." -#: musicbot/bot.py:1535 +#: musicbot/bot.py:1538 #, python-format msgid "MusicPlayer exception for entry: %r" msgstr "Eccezione MusicPlayer per la voce: %r" -#: musicbot/bot.py:1541 +#: musicbot/bot.py:1544 msgid "MusicPlayer exception." msgstr "Eccezione di MusicPlayer." -#: musicbot/bot.py:1565 +#: musicbot/bot.py:1568 #, python-format msgid "Auto playlist track could not be played: %r" msgstr "Impossibile riprodurre la traccia della scaletta automatica: %r" -#: musicbot/bot.py:1604 +#: musicbot/bot.py:1607 msgid "Logout under way, ignoring status update event." msgstr "Logout in corso, ignorando l'aggiornamento dello stato." -#: musicbot/bot.py:1705 +#: musicbot/bot.py:1708 #, python-format msgid "Update bot status: %(status)s -- %(activity)r" msgstr "Aggiorna stato bot: %(status)s -- %(activity)r" -#: musicbot/bot.py:1733 +#: musicbot/bot.py:1736 #, python-format msgid "Serializing queue for %s" msgstr "Serializzazione della coda per %s" -#: musicbot/bot.py:1759 +#: musicbot/bot.py:1762 #, python-format msgid "Deserializing queue for %s" msgstr "Deserializzazione della coda per %s" -#: musicbot/bot.py:1777 +#: musicbot/bot.py:1780 #, python-format msgid "Writing current song for %s" msgstr "Scrittura del brano corrente per %s" -#: musicbot/bot.py:1802 +#: musicbot/bot.py:1805 #, python-format msgid "Cannot send non-response object: %r" msgstr "Impossibile inviare l'oggetto non-risposta: %r" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "[Dev Bug] Provato a inviare un oggetto di risposta non valido." -#: musicbot/bot.py:1835 +#: musicbot/bot.py:1838 #, python-format msgid "sending embed to: %s" msgstr "invio incorporato a: %s" -#: musicbot/bot.py:1838 +#: musicbot/bot.py:1841 #, python-format msgid "sending text to: %s" msgstr "invio del testo a: %s" -#: musicbot/bot.py:1843 +#: musicbot/bot.py:1846 #, python-format msgid "Cannot send message to \"%s\", no permission" msgstr "Impossibile inviare il messaggio a \"%s\", nessun permesso" -#: musicbot/bot.py:1850 +#: musicbot/bot.py:1853 #, python-format msgid "Cannot send message to \"%s\", invalid or deleted channel" msgstr "Impossibile inviare il messaggio a \"%s\", canale eliminato o non valido" -#: musicbot/bot.py:1858 +#: musicbot/bot.py:1861 #, python-format msgid "Message is over the message size limit (%s)" msgstr "Il messaggio è sopra il limite di dimensione del messaggio (%s)" -#: musicbot/bot.py:1866 +#: musicbot/bot.py:1869 msgid "Could not send private message, sending in fallback channel instead." msgstr "Impossibile inviare un messaggio privato, inviando un canale di ripiego." -#: musicbot/bot.py:1884 +#: musicbot/bot.py:1887 #, python-format msgid "Rate limited send message, retrying in %s seconds." msgstr "Vota il messaggio di invio limitato, riprovando in %s secondi." -#: musicbot/bot.py:1890 +#: musicbot/bot.py:1893 #, python-format msgid "Cancelled message retry for: %s" msgstr "Riprova messaggio annullato per: %s" -#: musicbot/bot.py:1895 +#: musicbot/bot.py:1898 msgid "Rate limited send message, but cannot retry!" msgstr "Valuta il messaggio di invio limitato, ma non riprovare!" -#: musicbot/bot.py:1901 +#: musicbot/bot.py:1904 msgid "Failed to send message in fallback channel." msgstr "Impossibile inviare il messaggio nel canale di ripiego." -#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +#: musicbot/bot.py:1909 musicbot/bot.py:1973 musicbot/bot.py:2043 msgid "Failed to send due to an HTTP error." msgstr "Impossibile inviare a causa di un errore HTTP." -#: musicbot/bot.py:1932 +#: musicbot/bot.py:1935 #, python-format msgid "Cannot delete message \"%s\", no permission" msgstr "Impossibile eliminare il messaggio \"%s\", nessun permesso" -#: musicbot/bot.py:1937 +#: musicbot/bot.py:1940 #, python-format msgid "Cannot delete message \"%s\", message not found" msgstr "Impossibile eliminare il messaggio \"%s\", messaggio non trovato" -#: musicbot/bot.py:1955 +#: musicbot/bot.py:1958 #, python-format msgid "Rate limited message delete, retrying in %s seconds." msgstr "Valuta l'eliminazione limitata dei messaggi, riprovando in %s secondi." -#: musicbot/bot.py:1960 +#: musicbot/bot.py:1963 msgid "Rate limited message delete, but cannot retry!" msgstr "Valuta l'eliminazione del messaggio limitata, ma non riprova!" -#: musicbot/bot.py:1963 +#: musicbot/bot.py:1966 msgid "Failed to delete message" msgstr "Eliminazione del messaggio non riuscita" -#: musicbot/bot.py:1965 +#: musicbot/bot.py:1968 #, python-format msgid "Got HTTPException trying to delete message: %s" msgstr "Hai HTTPException cercando di eliminare il messaggio: %s" -#: musicbot/bot.py:2000 +#: musicbot/bot.py:2003 #, python-format msgid "Cannot edit message \"%s\", message not found" msgstr "Impossibile modificare il messaggio \"%s\", messaggio non trovato" -#: musicbot/bot.py:2004 +#: musicbot/bot.py:2007 msgid "Sending message instead" msgstr "Invio messaggio invece" -#: musicbot/bot.py:2021 +#: musicbot/bot.py:2024 #, python-format msgid "Rate limited edit message, retrying in %s seconds." msgstr "Valuta il messaggio di modifica limitato, riprovando in %s secondi." -#: musicbot/bot.py:2027 +#: musicbot/bot.py:2030 #, python-format msgid "Cancelled message edit for: %s" msgstr "Modifica messaggio annullata per: %s" -#: musicbot/bot.py:2033 +#: musicbot/bot.py:2036 msgid "Failed to edit message" msgstr "Modifica del messaggio non riuscita" -#: musicbot/bot.py:2035 +#: musicbot/bot.py:2038 #, python-format msgid "Got HTTPException trying to edit message %s to: %s" msgstr "Hai HTTPException tentato di modificare il messaggio %s a: %s" -#: musicbot/bot.py:2057 +#: musicbot/bot.py:2060 #, python-format msgid "Cancelled delete for message (ID: %(id)s): %(content)s" msgstr "Eliminazione annullata per il messaggio (ID: %(id)s): %(content)s" -#: musicbot/bot.py:2119 +#: musicbot/bot.py:2122 #, python-format msgid "Caught a signal from the OS: %s" msgstr "Ricevuto un segnale dal sistema operativo: %s" -#: musicbot/bot.py:2123 +#: musicbot/bot.py:2126 msgid "Disconnecting and closing down MusicBot..." msgstr "Scollegare e chiudere MusicBot..." -#: musicbot/bot.py:2126 +#: musicbot/bot.py:2129 msgid "Exception thrown while handling interrupt signal!" msgstr "Eccezione lanciata durante la gestione del segnale di interruzione!" -#: musicbot/bot.py:2140 +#: musicbot/bot.py:2143 msgid "MusicBot is now doing shutdown steps..." msgstr "MusicBot sta ora facendo passi di arresto..." -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -775,103 +780,103 @@ msgstr "Accesso API Discord non riuscito!\n\n" " Assicurati di aver impostato il token corretto nella tua configurazione.\n" " Controlla lo stato dell'API sul sito ufficiale: discordstatus.com" -#: musicbot/bot.py:2161 +#: musicbot/bot.py:2164 msgid "Waiting for download threads to finish up..." msgstr "In attesa che le discussioni di download finiscano..." -#: musicbot/bot.py:2187 +#: musicbot/bot.py:2190 #, python-format msgid "Will wait for task: %(name)s (%(func)s)" msgstr "Attenderà il compito: %(name)s (%(func)s)" -#: musicbot/bot.py:2194 +#: musicbot/bot.py:2197 #, python-format msgid "Will try to cancel task: %(name)s (%(func)s)" msgstr "Cercherà di annullare l'attività: %(name)s (%(func)s)" -#: musicbot/bot.py:2202 +#: musicbot/bot.py:2205 msgid "Awaiting pending tasks..." msgstr "In attesa di attività..." -#: musicbot/bot.py:2208 +#: musicbot/bot.py:2211 msgid "Closing HTTP Connector." msgstr "Chiusura Connettore HTTP." -#: musicbot/bot.py:2214 +#: musicbot/bot.py:2217 msgid "Closing aiohttp session." msgstr "Chiusura sessione aiohttp." -#: musicbot/bot.py:2226 +#: musicbot/bot.py:2229 msgid "Logout has been called." msgstr "Il logout è stato chiamato." -#: musicbot/bot.py:2238 +#: musicbot/bot.py:2241 #, python-format msgid "Exception in %(event)s:\n" "%(error)s" msgstr "Eccezione in %(event)s:\n" "%(error)s" -#: musicbot/bot.py:2254 +#: musicbot/bot.py:2257 #, python-format msgid "Exception in %s" msgstr "Eccezione in %s" -#: musicbot/bot.py:2261 +#: musicbot/bot.py:2264 msgid "MusicBot resumed a session with discord." msgstr "MusicBot ha ripreso una sessione con discord." -#: musicbot/bot.py:2278 +#: musicbot/bot.py:2281 msgid "Finish on_ready" msgstr "Termina su_pronto" -#: musicbot/bot.py:2285 +#: musicbot/bot.py:2288 msgid "Logged in, now getting MusicBot ready..." msgstr "Accesso effettuato, ora ottenendo MusicBot pronto..." -#: musicbot/bot.py:2288 +#: musicbot/bot.py:2291 msgid "ClientUser is somehow none, we gotta bail..." msgstr "ClientUser è in qualche modo nessuno, abbiamo ottenuto la bail..." -#: musicbot/bot.py:2297 +#: musicbot/bot.py:2300 #, python-format msgid "MusicBot: %(id)s/%(name)s#%(desc)s" msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" -#: musicbot/bot.py:2308 +#: musicbot/bot.py:2311 #, python-format msgid "Owner: %(id)s/%(name)s#%(desc)s\n" msgstr "Proprietario: %(id)s/%(name)s#%(desc)s\n" -#: musicbot/bot.py:2316 musicbot/bot.py:2343 +#: musicbot/bot.py:2319 musicbot/bot.py:2346 msgid "Guild List:" msgstr "Lista Gilda:" -#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#: musicbot/bot.py:2323 musicbot/bot.py:2349 musicbot/bot.py:8663 #, python-format msgid " - %s" msgstr " - %s" -#: musicbot/bot.py:2329 +#: musicbot/bot.py:2332 #, python-format msgid "Left %s due to bot owner not found" msgstr "Sinistra %s a causa del proprietario del bot non trovato" -#: musicbot/bot.py:2334 +#: musicbot/bot.py:2337 #, python-format msgid "Not proceeding with checks in %s servers due to unavailability" msgstr "Non procedere con i controlli nei server %s a causa di indisponibilità" -#: musicbot/bot.py:2340 +#: musicbot/bot.py:2343 #, python-format msgid "Owner could not be found on any guild (id: %s)\n" msgstr "Il proprietario non può essere trovato in nessuna gilda (id: %s)\n" -#: musicbot/bot.py:2349 +#: musicbot/bot.py:2352 msgid "Owner unknown, bot is not on any guilds." msgstr "Proprietario sconosciuto, bot non è su alcuna gilda." -#: musicbot/bot.py:2353 +#: musicbot/bot.py:2356 #, python-format msgid "To make the bot join a guild, paste this link in your browser. \n" "Note: You should be logged into your main account and have \n" @@ -882,53 +887,53 @@ msgstr "Per far entrare il bot in una gilda, incolla questo link nel tuo browser "per gestire i server nella gilda che vuoi entrare nel bot.\n" " %s" -#: musicbot/bot.py:2370 +#: musicbot/bot.py:2373 #, python-format msgid "Got None for bound channel with ID: %d" msgstr "Non c'è nessuno per il canale collegato con ID: %d" -#: musicbot/bot.py:2376 +#: musicbot/bot.py:2379 #, python-format msgid "Cannot bind to non Messageable channel with ID: %d" msgstr "Impossibile collegare al canale non Messaggiabile con ID: %d" -#: musicbot/bot.py:2390 +#: musicbot/bot.py:2393 msgid "Bound to text channels:" msgstr "Legato ai canali di testo:" -#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#: musicbot/bot.py:2407 musicbot/bot.py:2457 #, python-format msgid " - %(guild)s/%(channel)s" msgstr " - %(guild)s/%(channel)s" -#: musicbot/bot.py:2408 musicbot/bot.py:2410 +#: musicbot/bot.py:2411 musicbot/bot.py:2413 msgid "Not bound to any text channels" msgstr "Non associato a nessun canale di testo" -#: musicbot/bot.py:2421 +#: musicbot/bot.py:2424 #, python-format msgid "Got None for auto join channel with ID: %d" msgstr "Non c'è nessuno per entrare automaticamente nel canale con ID: %d" -#: musicbot/bot.py:2427 +#: musicbot/bot.py:2430 #, python-format msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" msgstr "Impossibile entrare automaticamente in un canale Privato/Non-Gilda con ID: %d" -#: musicbot/bot.py:2435 +#: musicbot/bot.py:2438 #, python-format msgid "Cannot auto join to non-connectable channel with ID: %d" msgstr "Impossibile entrare automaticamente nel canale non connettibile con ID: %d" -#: musicbot/bot.py:2451 +#: musicbot/bot.py:2454 msgid "Auto joining voice channels:" msgstr "Collegamento automatico canali vocali:" -#: musicbot/bot.py:2459 musicbot/bot.py:2462 +#: musicbot/bot.py:2462 musicbot/bot.py:2465 msgid "Not auto joining any voice channels" msgstr "Non si unisce automaticamente a nessun canale vocale" -#: musicbot/bot.py:2475 +#: musicbot/bot.py:2478 #, python-format msgid "Detected missing config options!\n\n" "Problem:\n" @@ -949,340 +954,340 @@ msgstr "Rilevato le opzioni di configurazione mancanti!\n\n" " Copia nuove opzioni dal file delle opzioni di esempio.\n" " Oppure usa il comando di configurazione per impostarli e salvarli.\n\n" -#: musicbot/bot.py:2504 +#: musicbot/bot.py:2507 #, python-format msgid "Event on_ready has fired %s times" msgstr "L'evento on_ready ha sparato %s volte" -#: musicbot/bot.py:2520 +#: musicbot/bot.py:2523 msgid "Getting application info." msgstr "Ottenere informazioni sull'applicazione." -#: musicbot/bot.py:2538 +#: musicbot/bot.py:2541 msgid "Ensuring data folders exist" msgstr "Assicurare l'esistenza di cartelle dati" -#: musicbot/bot.py:2553 +#: musicbot/bot.py:2556 msgid "Validating config" msgstr "Convalida configurazione" -#: musicbot/bot.py:2556 +#: musicbot/bot.py:2559 msgid "Validating permissions config" msgstr "Convalida configurazione permessi" -#: musicbot/bot.py:2566 +#: musicbot/bot.py:2569 msgid "Disabled" msgstr "Disabilitato" -#: musicbot/bot.py:2566 +#: musicbot/bot.py:2569 msgid "Enabled" msgstr "Abilitato" -#: musicbot/bot.py:2569 +#: musicbot/bot.py:2572 msgid "Options:" msgstr "Opzione:" -#: musicbot/bot.py:2571 +#: musicbot/bot.py:2574 #, python-format msgid " Command prefix: %s" msgstr " Prefisso dei comandi: %s" -#: musicbot/bot.py:2572 +#: musicbot/bot.py:2575 #, python-format msgid " Default volume: %d%%" msgstr " Volume predefinito: %d%%" -#: musicbot/bot.py:2574 +#: musicbot/bot.py:2577 #, python-format msgid " Skip threshold: %(num)d votes or %(percent).0f%%" msgstr " Salta soglia: %(num)d voti o %(percent).0f%%" -#: musicbot/bot.py:2581 +#: musicbot/bot.py:2584 #, python-format msgid " Now Playing @mentions: %s" msgstr " Riproduzione Di @mentions: %s" -#: musicbot/bot.py:2584 +#: musicbot/bot.py:2587 #, python-format msgid " Auto-Summon: %s" msgstr " Auto-Evocazione: %s" -#: musicbot/bot.py:2586 +#: musicbot/bot.py:2589 #, python-format msgid " Auto-Playlist: %(status)s (order: %(order)s)" msgstr " Scaletta Automatica: %(status)s (ordine: %(order)s)" -#: musicbot/bot.py:2589 +#: musicbot/bot.py:2592 msgid "random" msgstr "casuale" -#: musicbot/bot.py:2589 +#: musicbot/bot.py:2592 msgid "sequential" msgstr "sequenziale" -#: musicbot/bot.py:2594 +#: musicbot/bot.py:2597 #, python-format msgid " Auto-Pause: %s" msgstr " Auto-Pausa: %s" -#: musicbot/bot.py:2596 +#: musicbot/bot.py:2599 #, python-format msgid " Delete Messages: %s" msgstr " Elimina Messaggi: %s" -#: musicbot/bot.py:2601 +#: musicbot/bot.py:2604 #, python-format msgid " Delete Invoking: %s" msgstr " Elimina Invoking: %s" -#: musicbot/bot.py:2605 +#: musicbot/bot.py:2608 #, python-format msgid " Delete Now Playing: %s" msgstr " Elimina In Riproduzione: %s" -#: musicbot/bot.py:2608 +#: musicbot/bot.py:2611 #, python-format msgid " Debug Mode: %s" msgstr " Modalità Debug: %s" -#: musicbot/bot.py:2610 +#: musicbot/bot.py:2613 #, python-format msgid " Downloaded songs will be %s" msgstr " I brani scaricati saranno %s" -#: musicbot/bot.py:2614 +#: musicbot/bot.py:2617 #, python-format msgid " Delete if unused for %d days" msgstr " Elimina se non utilizzato per %d giorni" -#: musicbot/bot.py:2617 +#: musicbot/bot.py:2620 #, python-format msgid " Delete if size exceeds %s" msgstr " Elimina se la dimensione supera %s" -#: musicbot/bot.py:2620 +#: musicbot/bot.py:2623 #, python-format msgid " Status message: %s" msgstr " Messaggio di stato: %s" -#: musicbot/bot.py:2622 +#: musicbot/bot.py:2625 #, python-format msgid " Write current songs to file: %s" msgstr " Scrivi i brani attuali sul file: %s" -#: musicbot/bot.py:2626 +#: musicbot/bot.py:2629 #, python-format msgid " Author insta-skip: %s" msgstr " Autore insta-skip: %s" -#: musicbot/bot.py:2629 +#: musicbot/bot.py:2632 #, python-format msgid " Embeds: %s" msgstr " Embeds: %s" -#: musicbot/bot.py:2631 +#: musicbot/bot.py:2634 #, python-format msgid " Spotify integration: %s" msgstr " Integrazione Spotify: %s" -#: musicbot/bot.py:2634 +#: musicbot/bot.py:2637 #, python-format msgid " Legacy skip: %s" msgstr " Salto legacy: %s" -#: musicbot/bot.py:2636 +#: musicbot/bot.py:2639 #, python-format msgid " Leave non owners: %s" msgstr " Lascia non proprietari: %s" -#: musicbot/bot.py:2640 +#: musicbot/bot.py:2643 #, python-format msgid " Leave inactive VC: %s" msgstr " Lascia Vc inattivo: %s" -#: musicbot/bot.py:2645 +#: musicbot/bot.py:2648 #, python-format msgid " Timeout: %s seconds" msgstr " Timeout: %s secondi" -#: musicbot/bot.py:2649 +#: musicbot/bot.py:2652 #, python-format msgid " Leave at song end/empty queue: %s" msgstr " Abbandona alla coda fine/vuota: %s" -#: musicbot/bot.py:2653 +#: musicbot/bot.py:2656 #, python-format msgid " Leave when player idles: %s" msgstr " Abbandona quando il giocatore è inattivo: %s" -#: musicbot/bot.py:2657 +#: musicbot/bot.py:2660 #, python-format msgid " Timeout: %d seconds" msgstr " Timeout: %d secondi" -#: musicbot/bot.py:2658 +#: musicbot/bot.py:2661 #, python-format msgid " Self Deafen: %s" msgstr " Self Deafen: %s" -#: musicbot/bot.py:2660 +#: musicbot/bot.py:2663 #, python-format msgid " Per-server command prefix: %s" msgstr " Prefisso di comando per server: %s" -#: musicbot/bot.py:2663 +#: musicbot/bot.py:2666 #, python-format msgid " Search List: %s" msgstr " Elenco Di Ricerca: %s" -#: musicbot/bot.py:2665 +#: musicbot/bot.py:2668 #, python-format msgid " Round Robin Queue: %s" msgstr " Coda Round Robin: %s" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "La canzone richiesta `%(subject)s` è bloccata dalla lista dei brani." -#: musicbot/bot.py:2706 +#: musicbot/bot.py:2709 msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." msgstr "Tentativo di gestire l'inattività del canale vocale, ma Bot non è in voce..." -#: musicbot/bot.py:2713 +#: musicbot/bot.py:2716 #, python-format msgid "Channel activity already waiting in guild: %s" msgstr "Attività canale già in attesa nella gilda: %s" -#: musicbot/bot.py:2723 +#: musicbot/bot.py:2726 #, python-format msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" msgstr "Attività del canale in attesa di %(time)d secondi per lasciare il canale: %(channel)s" -#: musicbot/bot.py:2738 +#: musicbot/bot.py:2741 #, python-format msgid "Channel activity timer for %s has expired. Disconnecting." msgstr "Il timer di attività del canale per %s è scaduto. Disconnessione." -#: musicbot/bot.py:2744 +#: musicbot/bot.py:2747 #, python-format msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" msgstr "Timer attività canale annullato per: %(channel)s in %(guild)s" -#: musicbot/bot.py:2772 +#: musicbot/bot.py:2775 #, python-format msgid "Ignoring player inactivity in auto-joined channel: %s" msgstr "Ignorare l'inattività del giocatore nel canale auto-entrato: %s" -#: musicbot/bot.py:2779 +#: musicbot/bot.py:2782 #, python-format msgid "Player activity timer already waiting in guild: %s" msgstr "Timer attività giocatore già in attesa nella gilda: %s" -#: musicbot/bot.py:2787 +#: musicbot/bot.py:2790 #, python-format msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" msgstr "Timer attività giocatore in attesa di %(time)d secondi per lasciare il canale: %(channel)s" -#: musicbot/bot.py:2799 +#: musicbot/bot.py:2802 #, python-format msgid "Player activity timer for %s has expired. Disconnecting." msgstr "Il timer di attività del giocatore per %s è scaduto. Disconnessione." -#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#: musicbot/bot.py:2808 musicbot/bot.py:2813 #, python-format msgid "Player activity timer canceled for: %(channel)s in %(guild)s" msgstr "Timer attività giocatore annullato per: %(channel)s in %(guild)s" -#: musicbot/bot.py:2827 +#: musicbot/bot.py:2830 msgid "Player activity timer is being reset." msgstr "Il timer dell'attività del giocatore è in fase di ripristino." -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "Comando inesistente" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "È necessario menzionare un utente o fornire il loro numero di identità." -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "Sottocomando fornito non valido. Usa `help blockuser` per esempi di utilizzo." -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBot non ha trovato gli utenti specificati." -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "Il proprietario non può essere aggiunto all'elenco dei blocchi." -#: musicbot/bot.py:3043 +#: musicbot/bot.py:3046 #, python-format msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" msgstr "Non aggiungere l'utente alla lista di blocchi, già bloccato: %(id)s/%(name)s" -#: musicbot/bot.py:3052 +#: musicbot/bot.py:3055 #, python-format msgid "Not removing user from block list, not listed: %(id)s/%(name)s" msgstr "Non rimuovere l'utente dalla lista dei blocchi, non elencato: %(id)s/%(name)s" -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "Non è possibile aggiungere gli utenti elencati, sono già aggiunti." -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "Devi fornire un oggetto del brano se nessuna canzone è attualmente in riproduzione." -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "Sottocomando fornito non valido. Usa `help blocksong` per esempi di utilizzo." -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "L'oggetto `%(subject)s` è già nella lista dei brani." -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "L'oggetto non è nell'elenco dei brani e non può essere rimosso." -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "Sottocomando fornito non valido. Usa `help autoplaylist` per esempi di utilizzo." -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "Il link del brano fornito non è valido" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "La coda è vuota. Aggiungi alcuni brani con un comando di riproduzione!" -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "Questo brano è già nella playlist automatica." -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "Questa canzone non è ancora nella playlist automatica." -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "È necessario fornire un nome file playlist." -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "Non sei autorizzato a richiedere playlist" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "La playlist ha troppe voci (%(songs)s ma il massimo è %(max)s)" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" @@ -1291,612 +1296,625 @@ msgstr "Le voci della playlist supereranno il limite della tua coda.\n" "Ci sono %(songs)s nella lista, e %(queued)s già in coda.\n" "Il limite è %(max)s per il tuo gruppo." -#: musicbot/bot.py:3471 +#: musicbot/bot.py:3474 msgid "Ignoring auto-pause due to network outage." msgstr "Ignorare la pausa automatica a causa dell'interruzione della rete." -#: musicbot/bot.py:3476 +#: musicbot/bot.py:3479 msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." msgstr "MusicPlayer non ha VoiceClient o non ha dati di canale, non è possibile elaborare la pausa automatica." -#: musicbot/bot.py:3487 +#: musicbot/bot.py:3490 msgid "Already processing auto-pause, ignoring this event." msgstr "Elaborazione della pausa automatica, ignorando questo evento." -#: musicbot/bot.py:3495 +#: musicbot/bot.py:3498 #, python-format msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" msgstr "%sVoiceClient non connesso, in attesa di %s secondi per gestire la pausa automatica nella gilda: %s" -#: musicbot/bot.py:3503 +#: musicbot/bot.py:3506 msgid "Auto-pause waiting was cancelled." msgstr "Auto-pausa attesa è stata annullata." -#: musicbot/bot.py:3510 +#: musicbot/bot.py:3513 msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." msgstr "Un nuovo MusicPlayer è in fase di connessione, ignorando il vecchio evento di pausa automatica." -#: musicbot/bot.py:3526 +#: musicbot/bot.py:3529 #, python-format msgid "Playing in an empty voice channel, running auto pause for guild: %s" msgstr "Riproduzione in un canale vocale vuoto, in pausa automatica per gilda: %s" -#: musicbot/bot.py:3533 +#: musicbot/bot.py:3536 #, python-format msgid "Previously auto paused player is unpausing for guild: %s" msgstr "Il giocatore precedentemente in pausa automatica è in pausa per la gilda: %s" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "Impossibile usare la ricerca se non c'è niente di giocare." -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "Impossibile usare la ricerca sulla traccia corrente, ha una durata sconosciuta." -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "La ricerca non è supportata per gli streaming." -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "Impossibile usare la ricerca senza un tempo per posizionare la riproduzione." -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "Impossibile convertire `%(input)s` in un tempo valido in secondi." -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "Impossibile cercare `%(input)s` (`%(seconds)s` secondi) nella traccia corrente con una lunghezza di `%(progress)s / %(total)s`" -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "Sottocomando non valido. Usa il comando `help repeat` per gli esempi di utilizzo." -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "Il giocatore non si sta caricando." -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "Le posizioni brano devono essere intere!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "Hai dato una posizione fuori dalla dimensione della playlist!" -#: musicbot/bot.py:4025 +#: musicbot/bot.py:4028 msgid "Could not prompt for playlist playback, no message to add reactions to." msgstr "Impossibile richiedere la riproduzione della playlist, nessun messaggio a cui aggiungere reazioni." -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "La riproduzione multimediale locale non è abilitata." -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "L'URL di Spotify non è valido o non è attualmente supportato." -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "Rilevato un URL Spotify, ma Spotify non è abilitato." -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "Hai raggiunto il limite di canzone in coda (%(max)s)" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "La modalità Karaoke è abilitata, riprova quando è disabilitata!" -#: musicbot/bot.py:4187 +#: musicbot/bot.py:4190 msgid "Issue with extract_info(): " msgstr "Problema con extract_info(): " -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "Impossibile estrarre le informazioni a causa di errore:\n" "%(raw_error)s" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "Questo video non può essere riprodotto. Prova a usare il comando streaming." -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "La ricerca su YouTube non ha prodotto alcun risultato per: %(url)s" -#: musicbot/bot.py:4238 +#: musicbot/bot.py:4241 #, python-format msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" msgstr "Elaborato %(number)d di %(total)d canzoni in %(time).3f secondi in %(time_per).2f s/song" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "Nessuna canzone aggiunta, tutte le canzoni hanno una durata massima (%(max)s secondi)" -#: musicbot/bot.py:4265 +#: musicbot/bot.py:4268 msgid "Extracted an entry with 'youtube:playlist' as extractor key" msgstr "Estratto una voce con 'youtube:playlist' come chiave estrattore" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "La durata del brano supera il limite (%(length)s > %(max)s)" -#: musicbot/bot.py:4295 +#: musicbot/bot.py:4298 #, python-format msgid "Added song(s) at position %s" msgstr "Aggiunti brani alla posizione %s" -#: musicbot/bot.py:4332 +#: musicbot/bot.py:4335 #, python-format msgid "Cannot estimate time until playing for position: %d" msgstr "Impossibile stimare il tempo di riproduzione per la posizione: %d" -#: musicbot/bot.py:4393 +#: musicbot/bot.py:4396 #, python-format msgid "Failed to get info from the stream request: %s" msgstr "Recupero delle informazioni dalla richiesta dello stream non riuscito: %s" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Le playlist in streaming non sono ancora supportate." -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Hai raggiunto il limite di elementi della playlist (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Specifica una query di ricerca. Usa `help search` per maggiori informazioni." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "Non puoi cercare più di %(max)s video" -#: musicbot/bot.py:4834 +#: musicbot/bot.py:4837 #, python-format msgid "Waiting for summon lock: %s" msgstr "In attesa del blocco della voce: %s" -#: musicbot/bot.py:4837 +#: musicbot/bot.py:4840 #, python-format msgid "Summon lock acquired for: %s" msgstr "Evoca blocco acquisito per: %s" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "Non sei connesso alla voce. Prova ad unirti a un canale vocale!" -#: musicbot/bot.py:4866 +#: musicbot/bot.py:4869 #, python-format msgid "Joining %(guild)s/%(channel)s" msgstr "Entrare In %(guild)s/%(channel)s" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot non può seguire un utente che non è un membro del server." -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Il giocatore non sta giocando." -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Niente nella coda da rimuovere!" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "Niente trovato nella coda dall'utente `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "Non hai il permesso di rimuovere questa voce dalla coda.\n" "Devi essere colui che l'ha accodata o che ha i permessi di salto istantanei." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Numero di voce non valido. Usa il comando coda per trovare le posizioni della coda." -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Impossibile saltare! Il giocatore non sta giocando!" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "Non hai il permesso di forzare un brano in loop." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "Non hai il permesso di forzare il salto." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "Non hai il permesso di saltare una canzone in loop." -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` non è un numero valido" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Variazione di volume irragionevole fornita: %(old_volume)s%(adjustment)s è %(new_volume)s.\n" "Il volume può essere impostato solo da 1 a 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Volume irragionevole fornito: %(volume)s. Fornire un valore compreso tra 1 e 100." -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "Nessuna traccia in riproduzione, non è possibile impostare la velocità.\n" "Utilizzare il comando di configurazione per impostare una velocità di riproduzione predefinita." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "La velocità non può essere applicata ai media in streaming." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Devi fornire una velocità da impostare." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "La velocità fornita non è valida. Usa un numero compreso tra 0.5 e 100." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Opzione non valida per il comando: `%(option)s`" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Impossibile salvare gli alias a causa di errore:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Devi fornire un alias e un comando all'alias" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Devi fornire un nome alias da rimuovere." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "L'alias `%(alias)s` non esiste." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "La configurazione non può usare le menzioni del canale e dell'utente allo stesso tempo." -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Impossibile ricaricare la configurazione a causa del seguente errore:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Impossibile risolvere il nome della sezione dal nome dell'opzione. Si prega di fornire una sezione e un nome di opzione validi." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "L'opzione data è ambigua, si prega di fornire un nome di sezione." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Devi fornire un nome di sezione e un nome di opzione per questo comando." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "La sezione `%(section)s` non è disponibile.\n" "Le sezioni disponibili sono: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "L'opzione `%(option)s` non è disponibile." -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "L'opzione `%(option)s` non è modificabile. Impossibile salvare sul disco." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Impossibile salvare l'opzione: `%(option)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "L'opzione `%(option)s` non è modificabile, il valore non può essere visualizzato." -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "L'opzione `%(option)s` non è modificabile. Impossibile aggiornare l'impostazione." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Devi fornire una sezione, un'opzione e un valore per questo sottocomando." -#: musicbot/bot.py:5810 +#: musicbot/bot.py:5813 #, python-format msgid "Doing set with on %(config)s == %(value)s" msgstr "Impostazione con %(config)s == %(value)s" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "L'opzione `%(option)s` non è stata aggiornata!" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "L'opzione `%(option)s` non è modificabile. Impossibile ripristinare il valore predefinito." -#: musicbot/bot.py:5845 +#: musicbot/bot.py:5848 #, python-format msgid "Resetting %(config)s to default %(value)s" msgstr "Ripristino %(config)s a predefinito %(value)s" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "L'opzione `%(option)s` non è stata ripristinata al predefinito!" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "Il comando opzione è deprecato, utilizza invece il comando di configurazione." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Opzione specificata non valida, usa: info, aggiornamento o cancella" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Non riuscito** per eliminare la cache, controlla i log per ulteriori informazioni..." -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "L'argomento pagina coda deve essere un numero intero." -#: musicbot/bot.py:6004 +#: musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "Non ci sono brani in coda! Coda qualcosa con un comando di riproduzione." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "Il numero di pagina richiesto è fuori dai limiti.\n" "Ci sono ** pagine%(total)s**." -#: musicbot/bot.py:6056 +#: musicbot/bot.py:6057 msgid "Skipped the current playlist entry." msgstr "Ha saltato la voce attuale della scaletta." -#: musicbot/bot.py:6099 +#: musicbot/bot.py:6100 msgid "Not enough entries to paginate the queue." msgstr "Non ci sono abbastanza voci per paginare la coda." -#: musicbot/bot.py:6103 +#: musicbot/bot.py:6104 msgid "Could not post queue message, no message to add reactions to." msgstr "Impossibile postare il messaggio in coda, nessun messaggio a cui aggiungere reazioni." -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Riprova. MusicBot non ha potuto fare o ottenere un riferimento al messaggio di coda.\n" "Se il problema persiste, file una segnalazione di bug." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Impossibile usare lo spurgo sul canale DM privato." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "L'URL fornito non era un URL valido." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Impossibile estrarre le informazioni dall'url di input\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "Questa non sembra essere una playlist." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "ID utente o soprannome del server non validi, si prega di ricontrollare l'ID e riprovare." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Impossibile determinare l'utente discord. Riprova." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Le autorizzazioni non possono usare le menzioni del canale e dell'utente allo stesso tempo." -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Impossibile ricaricare i permessi a causa di un errore:\n" "%(raw_error)s" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Devi fornire un nome di gruppo o di opzione per questo comando." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Devi fornire un gruppo, un'opzione e un valore da impostare per questo comando." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "Il sottocomando %(option)s richiede un nome di gruppo e di permesso." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "Il gruppo `%(group)s` non è disponibile.\n" "I gruppi disponibili sono: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "Il permesso `%(option)s` non è disponibile." -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Impossibile aggiungere il gruppo `%(group)s` che esiste già." -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Impossibile rimuovere il gruppo integrato." -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "Il gruppo proprietario non è modificabile." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Impossibile salvare il gruppo: `%(group)s`" -#: musicbot/bot.py:6736 +#: musicbot/bot.py:6737 #, python-format msgid "Doing set on %(option)s with value: %(value)s" msgstr "Impostazione %(option)s con valore: %(value)s" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Il permesso `%(option)s` non è stato aggiornato!" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Impossibile modificare il nome utente. Hai cambiato i nomi troppe volte?\n" "Ricorda che i cambiamenti di nome sono limitati a due volte all'ora.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Impossibile modificare il nome utente a causa di errore: \n" "%(raw_error)s" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Impossibile cambiare il soprannome: nessun permesso." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Impossibile impostare il soprannome a causa di errore: \n" "%(raw_error)s" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Le emoji personalizzate devono provenire da questo server per essere utilizzate come prefisso." -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Prefisso per server non è abilitato!\n" "Usa il comando di configurazione per aggiornare il prefisso." -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Questo comando può essere usato solo nelle gilde." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Sottocomando fornito non valido. Utilizzare il comando help per ulteriori informazioni." + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Impossibile impostare la lingua su `%(locale)s` non è disponibile." + +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "È necessario fornire un URL o allegare un file." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Impossibile cambiare l'avatar a causa dell'errore: \n" "%(raw_error)s" -#: musicbot/bot.py:6940 +#: musicbot/bot.py:7014 #, python-format msgid "MusicBot found a %s with no guild! This could be a problem." msgstr "MusicBot ha trovato un %s senza gilda! Questo potrebbe essere un problema." -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Attualmente non connesso al server `%(guild)s`" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Opzione fornita non valida, usa una di: soft, full, upgrade, uppip, or upgit" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Devi fornire un ID o un nome." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "Nessuna gilda trovata con l'ID o il nome `%(input)s`" -#: musicbot/bot.py:7172 +#: musicbot/bot.py:7246 #, python-format msgid "Activating debug breakpoint ID: %(uuid)s" msgstr "Attivazione ID breakpoint di debug: %(uuid)s" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Impossibile importare `objgraph`, è installato?" -#: musicbot/bot.py:7287 +#: musicbot/bot.py:7361 msgid "Debug code ran with eval()." msgstr "Codice di debug eseguito con eval()." -#: musicbot/bot.py:7297 +#: musicbot/bot.py:7371 msgid "Debug code ran with exec()." msgstr "Il codice di debug è funzionato con exec()." -#: musicbot/bot.py:7300 +#: musicbot/bot.py:7374 msgid "Debug code failed to execute." msgstr "Impossibile eseguire il codice di debug." -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1909,275 +1927,275 @@ msgstr "Esecuzione del codice di debug non riuscita:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "Il sottocomando deve essere uno di: %(options)s" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Impossibile individuare git eseguibile." -#: musicbot/bot.py:7483 +#: musicbot/bot.py:7559 msgid "Failed while checking for updates via git command." msgstr "Impossibile controllare gli aggiornamenti tramite il comando git." -#: musicbot/bot.py:7512 +#: musicbot/bot.py:7588 msgid "Package missing meta in pip report." msgstr "Pacchetto meta mancante nel rapporto pip." -#: musicbot/bot.py:7526 +#: musicbot/bot.py:7602 msgid "Failed to get pip update status due to some error." msgstr "Impossibile ottenere lo stato di aggiornamento dei pip a causa di qualche errore." -#: musicbot/bot.py:7586 +#: musicbot/bot.py:7662 msgid "Got a strange voice client entry." msgstr "Ottenuto una strana voce client vocale." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookie già abilitati." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "I cookie devono essere caricati per essere abilitati. (File dei cookie)." -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Impossibile abilitare i cookie a causa di errore: %(raw_error)s" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Impossibile rinominare il file cookie a causa di errore: %(raw_error)s\n" "I cookie sono temporaneamente disabilitati e saranno riattivati al prossimo riavvio." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "Non sono stati trovati caricamenti allegati, riprova durante il caricamento di un file di cookie." -#: musicbot/bot.py:7740 +#: musicbot/bot.py:7816 #, python-format msgid "Could not remove old, disabled cookies file: %(raw_error)s" msgstr "Impossibile rimuovere il vecchio file cookie disabilitato: %(raw_error)s" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Errore nel scaricare il file dei cookie da discord: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Impossibile salvare i cookie sul disco: %(raw_error)s" -#: musicbot/bot.py:7772 +#: musicbot/bot.py:7848 #, python-format msgid "Got a message with no channel, somehow: %s" msgstr "Hai un messaggio senza canale, in qualche modo: %s" -#: musicbot/bot.py:7800 +#: musicbot/bot.py:7876 #, python-format msgid "Ignoring command from myself (%s)" msgstr "Ignorare il comando da me stesso (%s)" -#: musicbot/bot.py:7808 +#: musicbot/bot.py:7884 #, python-format msgid "Ignoring command from other bot (%s)" msgstr "Ignora il comando da un altro bot (%s)" -#: musicbot/bot.py:7816 +#: musicbot/bot.py:7892 #, python-format msgid "Ignoring command from channel of type: %s" msgstr "Ignora il comando dal canale di tipo: %s" -#: musicbot/bot.py:7900 +#: musicbot/bot.py:7976 #, python-format msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" msgstr "Utente nella lista dei blocchi: %(id)s/%(name)s comando provato: %(command)s" -#: musicbot/bot.py:7907 +#: musicbot/bot.py:7983 #, python-format msgid "Message from %(id)s/%(name)s: %(message)s" msgstr "Messaggio da %(id)s/%(name)s: %(message)s" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Questo comando non è consentito per il tuo gruppo di permessi: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Questo comando richiede di essere in un canale vocale." -#: musicbot/bot.py:8060 +#: musicbot/bot.py:8136 #, python-format msgid "Invalid command usage, missing values for params: %(params)r" msgstr "Utilizzo del comando non valido, valori mancanti per i parametri: %(params)r" -#: musicbot/bot.py:8102 +#: musicbot/bot.py:8178 #, python-format msgid "Error in %(command)s: %(err_name)s: %(err_text)s" msgstr "Errore in %(command)s: %(err_name)s: %(err_text)s" -#: musicbot/bot.py:8126 +#: musicbot/bot.py:8202 #, python-format msgid "Exception while handling command: %(command)s" msgstr "Eccezione durante la gestione del comando: %(command)s" -#: musicbot/bot.py:8158 +#: musicbot/bot.py:8234 #, python-format msgid "Cannot generate help for missing command: %s" msgstr "Impossibile generare l'aiuto per il comando mancante: %s" -#: musicbot/bot.py:8162 +#: musicbot/bot.py:8238 #, python-format msgid "Missing help data for command: %s" msgstr "Dati di aiuto mancanti per il comando: %s" -#: musicbot/bot.py:8279 +#: musicbot/bot.py:8355 #, python-format msgid "Leaving voice channel %s in %s due to inactivity." msgstr "Lasciare il canale vocale %s in %s a causa di inattività." -#: musicbot/bot.py:8288 +#: musicbot/bot.py:8364 msgid "MusicBot has become connected." msgstr "MusicBot si è connesso." -#: musicbot/bot.py:8292 +#: musicbot/bot.py:8368 msgid "MusicBot has become disconnected." msgstr "MusicBot è stato disconnesso." -#: musicbot/bot.py:8297 +#: musicbot/bot.py:8373 #, python-format msgid "Got a Socket Event: %s" msgstr "Ottenuto un Evento Socket: %s" -#: musicbot/bot.py:8313 +#: musicbot/bot.py:8389 msgid "VoiceState updated before on_ready finished" msgstr "Stato vocale aggiornato prima del termine _pronto" -#: musicbot/bot.py:8326 +#: musicbot/bot.py:8402 #, python-format msgid "Ignoring %s in %s as it is a bound voice channel." msgstr "Ignorare %s in %s in quanto è un canale vocale collegato." -#: musicbot/bot.py:8335 +#: musicbot/bot.py:8411 #, python-format msgid "%s has been detected as empty. Handling timeouts." msgstr "%s è stato rilevato come timeout vuoto." -#: musicbot/bot.py:8346 +#: musicbot/bot.py:8422 #, python-format msgid "A user joined %s, cancelling timer." msgstr "Un utente si è unito %s, annullando il timer." -#: musicbot/bot.py:8359 +#: musicbot/bot.py:8435 #, python-format msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." msgstr "Il bot è stato spostato e il canale vocale %s è vuoto. Timeout gestione." -#: musicbot/bot.py:8368 +#: musicbot/bot.py:8444 #, python-format msgid "The bot got moved and the voice channel %s is not empty." msgstr "Il bot è stato spostato e il canale vocale %s non è vuoto." -#: musicbot/bot.py:8402 +#: musicbot/bot.py:8493 #, python-format msgid "No longer following user %s" msgstr "Non più seguendo l'utente %s" -#: musicbot/bot.py:8424 +#: musicbot/bot.py:8515 #, python-format msgid "Following user `%(user)s` to channel: %(channel)s" msgstr "Seguire l'utente `%(user)s` al canale: %(channel)s" -#: musicbot/bot.py:8444 +#: musicbot/bot.py:8535 msgid "VoiceState disconnect before.channel is None." msgstr "VoiceState disconnetti before.channel non è nessuno." -#: musicbot/bot.py:8471 +#: musicbot/bot.py:8562 #, python-format msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" msgstr "Disconnesso dalla voce dall'API di Discord in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" -#: musicbot/bot.py:8493 +#: musicbot/bot.py:8584 #, python-format msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" msgstr "Impossibile usare il canale di auto-join con il tipo: %(type)s nella gilda: %(guild)s" -#: musicbot/bot.py:8500 +#: musicbot/bot.py:8591 #, python-format msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" msgstr "Impossibile trovare il canale di accesso automatico, è stato eliminato? Gilda: %s" -#: musicbot/bot.py:8506 +#: musicbot/bot.py:8597 #, python-format msgid "Reconnecting to auto-joined guild on channel: %s" msgstr "Riconnessione alla gilda auto-entrata sul canale: %s" -#: musicbot/bot.py:8519 +#: musicbot/bot.py:8610 #, python-format msgid "Cannot auto join channel: %s" msgstr "Impossibile entrare automaticamente nel canale: %s" -#: musicbot/bot.py:8535 +#: musicbot/bot.py:8626 #, python-format msgid "Bot has been added to guild: %s" msgstr "Il bot è stato aggiunto alla gilda: %s" -#: musicbot/bot.py:8547 +#: musicbot/bot.py:8638 #, python-format msgid "Left guild '%s' due to bot owner not found." msgstr "Gilda sinistra '%s' a causa del proprietario del bot non trovato." -#: musicbot/bot.py:8561 +#: musicbot/bot.py:8652 #, python-format msgid "Creating data folder for guild %s" msgstr "Creazione cartella dati per la gilda %s" -#: musicbot/bot.py:8569 +#: musicbot/bot.py:8660 #, python-format msgid "Bot has been removed from guild: %s" msgstr "Il bot è stato rimosso dalla gilda: %s" -#: musicbot/bot.py:8570 +#: musicbot/bot.py:8661 msgid "Updated guild list:" msgstr "Lista gilda aggiornata:" -#: musicbot/bot.py:8585 +#: musicbot/bot.py:8676 #, python-format msgid "Guild \"%s\" has become available." msgstr "Gilda \"%s\" è diventato disponibile." -#: musicbot/bot.py:8591 +#: musicbot/bot.py:8682 #, python-format msgid "Resuming player in \"%s\" due to availability." msgstr "Riprendere il giocatore in \"%s\" a causa della disponibilità." -#: musicbot/bot.py:8608 +#: musicbot/bot.py:8699 #, python-format msgid "Guild \"%s\" has become unavailable." msgstr "Gilda \"%s\" non è disponibile." -#: musicbot/bot.py:8614 +#: musicbot/bot.py:8705 #, python-format msgid "Pausing player in \"%s\" due to unavailability." msgstr "Pausa giocatore in \"%s\" a causa di indisponibilità." -#: musicbot/bot.py:8630 +#: musicbot/bot.py:8721 #, python-format msgid "Guild update for: %s" msgstr "Aggiornamento gilda per: %s" -#: musicbot/bot.py:8636 +#: musicbot/bot.py:8727 #, python-format msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" msgstr "L'attributo della Gilda %(attr)s è ora: %(new)s -- Era %(old)s" -#: musicbot/bot.py:8668 +#: musicbot/bot.py:8759 #, python-format msgid "Channel update for: %(channel)s -- %(changes)s" msgstr "Aggiornamento canale per: %(channel)s -- %(changes)s" @@ -2192,7 +2210,7 @@ msgstr "Creazione %s" msgid "Loading config from: %s" msgstr "Caricamento configurazione da: %s" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2215,16 +2233,16 @@ msgstr "Errore durante la lettura della configurazione.\n\n" " Ogni sezione deve avere almeno un'opzione.\n" " Utilizzare le opzioni di esempio come modello o copiarlo dal repository." -#: musicbot/config.py:1113 +#: musicbot/config.py:1112 #, python-format msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." msgstr "Impossibile memorizzare più di file di log %s . L'opzione LogsMaxKept sarà limitata." -#: musicbot/config.py:1121 +#: musicbot/config.py:1120 msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." msgstr "Opzione di configurazione LogsDateFormat è vuoto e questo interromperà la rotazione del file di registro. Usando invece predefinito." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2236,11 +2254,11 @@ msgstr "Errore durante la convalida delle opzioni di configurazione.\n\n" "Soluzione:\n" " Assicurati che il percorso configurato sia un percorso per una cartella / directory." -#: musicbot/config.py:1149 +#: musicbot/config.py:1148 msgid "An exception was thrown while validating AudioCachePath." msgstr "È stata lanciata un'eccezione durante la convalida di AudioCachePath." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2255,12 +2273,12 @@ msgstr "Errore durante la convalida delle opzioni di configurazione.\n\n" "Soluzione:\n" " Doppio controllo l'impostazione è valida, percorso directory accessibile." -#: musicbot/config.py:1165 +#: musicbot/config.py:1164 #, python-format msgid "Audio Cache will be stored in: %s" msgstr "La cache audio sarà memorizzata in: %s" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2273,16 +2291,16 @@ msgstr "Errore durante la lettura delle opzioni di configurazione.\n\n" "Soluzione:\n" " Imposta l'opzione di configurazione Token o imposta la variabile di ambiente %(env_var)s con un token App." -#: musicbot/config.py:1197 +#: musicbot/config.py:1196 msgid "StatusMessage config option is too long, it will be limited to 128 characters." msgstr "L'opzione di configurazione statusMessage è troppo lunga, sarà limitata a 128 caratteri." -#: musicbot/config.py:1206 +#: musicbot/config.py:1205 #, python-format msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." msgstr "La velocità di riproduzione predefinita deve essere compresa tra 0.5 e 100.0. Il valore di opzione di %.3f sarà limitato." -#: musicbot/config.py:1216 +#: musicbot/config.py:1215 msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "Cookies are not recommended, may not be supported, and may totally break.\n" "Copying cookies from your web-browser risks exposing personal data and \n" @@ -2294,15 +2312,15 @@ msgstr "Rilevato file TXT cookie. MusicBot li passerà a yt-dlp.\n" "nel migliore dei casi può comportare il divieto dei tuoi account!\n\n" "Sei stato avvisato! Buona Fortuna! \\U0001F596\n" -#: musicbot/config.py:1234 +#: musicbot/config.py:1233 msgid "Validating options with service data..." msgstr "Validazione delle opzioni con i dati del servizio..." -#: musicbot/config.py:1240 +#: musicbot/config.py:1239 msgid "Acquired owner ID via API" msgstr "ID proprietario acquisito tramite API" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2316,11 +2334,11 @@ msgstr "Errore durante il recupero automatico di 'OwnerID'.\n\n" ":\n" " Imposta manualmente l'opzione di configurazione 'OwnerID' o riprova più tardi." -#: musicbot/config.py:1256 +#: musicbot/config.py:1255 msgid "MusicBot does not have a user instance, cannot proceed." msgstr "MusicBot non ha un'istanza utente, non può procedere." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2332,30 +2350,30 @@ msgstr "Errore nella convalida delle opzioni di configurazione.\n\n" "Soluzione:\n" " Non utilizzare il Bot o l'App ID nel campo 'OwnerID'." -#: musicbot/config.py:1286 +#: musicbot/config.py:1285 msgid "Config options file not found. Checking for alternatives..." msgstr "File delle opzioni di configurazione non trovato. Verifica la presenza di alternative..." -#: musicbot/config.py:1298 +#: musicbot/config.py:1297 #, python-format msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." msgstr "Rinomina %(ini_file)s in %(option_file)s, probabilmente dovresti attivare le estensioni dei file." -#: musicbot/config.py:1306 +#: musicbot/config.py:1305 #, python-format msgid "Copying existing example options file: %(example_file)s" msgstr "Copia del file delle opzioni di esempio esistenti: %(example_file)s" -#: musicbot/config.py:1315 +#: musicbot/config.py:1314 #, python-format msgid "Generated a new %(example_file)s and copied it to %(option_file)s" msgstr "Generato un nuovo %(example_file)s e copiato in %(option_file)s" -#: musicbot/config.py:1323 +#: musicbot/config.py:1322 msgid "Something went wrong while trying to find a config option file." msgstr "Qualcosa è andato storto durante il tentativo di trovare un file di opzione di configurazione." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2370,7 +2388,7 @@ msgstr "Errore nella localizzazione della configurazione.\n\n" "Soluzione:\n" " Verifica che la cartella di configurazione e i file esistano e possono essere letti da MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2387,43 +2405,43 @@ msgstr "Errore nel caricamento della configurazione.\n\n" " Assicurarsi che il file sia accessibile e privo di errori.\n" " Copiare il file di esempio dal repo se tutto il resto fallisce." -#: musicbot/config.py:1369 +#: musicbot/config.py:1368 msgid "Dev Bug! Config option has getter that is not available." msgstr "Dev Bug! L'opzione di configurazione ha getter che non è disponibile." -#: musicbot/config.py:1374 +#: musicbot/config.py:1373 msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." msgstr "Dev Bug! L'opzione di configurazione ha tipo non valido, getter e predefinito deve essere lo stesso tipo." -#: musicbot/config.py:1394 +#: musicbot/config.py:1393 msgid "Option was missing previously." msgstr "L'opzione mancava in precedenza." -#: musicbot/config.py:1409 +#: musicbot/config.py:1408 #, python-format msgid "Config section not in parsed config! Missing: %s" msgstr "Sezione di configurazione non in configurazione analizzata! Mancante: %s" -#: musicbot/config.py:1414 +#: musicbot/config.py:1413 #, python-format msgid "Saved config option: %(config)s = %(value)s" msgstr "Opzione di configurazione salvata: %(config)s = %(value)s" -#: musicbot/config.py:1427 +#: musicbot/config.py:1426 #, python-format msgid "Failed to save config: %s" msgstr "Salvataggio della configurazione non riuscito: %s" -#: musicbot/config.py:1932 +#: musicbot/config.py:1931 msgid "Option names are not unique between INI sections! Resolver is disabled." msgstr "I nomi delle opzioni non sono univoci tra le sezioni INI! Resolver è disabilitato." -#: musicbot/config.py:2094 musicbot/permissions.py:859 +#: musicbot/config.py:2099 musicbot/permissions.py:859 #, python-format msgid "Failed to save default INI file at: %s" msgstr "Impossibile salvare il file INI predefinito in: %s" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2436,7 +2454,7 @@ msgstr "Errore nel caricamento del valore di configurazione.\n\n" "Soluzione:\n" " Imposta %(option)s su un ID numerico o impostalo su `auto` o `0` per il binding automatico del proprietario." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2449,7 +2467,7 @@ msgstr "Errore nel caricamento del valore di configurazione.\n\n" "Soluzione:\n" " Controlla l'impostazione del percorso e assicurati che il file esista ed sia accessibile a MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2462,60 +2480,60 @@ msgstr "Errore nel caricamento del valore di configurazione.\n\n" "Soluzione:\n" " Assicurati che tutti gli ID siano numerici e separati solo da spazi o virgole." -#: musicbot/config.py:2283 +#: musicbot/config.py:2288 #, python-format msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" msgstr "Opzione DebugLevel \"%(value)s\" non valida, tornando al livello: %(fallback)s" -#: musicbot/config.py:2304 +#: musicbot/config.py:2309 #, python-format msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." msgstr "Opzione [%(section)s] > %(option)s ha valore di configurazione non valido '%(value)s' usando invece predefinito." -#: musicbot/config.py:2353 +#: musicbot/config.py:2358 #, python-format msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." msgstr "Opzione [%(section)s] > %(option)s ha un valore maggiore di 100 %% (%(value)s) e sarà invece impostato su %(fallback)s." -#: musicbot/config.py:2437 +#: musicbot/config.py:2442 #, python-format msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" msgstr "Rinomina la voce del file INI [%(old_s)s] > %(old_o)s in [%(new_s)s] > %(new_o)s" -#: musicbot/config.py:2493 +#: musicbot/config.py:2498 msgid "Upgrading config file with renamed options..." msgstr "Aggiornamento file di configurazione con opzioni rinominate..." -#: musicbot/config.py:2510 +#: musicbot/config.py:2515 msgid "Failed to upgrade config. You'll need to upgrade it manually." msgstr "Impossibile aggiornare la configurazione. Dovrai aggiornarla manualmente." -#: musicbot/config.py:2551 +#: musicbot/config.py:2556 #, python-format msgid "Block list file not found: %s" msgstr "File elenco blocco non trovato: %s" -#: musicbot/config.py:2572 +#: musicbot/config.py:2577 #, python-format msgid "Could not load block list from file: %s" msgstr "Impossibile caricare l'elenco dei blocchi dal file: %s" -#: musicbot/config.py:2610 musicbot/config.py:2643 +#: musicbot/config.py:2615 musicbot/config.py:2648 #, python-format msgid "Could not update the block list file: %s" msgstr "Impossibile aggiornare il file elenco blocchi: %s" -#: musicbot/config.py:2670 +#: musicbot/config.py:2675 #, python-format msgid "Loaded User Block list with %s entries." msgstr "Lista Blocco utente caricata con voci %s." -#: musicbot/config.py:2681 +#: musicbot/config.py:2686 #, python-format msgid "We found a legacy blacklist file, it will be renamed to: %s" msgstr "Abbiamo trovato un file di blacklist legacy, che verrà rinominato in: %s" -#: musicbot/config.py:2727 +#: musicbot/config.py:2732 #, python-format msgid "Loaded a Song Block list with %s entries." msgstr "Caricato un elenco di blocchi brani con voci %s." @@ -2539,20 +2557,20 @@ msgstr "Caricamento dei dati della gilda con ID: %(id)s/%(name)s" msgid "An OS error prevented reading guild data file: %s" msgstr "Un errore OS ha impedito di leggere il file dati della gilda: %s" -#: musicbot/constructs.py:255 +#: musicbot/constructs.py:257 #, python-format msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" msgstr "La Gilda %(id)s/%(name)s ha il prefisso del comando personalizzato: %(prefix)s" -#: musicbot/constructs.py:275 +#: musicbot/constructs.py:277 msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" msgstr "Impossibile salvare i dati per la gilda con ID 0. Probabilmente è un bug nel codice!" -#: musicbot/constructs.py:298 +#: musicbot/constructs.py:301 msgid "Could not save guild specific data due to OS Error." msgstr "Impossibile salvare i dati specifici della gilda a causa di un errore del sistema." -#: musicbot/constructs.py:301 +#: musicbot/constructs.py:304 msgid "Failed to serialize guild specific data due to invalid data." msgstr "Impossibile serializzare i dati specifici della gilda a causa di dati non validi." @@ -3025,10 +3043,10 @@ msgstr "Errore Argomento Lang: %s" msgid "Failed to load log translations for any of: [%s] in: %s" msgstr "Impossibile caricare le traduzioni del log per uno qualsiasi di: [%s] in: %s" -#: musicbot/i18n.py:333 +#: musicbot/i18n.py:340 #, python-format -msgid "Failed to load discord translations for any of: [%s] in: %s" -msgstr "Caricamento delle traduzioni discord non riuscito per uno qualsiasi di: [%s] in: %s" +msgid "Failed to load discord translations for any of: [%s] guild: %s in: %s" +msgstr "Caricamento delle traduzioni della discordia non riuscito: [%s] gilda: %s in: %s" #: musicbot/json.py:14 #, python-format diff --git a/i18n/it_IT/LC_MESSAGES/musicbot_messages.mo b/i18n/it_IT/LC_MESSAGES/musicbot_messages.mo index d216b5a0de32b06ba2f4dcedf2a552ef4ab670f3..572786ccad544cda7b7c1396a2ae9f25057263d5 100644 GIT binary patch delta 10580 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 OOj5{E7QWI-ZTP<~%ZUX5 delta 9445 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 diff --git a/i18n/it_IT/LC_MESSAGES/musicbot_messages.po b/i18n/it_IT/LC_MESSAGES/musicbot_messages.po index 2e9381948..a8be7dc20 100644 --- a/i18n/it_IT/LC_MESSAGES/musicbot_messages.po +++ b/i18n/it_IT/LC_MESSAGES/musicbot_messages.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 18:12\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:39\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -32,78 +32,78 @@ msgstr "Errore durante il caricamento degli alias.\n\n" " Sostituire il file di configurazione alias o copiarlo da:\n" " https://github.com/Just-Some-Bots/MusicBot/" -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "Il membro non è abilitato alla voce e non può usare questo comando." -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "Non puoi usare questo comando quando non è nel canale vocale." -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "MusicBot non ha il permesso di connettersi nel canale: `%(name)s`" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "MusicBot non ha il permesso di parlare nel canale: `%(name)s`" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "MusicBot non può connettersi al canale.\n" "Riprova più tardi, o riavvia il bot se continua." -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "La connessione MusicBot alla voce è stata annullata. Questo è strano. Forse riavviare?" -#: musicbot/bot.py:840 +#: musicbot/bot.py:843 msgid "MusicBot does not have permission to speak." msgstr "MusicBot non ha il permesso di parlare." -#: musicbot/bot.py:844 +#: musicbot/bot.py:847 msgid "MusicBot could not request to speak." msgstr "MusicBot non può richiedere di parlare." -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "Il bot non è in un canale vocale.\n" "Usa il comando summon per portare il bot sul tuo canale vocale." -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "Qualcosa è sbagliato, non abbiamo ottenuto il VoiceClient." -#: musicbot/bot.py:1084 +#: musicbot/bot.py:1087 #, python-format msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" msgstr "Saltare la prossima canzone `%(title)s` come richiedente `%(user)s` non è in voce!" -#: musicbot/bot.py:1102 +#: musicbot/bot.py:1105 #, python-format msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" msgstr "%(mention)s - la tua canzone `%(title)s` è ora in riproduzione in %(channel)s!" -#: musicbot/bot.py:1111 +#: musicbot/bot.py:1114 #, python-format msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" msgstr "Ora giocando in %(channel)s: `%(title)s` aggiunto da %(author)s!" -#: musicbot/bot.py:1122 +#: musicbot/bot.py:1125 #, python-format msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" msgstr "Ora giocando automaticamente ha aggiunto la voce `%(title)s` in %(channel)s!" -#: musicbot/bot.py:1333 +#: musicbot/bot.py:1336 #, python-format msgid "Skipping songs added by %(user)s as they are not in voice!" msgstr "Saltando le canzoni aggiunte da %(user)s come non sono nella voce!" -#: musicbot/bot.py:1555 +#: musicbot/bot.py:1558 #, python-format msgid "Playback failed for song `%(song)s` due to an error:\n" "```\n" @@ -112,11 +112,11 @@ msgstr "Riproduzione fallita per la canzone `%(song)s` a causa di un errore:\n" "```\n" "%(error)s```" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "[Dev Bug] Provato a inviare un oggetto di risposta non valido." -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -132,35 +132,35 @@ msgstr "Accesso API Discord non riuscito!\n\n" " Assicurati di aver impostato il token corretto nella tua configurazione.\n" " Controlla lo stato dell'API sul sito ufficiale: discordstatus.com" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "La canzone richiesta `%(subject)s` è bloccata dalla lista dei brani." -#: musicbot/bot.py:2831 +#: musicbot/bot.py:2834 msgid "Reset the auto playlist queue by copying it back into player memory.\n" "This command will be removed in a future version, replaced by the autoplaylist command(s)." msgstr "Reimposta la coda di scaletta automatica copiandola nuovamente nella memoria del giocatore.\n" "Questo comando verrà rimosso in una versione futura, sostituito dai comandi della playlist automatica." -#: musicbot/bot.py:2846 +#: musicbot/bot.py:2849 msgid "\\N{OK HAND SIGN}" msgstr "\\N{OK HAND SIGN}" -#: musicbot/bot.py:2853 +#: musicbot/bot.py:2856 msgid "Show usage and description of a command, or list all available commands.\n" msgstr "Mostra l'utilizzo e la descrizione di un comando o elenca tutti i comandi disponibili.\n" -#: musicbot/bot.py:2888 +#: musicbot/bot.py:2891 msgid "**Aliases for this command:**\n" msgstr "**Alias per questo comando:**\n" -#: musicbot/bot.py:2891 +#: musicbot/bot.py:2894 #, python-format msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" msgstr "`%(alias)s` alias di `%(command)s %(args)s`\n" -#: musicbot/bot.py:2924 +#: musicbot/bot.py:2927 #, python-format msgid "**Alias of command:**\n" " `%(command)s`\n" @@ -168,7 +168,7 @@ msgstr "**Alias of command:**\n" " `%(command)s`\n" #. TRANSLATORS: template string for command-specific help output. -#: musicbot/bot.py:2931 +#: musicbot/bot.py:2934 #, python-format msgid "%(is_alias)s\n" "%(docs)s\n" @@ -177,18 +177,18 @@ msgstr "%(is_alias)s\n" "%(docs)s\n" "%(alias_list)s" -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "Comando inesistente" -#: musicbot/bot.py:2959 +#: musicbot/bot.py:2962 #, python-format msgid "The list above shows only commands permitted for your use.\n" "For a list of all commands, run: %(example_all)s\n" msgstr "La lista qui sopra mostra solo i comandi consentiti per il tuo uso.\n" "Per un elenco di tutti i comandi, esegui: %(example_all)s\n" -#: musicbot/bot.py:2965 +#: musicbot/bot.py:2968 #, python-format msgid "**Commands by name:** *(without prefix)*\n" "```\n" @@ -205,74 +205,74 @@ msgstr "**Comandi per nome:** *(senza prefisso)*\n" "Per aiuto con un particolare comando, run: %(example_command)s\n" "%(all_note)s" -#: musicbot/bot.py:2984 +#: musicbot/bot.py:2987 msgid " Block a mentioned user." msgstr " Blocca un utente menzionato." -#: musicbot/bot.py:2987 +#: musicbot/bot.py:2990 msgid " Unblock a mentioned user." msgstr " Sblocca un utente menzionato." -#: musicbot/bot.py:2990 +#: musicbot/bot.py:2993 msgid " Show the block status of a mentioned user." msgstr " Mostra lo stato del blocco di un utente menzionato." -#: musicbot/bot.py:2994 +#: musicbot/bot.py:2997 msgid "Manage the users in the user block list.\n" "Blocked users are forbidden from using all bot commands.\n" msgstr "Gestire gli utenti nella lista dei blocchi utente.\n" "agli utenti bloccati è vietato utilizzare tutti i comandi del bot.\n" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "È necessario menzionare un utente o fornire il loro numero di identità." -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "Sottocomando fornito non valido. Usa `help blockuser` per esempi di utilizzo." -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBot non ha trovato gli utenti specificati." -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "Il proprietario non può essere aggiunto all'elenco dei blocchi." -#: musicbot/bot.py:3059 +#: musicbot/bot.py:3062 msgid "User block list is currently enabled." msgstr "La lista dei blocchi utente è attualmente abilitata." -#: musicbot/bot.py:3061 +#: musicbot/bot.py:3064 msgid "User block list is currently disabled." msgstr "La lista dei blocchi utente è attualmente disabilitata." -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "Non è possibile aggiungere gli utenti elencati, sono già aggiunti." -#: musicbot/bot.py:3078 +#: musicbot/bot.py:3081 #, python-format msgid "%(number)s user(s) have been added to the block list.\n" "%(status)s" msgstr "%(number)s utente(i) sono stati aggiunti alla lista dei blocchi.\n" "%(status)s" -#: musicbot/bot.py:3089 +#: musicbot/bot.py:3092 msgid "None of those users are in the blacklist." msgstr "Nessuno di questi utenti è nella blacklist." -#: musicbot/bot.py:3094 +#: musicbot/bot.py:3097 #, python-format msgid "User: `%(user)s` is not blocked.\n" msgstr "Utente: `%(user)s` non è bloccato.\n" -#: musicbot/bot.py:3096 +#: musicbot/bot.py:3099 #, python-format msgid "User: `%(user)s` is blocked.\n" msgstr "Utente: `%(user)s` è bloccato.\n" -#: musicbot/bot.py:3099 +#: musicbot/bot.py:3102 #, python-format msgid "**Block list status:**\n" "%(status)s\n" @@ -281,14 +281,14 @@ msgstr "**Stato lista blocchi:**\n" "%(status)s\n" "%(users)s" -#: musicbot/bot.py:3109 +#: musicbot/bot.py:3112 #, python-format msgid "%(number)s user(s) have been removed from the block list.\n" "%(status)s" msgstr "%(number)s utente(i) sono stati rimossi dalla lista dei blocchi.\n" "%(status)s" -#: musicbot/bot.py:3118 +#: musicbot/bot.py:3121 msgid "Manage a block list applied to song requests and extracted song data.\n" "A subject may be a song URL or a word or phrase found in the track title.\n" "If subject is omitted, any currently playing track URL will be added instead.\n\n" @@ -300,162 +300,162 @@ msgstr "Gestisce un elenco di blocchi applicato alle richieste di brani e ai dat "La lista dei brani corrisponde in modo libero, ma è sensibile all'uso di maiuscole e minuscole.\n" "Questo significa che l'aggiunta di 'Pie' corrisponderà a 'Cherry Pie' ma non a 'piecrust' nei controlli.\n" -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "Devi fornire un oggetto del brano se nessuna canzone è attualmente in riproduzione." -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "Sottocomando fornito non valido. Usa `help blocksong` per esempi di utilizzo." -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "L'oggetto `%(subject)s` è già nella lista dei brani." -#: musicbot/bot.py:3187 +#: musicbot/bot.py:3190 #, python-format msgid "Added subject `%(subject)s` to the song block list.\n" "%(status)s" msgstr "Aggiunto oggetto `%(subject)s` alla lista dei blocchi.\n" "%(status)s" -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "L'oggetto non è nell'elenco dei brani e non può essere rimosso." -#: musicbot/bot.py:3204 +#: musicbot/bot.py:3207 #, python-format msgid "Subject `%(subject)s` has been removed from the block list.\n" "%(status)s" msgstr "L'oggetto `%(subject)s` è stato rimosso dalla lista dei blocchi.\n" "%(status)s" -#: musicbot/bot.py:3214 +#: musicbot/bot.py:3217 msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" msgstr " Aggiunge o rimuove la canzone specificata o attualmente in riproduzione su/dalla playlist corrente.\n" -#: musicbot/bot.py:3217 +#: musicbot/bot.py:3220 msgid " Adds the entire queue to the guilds playlist.\n" msgstr " Aggiunge l'intera coda alla playlist delle gilde.\n" -#: musicbot/bot.py:3220 +#: musicbot/bot.py:3223 msgid " Show a list of existing playlist files.\n" msgstr " Mostra un elenco di file di playlist esistenti.\n" -#: musicbot/bot.py:3223 +#: musicbot/bot.py:3226 msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" msgstr " Reimposta la coda di scaletta automatica, riavviando alla prima traccia a meno che non sia casuale.\n" -#: musicbot/bot.py:3226 +#: musicbot/bot.py:3229 msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" msgstr " Imposta una playlist come predefinita per questa gilda e ricarica la playlist automatica della gilda.\n" -#: musicbot/bot.py:3229 +#: musicbot/bot.py:3232 msgid "Manage auto playlist files and per-guild settings." msgstr "Gestisci i file della playlist automatica e le impostazioni per gilda." -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "Sottocomando fornito non valido. Usa `help autoplaylist` per esempi di utilizzo." -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "Il link del brano fornito non è valido" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "La coda è vuota. Aggiungi alcuni brani con un comando di riproduzione!" -#: musicbot/bot.py:3273 +#: musicbot/bot.py:3276 msgid "All songs in the queue are already in the autoplaylist." msgstr "Tutte le canzoni nella coda sono già nella playlist automatica." -#: musicbot/bot.py:3277 +#: musicbot/bot.py:3280 #, python-format msgid "Added %(number)d songs to the autoplaylist." msgstr "Aggiunti brani %(number)d alla playlist automatica." -#: musicbot/bot.py:3287 +#: musicbot/bot.py:3290 #, python-format msgid "Added `%(url)s` to the autoplaylist." msgstr "Aggiunto `%(url)s` alla playlist automatica." -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "Questo brano è già nella playlist automatica." -#: musicbot/bot.py:3304 +#: musicbot/bot.py:3307 #, python-format msgid "Removed `%(url)s` from the autoplaylist." msgstr "Rimosso `%(url)s` dalla playlist automatica." -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "Questa canzone non è ancora nella playlist automatica." -#: musicbot/bot.py:3316 +#: musicbot/bot.py:3319 #, python-format msgid "Loaded a fresh copy of the playlist: `%(file)s`" msgstr "Caricato una nuova copia della playlist: `%(file)s`" -#: musicbot/bot.py:3327 +#: musicbot/bot.py:3330 #, python-format msgid "**Available Playlists:**\n" "%(names)s" msgstr "**Playlist Disponibili:**\n" "%(names)s" -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "È necessario fornire un nome file playlist." -#: musicbot/bot.py:3357 +#: musicbot/bot.py:3360 msgid "\n" "This playlist is new, you must add songs to save it to disk!" msgstr "\n" "Questa playlist è nuova, devi aggiungere brani per salvarla sul disco!" -#: musicbot/bot.py:3362 +#: musicbot/bot.py:3365 #, python-format msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" msgstr "La playlist per questo server è stata aggiornata a: `%(name)s`%(note)s" -#: musicbot/bot.py:3373 +#: musicbot/bot.py:3376 msgid "Generate an invite link that can be used to add this bot to another server." msgstr "Genera un link di invito che può essere usato per aggiungere questo bot a un altro server." -#: musicbot/bot.py:3385 +#: musicbot/bot.py:3388 #, python-format msgid "Click here to add me to a discord server:\n" "%(url)s" msgstr "Clicca qui per aggiungermi a un server discord:\n" "%(url)s" -#: musicbot/bot.py:3391 +#: musicbot/bot.py:3394 msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" "Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" msgstr "Attiva o disattiva la modalità karaoke. Quando abilitato, solo i membri karaoke possono mettere in coda canzoni.\n" "Gruppi con BypassKaraokeMode controllano quali membri sono membri di Karaoke.\n" -#: musicbot/bot.py:3403 +#: musicbot/bot.py:3406 msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." msgstr "\\Nla modalità{OK HAND SIGN} Karaoke è ora abilitata." -#: musicbot/bot.py:3405 +#: musicbot/bot.py:3408 msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." msgstr "\\Nla modalità{OK HAND SIGN} Karaoke è ora disabilitata." -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "Non sei autorizzato a richiedere playlist" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "La playlist ha troppe voci (%(songs)s ma il massimo è %(max)s)" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" @@ -464,11 +464,11 @@ msgstr "Le voci della playlist supereranno il limite della tua coda.\n" "Ci sono %(songs)s nella lista, e %(queued)s già in coda.\n" "Il limite è %(max)s per il tuo gruppo." -#: musicbot/bot.py:3580 +#: musicbot/bot.py:3583 msgid "Bot was previously paused, resuming playback now." msgstr "Il bot è stato precedentemente in pausa, riprendendo la riproduzione ora." -#: musicbot/bot.py:3589 +#: musicbot/bot.py:3592 msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" "You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" "Playlist links will be extracted into multiple links and added to the queue.\n" @@ -480,28 +480,28 @@ msgstr "Aggiunge un brano da riprodurre nella coda. Se nessun brano è in riprod "Se si inserisce un non-URL, l'input verrà utilizzato come criterio di ricerca su YouTube e il primo risultato riprodotto.\n" "MusicBot supporta anche gli URI e gli URL di Spotify, ma l'audio viene recuperato da YouTube indipendentemente da te.\n" -#: musicbot/bot.py:3628 +#: musicbot/bot.py:3631 msgid "Play command that shuffles playlist entries before adding them to the queue.\n" msgstr "Comando di riproduzione che mescola le voci della scaletta prima di aggiungerle alla coda.\n" -#: musicbot/bot.py:3665 +#: musicbot/bot.py:3668 #, python-format msgid "Shuffled playlist items into the queue from `%(request)s`" msgstr "Gli elementi della playlist mischiati nella coda da `%(request)s`" -#: musicbot/bot.py:3672 +#: musicbot/bot.py:3675 msgid "A play command that adds the song as the next to play rather than last.\n" "Read help for the play command for information on supported inputs.\n" msgstr "Un comando di riproduzione che aggiunge il brano come il prossimo per suonare piuttosto che per ultimo.\n" "Leggi l'aiuto per il comando play per informazioni sugli input supportati.\n" -#: musicbot/bot.py:3707 +#: musicbot/bot.py:3710 msgid "A play command which skips any current song and plays immediately.\n" "Read help for the play command for information on supported inputs.\n" msgstr "Un comando di riproduzione che salta qualsiasi brano corrente e riproduce immediatamente.\n" "Leggi l'aiuto per il comando di riproduzione per informazioni sugli input supportati.\n" -#: musicbot/bot.py:3744 +#: musicbot/bot.py:3747 msgid "Restarts the current song at the given time.\n" "If time starts with + or - seek will be relative to current playback time.\n" "Time should be given in seconds, fractional seconds are accepted.\n" @@ -511,38 +511,38 @@ msgstr "Riavvia il brano corrente al tempo specificato.\n" "Il tempo deve essere dato in secondi, i secondi frazionari sono accettati.\n" "A causa delle specifiche del codec in ffmpeg, questo potrebbe non essere accurato.\n" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "Impossibile usare la ricerca se non c'è niente di giocare." -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "Impossibile usare la ricerca sulla traccia corrente, ha una durata sconosciuta." -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "La ricerca non è supportata per gli streaming." -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "Impossibile usare la ricerca senza un tempo per posizionare la riproduzione." -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "Impossibile convertire `%(input)s` in un tempo valido in secondi." -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "Impossibile cercare `%(input)s` (`%(seconds)s` secondi) nella traccia corrente con una lunghezza di `%(progress)s / %(total)s`" -#: musicbot/bot.py:3840 +#: musicbot/bot.py:3843 #, python-format msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." msgstr "Cercando al tempo `%(input)s` (`%(seconds).2f` secondi) nella canzone corrente." -#: musicbot/bot.py:3852 +#: musicbot/bot.py:3855 msgid "Toggles playlist or song looping.\n" "If no option is provided the current song will be repeated.\n" "If no option is provided and the song is already repeating, repeating will be turned off.\n" @@ -550,74 +550,74 @@ msgstr "Attiva/Disattiva scaletta o caricamento brano.\n" "Se non è fornita alcuna opzione, il brano corrente verrà ripetuto.\n" "Se non viene fornita alcuna opzione e il brano è già ripetuto, la ripetizione sarà disattivata.\n" -#: musicbot/bot.py:3870 +#: musicbot/bot.py:3873 msgid "No songs are currently playing. Play something with a play command." msgstr "Nessun brano è attualmente in riproduzione. Riproduci qualcosa con un comando di riproduzione." -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "Sottocomando non valido. Usa il comando `help repeat` per gli esempi di utilizzo." -#: musicbot/bot.py:3883 musicbot/bot.py:3920 +#: musicbot/bot.py:3886 musicbot/bot.py:3923 msgid "Playlist is now repeating." msgstr "La scaletta ora si ripete." -#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +#: musicbot/bot.py:3889 musicbot/bot.py:3916 musicbot/bot.py:3927 msgid "Playlist is no longer repeating." msgstr "La scaletta non si ripete più." -#: musicbot/bot.py:3892 musicbot/bot.py:3901 +#: musicbot/bot.py:3895 musicbot/bot.py:3904 msgid "Player will now loop the current song." msgstr "Il giocatore passerà ora alla canzone corrente." -#: musicbot/bot.py:3894 musicbot/bot.py:3908 +#: musicbot/bot.py:3897 musicbot/bot.py:3911 msgid "Player will no longer loop the current song." msgstr "Il giocatore non passerà più al brano corrente." -#: musicbot/bot.py:3898 +#: musicbot/bot.py:3901 msgid "Player is already looping a song!" msgstr "Il giocatore sta già caricando una canzone!" -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "Il giocatore non si sta caricando." -#: musicbot/bot.py:3926 +#: musicbot/bot.py:3929 msgid "Song is no longer repeating." msgstr "La canzone non si ripete più." -#: musicbot/bot.py:3930 +#: musicbot/bot.py:3933 msgid "Song is now repeating." msgstr "La canzone si sta ripetendo." -#: musicbot/bot.py:3938 +#: musicbot/bot.py:3941 msgid " Move song at position FROM to position TO.\n" msgstr " Sposta il brano in posizione FROM alla posizione\n" -#: musicbot/bot.py:3942 +#: musicbot/bot.py:3945 msgid "Swap existing songs in the queue using their position numbers.\n" "Use the queue command to find track position numbers.\n" msgstr "Scambia i brani esistenti nella coda usando i loro numeri di posizione.\n" "Usa il comando coda per trovare i numeri di posizione della traccia.\n" -#: musicbot/bot.py:3961 +#: musicbot/bot.py:3964 msgid "There are no songs queued. Play something with a play command." msgstr "Non ci sono brani in coda. Riproduci qualcosa con un comando di riproduzione." -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "Le posizioni brano devono essere intere!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "Hai dato una posizione fuori dalla dimensione della playlist!" -#: musicbot/bot.py:3984 +#: musicbot/bot.py:3987 #, python-format msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" msgstr "Hai spostato il brano dalla posizione %(from)s in coda alla posizione %(to)s!" -#: musicbot/bot.py:4072 +#: musicbot/bot.py:4075 #, python-format msgid "This link contains a Playlist ID:\n" "`%(url)s`\n\n" @@ -626,82 +626,82 @@ msgstr "Questo link contiene un ID della Playlist:\n" "`%(url)s`\n\n" "Vuoi mettere in coda anche la playlist?" -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "La riproduzione multimediale locale non è abilitata." -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "L'URL di Spotify non è valido o non è attualmente supportato." -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "Rilevato un URL Spotify, ma Spotify non è abilitato." -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "Hai raggiunto il limite di canzone in coda (%(max)s)" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "La modalità Karaoke è abilitata, riprova quando è disabilitata!" -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "Impossibile estrarre le informazioni a causa di errore:\n" "%(raw_error)s" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "Questo video non può essere riprodotto. Prova a usare il comando streaming." -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "La ricerca su YouTube non ha prodotto alcun risultato per: %(url)s" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "Nessuna canzone aggiunta, tutte le canzoni hanno una durata massima (%(max)s secondi)" -#: musicbot/bot.py:4254 +#: musicbot/bot.py:4257 #, python-format msgid "Enqueued **%(number)s** songs to be played.\n" "Position in queue: %(position)s" msgstr "Canzoni accodate **%(number)s** da riprodurre.\n" "Posizione nella coda: %(position)s" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "La durata del brano supera il limite (%(length)s > %(max)s)" -#: musicbot/bot.py:4289 +#: musicbot/bot.py:4292 #, python-format msgid "Enqueued `%(track)s` to be played.\n" "Position in queue: %(position)s" msgstr "Accodato `%(track)s` per essere riprodotto.\n" "Posizione in coda: %(position)s" -#: musicbot/bot.py:4297 musicbot/bot.py:4312 +#: musicbot/bot.py:4300 musicbot/bot.py:4315 msgid "Playing next!" msgstr "Giocare dopo!" -#: musicbot/bot.py:4320 +#: musicbot/bot.py:4323 #, python-format msgid "%(position)s - estimated time until playing: `%(eta)s`" msgstr "%(position)s - tempo stimato fino alla riproduzione: `%(eta)s`" -#: musicbot/bot.py:4328 +#: musicbot/bot.py:4331 #, python-format msgid "%(position)s - cannot estimate time until playing." msgstr "%(position)s - non può stimare il tempo fino alla riproduzione." -#: musicbot/bot.py:4346 +#: musicbot/bot.py:4349 msgid "Add a media URL to the queue as a Stream.\n" "The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" "You can also use non-streamed media to play it without downloading it.\n" @@ -711,26 +711,26 @@ msgstr "Aggiungi un URL multimediale alla coda come Stream.\n" "È anche possibile utilizzare i media non in streaming per riprodurli senza scaricarli.\n" "Nota: FFmpeg può rilasciare il flusso in modo casuale o se si verificano singhiozzi di connessione.\n" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Le playlist in streaming non sono ancora supportate." -#: musicbot/bot.py:4419 +#: musicbot/bot.py:4422 #, python-format msgid "Now streaming track `%(track)s`" msgstr "In streaming della traccia `%(track)s`" -#: musicbot/bot.py:4428 +#: musicbot/bot.py:4431 msgid " Search with service for a number of results with the search query.\n" msgstr " Cerca con servizio per un certo numero di risultati con la query di ricerca.\n" -#: musicbot/bot.py:4432 +#: musicbot/bot.py:4435 msgid " Search YouTube for query but get a custom number of results.\n" " Note: the double-quotes are required in this case.\n" msgstr " Cerca YouTube per la query ma ottieni un numero personalizzato di risultati.\n" " Nota: in questo caso sono necessarie le doppie quotazioni.\n" -#: musicbot/bot.py:4438 +#: musicbot/bot.py:4441 msgid "Search a supported service and select from results to add to queue.\n" "Service and number arguments can be omitted, default number is 3 results.\n" "Select from these services:\n" @@ -744,191 +744,191 @@ msgstr "Cerca un servizio supportato e seleziona dai risultati da aggiungere all "- sc, soundcloud\n" "- yh, yahoo\n" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Hai raggiunto il limite di elementi della playlist (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Specifica una query di ricerca. Usa `help search` per maggiori informazioni." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "Non puoi cercare più di %(max)s video" -#: musicbot/bot.py:4532 +#: musicbot/bot.py:4535 msgid "Searching for videos..." msgstr "Ricerca video..." -#: musicbot/bot.py:4554 +#: musicbot/bot.py:4557 #, python-format msgid "Search failed due to an error: %(error)s" msgstr "Ricerca fallita a causa di un errore: %(error)s" -#: musicbot/bot.py:4566 +#: musicbot/bot.py:4569 msgid "No videos found." msgstr "Nessun video trovato." -#: musicbot/bot.py:4575 +#: musicbot/bot.py:4578 msgid "To select a song, type the corresponding number." msgstr "Per selezionare un brano, digitare il numero corrispondente." -#: musicbot/bot.py:4576 +#: musicbot/bot.py:4579 #, python-format msgid "Search results from %(service)s:" msgstr "Risultati della ricerca da %(service)s:" -#: musicbot/bot.py:4585 +#: musicbot/bot.py:4588 #, python-format msgid "**%(index)s**. **%(track)s** | %(length)s" msgstr "**%(index)s**. **%(track)s** %(length)s" -#: musicbot/bot.py:4594 +#: musicbot/bot.py:4597 msgid "\n" "**0**. Cancel" msgstr "\n" "**0**. Annulla" -#: musicbot/bot.py:4598 +#: musicbot/bot.py:4601 msgid "Pick a song" msgstr "Scegli un brano" -#: musicbot/bot.py:4649 +#: musicbot/bot.py:4652 #, python-format msgid "Added song [%(track)s](%(url)s) to the queue." msgstr "Aggiunta canzone [%(track)s](%(url)s) alla coda." -#: musicbot/bot.py:4663 +#: musicbot/bot.py:4666 #, python-format msgid "Result %(number)s of %(total)s: %(url)s" msgstr "Risultato %(number)s di %(total)s: %(url)s" -#: musicbot/bot.py:4713 +#: musicbot/bot.py:4716 msgid "Alright, coming right up!" msgstr "Bene, arrivando a destra!" -#: musicbot/bot.py:4725 +#: musicbot/bot.py:4728 msgid "Show information on what is currently playing." msgstr "Mostra informazioni su ciò che sta attualmente giocando." -#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +#: musicbot/bot.py:4780 musicbot/bot.py:6028 musicbot/bot.py:6060 msgid "[autoplaylist]" msgstr "[autoplaylist]" -#: musicbot/bot.py:4781 +#: musicbot/bot.py:4784 msgid "Now playing" msgstr "In riproduzione" -#: musicbot/bot.py:4784 +#: musicbot/bot.py:4787 msgid "Currently streaming:" msgstr "Attualmente in streaming:" -#: musicbot/bot.py:4786 +#: musicbot/bot.py:4789 msgid "Currently playing:" msgstr "In riproduzione:" -#: musicbot/bot.py:4792 +#: musicbot/bot.py:4795 msgid "Added By:" msgstr "Aggiunto Da:" -#: musicbot/bot.py:4793 +#: musicbot/bot.py:4796 #, python-format msgid "`%(user)s`" msgstr "`%(user)s`" -#: musicbot/bot.py:4797 +#: musicbot/bot.py:4800 msgid "Progress:" msgstr "Progresso:" -#: musicbot/bot.py:4815 musicbot/bot.py:6004 +#: musicbot/bot.py:4818 musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "Non ci sono brani in coda! Coda qualcosa con un comando di riproduzione." -#: musicbot/bot.py:4818 +#: musicbot/bot.py:4821 msgid "Tell MusicBot to join the channel you're in." msgstr "Dica a MusicBot di unirsi al canale in cui ti trovi." -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "Non sei connesso alla voce. Prova ad unirti a un canale vocale!" -#: musicbot/bot.py:4876 +#: musicbot/bot.py:4879 #, python-format msgid "Connected to `%(channel)s`" msgstr "Connesso a `%(channel)s`" -#: musicbot/bot.py:4882 +#: musicbot/bot.py:4885 msgid "Makes MusicBot follow a user when they change channels in a server.\n" msgstr "Rendi MusicBot seguire un utente quando cambiano canali in un server.\n" -#: musicbot/bot.py:4905 +#: musicbot/bot.py:4908 #, python-format msgid "No longer following user `%(user)s`" msgstr "Non più seguendo l'utente `%(user)s`" -#: musicbot/bot.py:4915 +#: musicbot/bot.py:4918 #, python-format msgid "Now following user `%(user)s` between voice channels." msgstr "Ora seguendo l'utente `%(user)s` tra i canali vocali." -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot non può seguire un utente che non è un membro del server." -#: musicbot/bot.py:4935 +#: musicbot/bot.py:4938 #, python-format msgid "Will follow user `%(user)s` between voice channels." msgstr "Seguirà l'utente `%(user)s` tra i canali vocali." -#: musicbot/bot.py:4941 +#: musicbot/bot.py:4944 msgid "Pause playback if a track is currently playing." msgstr "Metti in pausa la riproduzione se una traccia è in riproduzione." -#: musicbot/bot.py:4952 +#: musicbot/bot.py:4955 #, python-format msgid "Paused music in `%(channel)s`" msgstr "Musica in pausa in `%(channel)s`" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Il giocatore non sta giocando." -#: musicbot/bot.py:4958 +#: musicbot/bot.py:4961 msgid "Resumes playback if the player was previously paused." msgstr "Riprende la riproduzione se il giocatore è stato precedentemente in pausa." -#: musicbot/bot.py:4969 +#: musicbot/bot.py:4972 #, python-format msgid "Resumed music in `%(channel)s`" msgstr "Riprendi musica in `%(channel)s`" -#: musicbot/bot.py:4975 +#: musicbot/bot.py:4978 msgid "Resumed music queue" msgstr "Ripresa coda musicale" -#: musicbot/bot.py:4977 +#: musicbot/bot.py:4980 msgid "Player is not paused." msgstr "Il giocatore non è in pausa." -#: musicbot/bot.py:4979 +#: musicbot/bot.py:4982 msgid "Shuffle all current tracks in the queue." msgstr "Mischia tutte le tracce correnti nella coda." -#: musicbot/bot.py:5014 +#: musicbot/bot.py:5017 msgid "Shuffled all songs in the queue." msgstr "Mischia tutte le canzoni nella coda." -#: musicbot/bot.py:5016 +#: musicbot/bot.py:5019 msgid "Removes all songs currently in the queue." msgstr "Rimuove tutti i brani attualmente in coda." -#: musicbot/bot.py:5028 +#: musicbot/bot.py:5031 msgid "Cleared all songs from the queue." msgstr "Cancellati tutti i brani dalla coda." -#: musicbot/bot.py:5033 +#: musicbot/bot.py:5036 msgid "Remove a song from the queue, optionally at the given queue position.\n" "If the position is omitted, the song at the end of the queue is removed.\n" "Use the queue command to find position number of your track.\n" @@ -938,41 +938,41 @@ msgstr "Rimuovi un brano dalla coda, opzionalmente alla posizione della coda dat "Usa il comando coda per trovare il numero di posizione della tua traccia.\n" "Tuttavia, le posizioni di tutte le canzoni sono cambiate quando una nuova canzone inizia a riprodurre.\n" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Niente nella coda da rimuovere!" -#: musicbot/bot.py:5068 +#: musicbot/bot.py:5071 #, python-format msgid "Removed `%(track)s` added by `%(user)s`" msgstr "Rimosso `%(track)s` aggiunto da `%(user)s`" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "Niente trovato nella coda dall'utente `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "Non hai il permesso di rimuovere questa voce dalla coda.\n" "Devi essere colui che l'ha accodata o che ha i permessi di salto istantanei." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Numero di voce non valido. Usa il comando coda per trovare le posizioni della coda." -#: musicbot/bot.py:5105 +#: musicbot/bot.py:5108 #, python-format msgid "Removed entry `%(track)s` added by `%(user)s`" msgstr "Voce rimossa `%(track)s` aggiunta da `%(user)s`" -#: musicbot/bot.py:5110 +#: musicbot/bot.py:5113 #, python-format msgid "Removed entry `%(track)s`" msgstr "Voce rimossa `%(track)s`" -#: musicbot/bot.py:5121 +#: musicbot/bot.py:5124 msgid "Skip or vote to skip the current playing song.\n" "Members with InstaSkip permission may use force parameter to bypass voting.\n" "If LegacySkip option is enabled, the force parameter can be ignored.\n" @@ -980,67 +980,67 @@ msgstr "Salta o vota per saltare la canzone in riproduzione.\n" "I membri con autorizzazione InstaSkip possono usare il parametro force per ignorare la votazione.\n" "Se l'opzione LegacySkip è abilitata, il parametro force può essere ignorato.\n" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Impossibile saltare! Il giocatore non sta giocando!" -#: musicbot/bot.py:5153 +#: musicbot/bot.py:5156 #, python-format msgid "The next song `%(track)s` is downloading, please wait." msgstr "La prossima canzone `%(track)s` è in download, si prega di attendere." -#: musicbot/bot.py:5161 +#: musicbot/bot.py:5164 msgid "The next song will be played shortly. Please wait." msgstr "La prossima canzone verrà riprodotta a breve. Attendere prego." -#: musicbot/bot.py:5166 +#: musicbot/bot.py:5169 msgid "Something odd is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Qualcosa di strano sta accadendo.\n" "Potresti voler riavviare il bot se non inizia a funzionare." -#: musicbot/bot.py:5173 +#: musicbot/bot.py:5176 msgid "Something strange is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Sta accadendo qualcosa di strano.\n" "Potresti voler riavviare il bot se non inizia a funzionare." -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "Non hai il permesso di forzare un brano in loop." -#: musicbot/bot.py:5211 +#: musicbot/bot.py:5214 #, python-format msgid "Force skipped `%(track)s`." msgstr "Forza saltata `%(track)s`." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "Non hai il permesso di forzare il salto." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "Non hai il permesso di saltare una canzone in loop." -#: musicbot/bot.py:5269 +#: musicbot/bot.py:5272 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "The vote to skip has been passed.%(next_up)s" msgstr "Il tuo salto per `%(track)s` è stato riconosciuto.\n" "Il voto da saltare è stato passato.%(next_up)s" -#: musicbot/bot.py:5276 +#: musicbot/bot.py:5279 msgid " Next song coming up!" msgstr " Prossima canzone in arrivo!" -#: musicbot/bot.py:5293 +#: musicbot/bot.py:5296 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "Need **%(votes)s** more vote(s) to skip this song." msgstr "Il tuo salto per `%(track)s` è stato riconosciuto.\n" "Hai bisogno di **%(votes)s** più voto(i) per saltare questa canzone." -#: musicbot/bot.py:5306 +#: musicbot/bot.py:5309 msgid "Set the output volume level of MusicBot from 1 to 100.\n" "Volume parameter allows a leading + or - for relative adjustments.\n" "The volume setting is retained until MusicBot is restarted.\n" @@ -1048,34 +1048,34 @@ msgstr "Impostare il livello di volume di uscita di MusicBot da 1 a 100. Il para "del volume consente un leader + o - per le relative regolazioni.\n" "L'impostazione del volume viene mantenuta fino al riavvio di MusicBot.\n" -#: musicbot/bot.py:5323 +#: musicbot/bot.py:5326 #, python-format msgid "Current volume: `%(volume)s%%`" msgstr "Volume attuale: `%(volume)s%%`" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` non è un numero valido" -#: musicbot/bot.py:5351 +#: musicbot/bot.py:5354 #, python-format msgid "Updated volume from **%(old)d** to **%(new)d**" msgstr "Volume aggiornato da **%(old)d** a **%(new)d" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Variazione di volume irragionevole fornita: %(old_volume)s%(adjustment)s è %(new_volume)s.\n" "Il volume può essere impostato solo da 1 a 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Volume irragionevole fornito: %(volume)s. Fornire un valore compreso tra 1 e 100." -#: musicbot/bot.py:5374 +#: musicbot/bot.py:5377 msgid "Change the playback speed of the currently playing track only.\n" "The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" "Streaming playback does not support speed adjustments.\n" @@ -1083,133 +1083,133 @@ msgstr "Cambia la velocità di riproduzione solo della traccia in riproduzione.\ "La velocità deve essere compresa tra 0.5 e 100. a causa dei limiti di ffmpeg. La riproduzione in streaming\n" "non supporta le regolazioni della velocità.\n" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "Nessuna traccia in riproduzione, non è possibile impostare la velocità.\n" "Utilizzare il comando di configurazione per impostare una velocità di riproduzione predefinita." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "La velocità non può essere applicata ai media in streaming." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Devi fornire una velocità da impostare." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "La velocità fornita non è valida. Usa un numero compreso tra 0.5 e 100." -#: musicbot/bot.py:5432 +#: musicbot/bot.py:5435 #, python-format msgid "Setting playback speed to `%(speed).3f` for current track." msgstr "Impostazione della velocità di riproduzione su `%(speed).3f` per la traccia corrente." -#: musicbot/bot.py:5441 +#: musicbot/bot.py:5444 msgid " Add an new alias with optional arguments.\n" msgstr " Aggiungi un nuovo alias con argomenti opzionali.\n" -#: musicbot/bot.py:5444 +#: musicbot/bot.py:5447 msgid " Remove an alias with the given name." msgstr " Rimuovi un alias con il nome specificato." -#: musicbot/bot.py:5447 +#: musicbot/bot.py:5450 msgid " Reload or save aliases from/to the config file." msgstr " Ricarica o salva gli alias da/al file di configurazione." -#: musicbot/bot.py:5451 +#: musicbot/bot.py:5454 msgid "Allows management of aliases from discord. To see aliases use the help command." msgstr "Consente la gestione degli alias dalla discordia. Per vedere gli alias usare il comando aiuto." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Opzione non valida per il comando: `%(option)s`" -#: musicbot/bot.py:5477 +#: musicbot/bot.py:5480 msgid "Aliases reloaded from config file." msgstr "Alias ricaricato dal file di configurazione." -#: musicbot/bot.py:5482 +#: musicbot/bot.py:5485 msgid "Aliases saved to config file." msgstr "Alias salvati nel file di configurazione." -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Impossibile salvare gli alias a causa di errore:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Devi fornire un alias e un comando all'alias" -#: musicbot/bot.py:5498 +#: musicbot/bot.py:5501 #, python-format msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" msgstr "Nuovo alias aggiunto. `%(alias)s` è ora un alias di `%(command)s`" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Devi fornire un nome alias da rimuovere." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "L'alias `%(alias)s` non esiste." -#: musicbot/bot.py:5518 +#: musicbot/bot.py:5521 #, python-format msgid "Alias `%(alias)s` was removed." msgstr "Alias `%(alias)s` è stato rimosso." -#: musicbot/bot.py:5528 +#: musicbot/bot.py:5531 msgid " Shows help text about any missing config options.\n" msgstr " Mostra il testo di aiuto su tutte le opzioni di configurazione mancanti.\n" -#: musicbot/bot.py:5531 +#: musicbot/bot.py:5534 msgid " Lists the names of options which have been changed since loading config file.\n" msgstr " Elenca i nomi delle opzioni che sono state modificate dal caricamento del file di configurazione.\n" -#: musicbot/bot.py:5534 +#: musicbot/bot.py:5537 msgid " List the available config options and their sections.\n" msgstr " Elenca le opzioni di configurazione disponibili e le loro sezioni.\n" -#: musicbot/bot.py:5537 +#: musicbot/bot.py:5540 msgid " Reload the options.ini file from disk.\n" msgstr " Ricarica il file options.ini dal disco.\n" -#: musicbot/bot.py:5540 +#: musicbot/bot.py:5543 msgid " Shows help text for a specific option.\n" msgstr " Mostra il testo di aiuto per un'opzione specifica.\n" -#: musicbot/bot.py:5543 +#: musicbot/bot.py:5546 msgid " Display the current value of the option.\n" msgstr " Mostra il valore corrente dell'opzione.\n" -#: musicbot/bot.py:5546 +#: musicbot/bot.py:5549 msgid " Saves the current value to the options file.\n" msgstr " Salva il valore corrente nel file delle opzioni.\n" -#: musicbot/bot.py:5549 +#: musicbot/bot.py:5552 msgid " Validates the option and sets the config for the session, but not to file.\n" msgstr " Convalida l'opzione e imposta la configurazione per la sessione, ma non per il file.\n" -#: musicbot/bot.py:5552 +#: musicbot/bot.py:5555 msgid " Reset the option to its default value.\n" msgstr " Reimposta l'opzione al valore predefinito.\n" -#: musicbot/bot.py:5555 +#: musicbot/bot.py:5558 msgid "Manage options.ini configuration from within Discord." msgstr "Gestisci la configurazione options.ini all'interno di Discord." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "La configurazione non può usare le menzioni del canale e dell'utente allo stesso tempo." -#: musicbot/bot.py:5596 +#: musicbot/bot.py:5599 #, python-format msgid "**Missing Option:** `%(config)s`\n" "```\n" @@ -1220,22 +1220,22 @@ msgstr "**Opzione mancante:** `%(config)s`\n" "%(comment)s\n" "Il valore predefinito è impostato a: %(default)s```\n" -#: musicbot/bot.py:5609 +#: musicbot/bot.py:5612 msgid "*All config options are present and accounted for!*" msgstr "*Tutte le opzioni di configurazione sono presenti e contabilizzate!*" -#: musicbot/bot.py:5625 +#: musicbot/bot.py:5628 msgid "No config options appear to be changed." msgstr "Nessuna opzione di configurazione sembra essere cambiata." -#: musicbot/bot.py:5627 +#: musicbot/bot.py:5630 #, python-format msgid "**Changed Options:**\n" "%(changed)s" msgstr "**Opzioni Modificate:**\n" "%(changed)s" -#: musicbot/bot.py:5647 +#: musicbot/bot.py:5650 #, python-format msgid "## Available Options:\n" "**Editable Options:**\n" @@ -1248,51 +1248,51 @@ msgstr "## Opzioni Disponibili:\n" "**Modifica Manuale Solamente:**\n" "%(manual)s" -#: musicbot/bot.py:5669 +#: musicbot/bot.py:5672 msgid "Config options reloaded from file successfully!" msgstr "Opzioni di configurazione ricaricate dal file con successo!" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Impossibile ricaricare la configurazione a causa del seguente errore:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Impossibile risolvere il nome della sezione dal nome dell'opzione. Si prega di fornire una sezione e un nome di opzione validi." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "L'opzione data è ambigua, si prega di fornire un nome di sezione." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Devi fornire un nome di sezione e un nome di opzione per questo comando." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "La sezione `%(section)s` non è disponibile.\n" "Le sezioni disponibili sono: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "L'opzione `%(option)s` non è disponibile." -#: musicbot/bot.py:5733 +#: musicbot/bot.py:5736 msgid "This option can only be set by editing the config file." msgstr "Questa opzione può essere impostata solo modificando il file di configurazione." -#: musicbot/bot.py:5737 +#: musicbot/bot.py:5740 #, python-format msgid "By default this option is set to: %(default)s" msgstr "Per impostazione predefinita questa opzione è impostata a: %(default)s" -#: musicbot/bot.py:5742 +#: musicbot/bot.py:5745 #, python-format msgid "**Option:** `%(config)s`\n" "%(comment)s\n\n" @@ -1301,27 +1301,27 @@ msgstr "**Opzione:** `%(config)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "L'opzione `%(option)s` non è modificabile. Impossibile salvare sul disco." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Impossibile salvare l'opzione: `%(option)s`" -#: musicbot/bot.py:5767 +#: musicbot/bot.py:5770 #, python-format msgid "Successfully saved the option: `%(config)s`" msgstr "Opzione salvata con successo: `%(config)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "L'opzione `%(option)s` non è modificabile, il valore non può essere visualizzato." -#: musicbot/bot.py:5784 +#: musicbot/bot.py:5787 #, python-format msgid "**Option:** `%(config)s`\n" "Current Value: `%(loaded)s`\n" @@ -1330,80 +1330,80 @@ msgstr "**Opzione:** `%(config)s`\n" "Valore Attuale: `%(loaded)s`\n" "INI Valore Del File: `%(ini)s`" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "L'opzione `%(option)s` non è modificabile. Impossibile aggiornare l'impostazione." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Devi fornire una sezione, un'opzione e un valore per questo sottocomando." -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "L'opzione `%(option)s` non è stata aggiornata!" -#: musicbot/bot.py:5822 +#: musicbot/bot.py:5825 #, python-format msgid "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "L'opzione `%(config)s` è stata aggiornata per questa sessione.\n" "Per salvare il cambiamento usa `config save %(section)s %(option)s`" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "L'opzione `%(option)s` non è modificabile. Impossibile ripristinare il valore predefinito." -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "L'opzione `%(option)s` non è stata ripristinata al predefinito!" -#: musicbot/bot.py:5857 +#: musicbot/bot.py:5860 #, python-format msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "L'opzione `%(config)s` è stata ripristinata al suo valore predefinito `%(default)s`.\n" "Per salvare la modifica usa `config save %(section)s %(option)s`" -#: musicbot/bot.py:5872 +#: musicbot/bot.py:5875 msgid "Deprecated command, use the config command instead." msgstr "Comando obsoleto, usa invece il comando di configurazione." -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "Il comando opzione è deprecato, utilizza invece il comando di configurazione." -#: musicbot/bot.py:5892 +#: musicbot/bot.py:5895 msgid "Display information about cache storage or clear cache according to configured limits.\n" "Using update option will scan the cache for external changes before displaying details." msgstr "Visualizza le informazioni sulla cache o sulla cache pulita in base ai limiti configurati.\n" "Usando l'opzione di aggiornamento scansionerà la cache per modifiche esterne prima di visualizzare i dettagli." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Opzione specificata non valida, usa: info, aggiornamento o cancella" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Disabled" msgstr "Disabilitato" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Enabled" msgstr "Abilitato" -#: musicbot/bot.py:5919 +#: musicbot/bot.py:5922 #, python-format msgid "%(time)s days" msgstr "%(time)s giorni" -#: musicbot/bot.py:5925 musicbot/bot.py:5928 +#: musicbot/bot.py:5928 musicbot/bot.py:5931 msgid "Unlimited" msgstr "Illimitato" -#: musicbot/bot.py:5933 +#: musicbot/bot.py:5936 #, python-format msgid "**Video Cache:** *%(state)s*\n" "**Storage Limit:** *%(size)s*\n" @@ -1414,40 +1414,40 @@ msgstr "**Video Cache:** *%(state)s*\n" "**Time Limit:** *%(time)s*\n\n" "**Cached Now: %(used)s in %(files)s file(s)." -#: musicbot/bot.py:5956 +#: musicbot/bot.py:5959 msgid "Cache has been cleared." msgstr "La cache è stata cancellata." -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Non riuscito** per eliminare la cache, controlla i log per ulteriori informazioni..." -#: musicbot/bot.py:5965 +#: musicbot/bot.py:5968 msgid "No cache found to clear." msgstr "Nessuna cache trovata da cancellare." -#: musicbot/bot.py:5973 +#: musicbot/bot.py:5976 msgid "Display information about the current player queue.\n" "Optional page number shows later entries in the queue.\n" msgstr "Visualizza informazioni sulla coda di riproduttore corrente.\n" "Numero di pagina opzionale mostra le voci successive nella coda.\n" -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "L'argomento pagina coda deve essere un numero intero." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "Il numero di pagina richiesto è fuori dai limiti.\n" "Ci sono ** pagine%(total)s**." -#: musicbot/bot.py:6025 +#: musicbot/bot.py:6026 msgid "(unknown duration)" msgstr "(durata sconosciuta)" -#: musicbot/bot.py:6034 +#: musicbot/bot.py:6035 #, python-format msgid "Currently playing: `%(title)s`\n" "Added by: `%(user)s`\n" @@ -1456,14 +1456,14 @@ msgstr "Attualmente in riproduzione: `%(title)s`\n" "Aggiunto da: `%(user)s`\n" "Progresso: `[%(progress)s/%(total)s]`\n" -#: musicbot/bot.py:6064 +#: musicbot/bot.py:6065 #, python-format msgid "**Entry #%(index)s:**Title: `%(title)s`\n" "Added by: `%(user)s\n\n" msgstr "**Voce #%(index)s:**Titolo: `%(title)s`\n" "Aggiunto da: `%(user)s\n\n" -#: musicbot/bot.py:6072 +#: musicbot/bot.py:6073 #, python-format msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" "Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" @@ -1472,17 +1472,17 @@ msgstr "%(progress)sCi sono `%(total)s` voci nella coda.\n" "Ecco le prossime canzoni %(per_page)s , a partire dalla canzone #%(start)s\n\n" "%(tracks)s" -#: musicbot/bot.py:6085 +#: musicbot/bot.py:6086 msgid "Songs in queue" msgstr "Brani in coda" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Riprova. MusicBot non ha potuto fare o ottenere un riferimento al messaggio di coda.\n" "Se il problema persiste, file una segnalazione di bug." -#: musicbot/bot.py:6156 +#: musicbot/bot.py:6157 msgid "Search for and remove bot messages and commands from the calling text channel.\n" "Optionally supply a number of messages to search through, 50 by default 500 max.\n" "This command may be slow if larger ranges are given.\n" @@ -1490,64 +1490,64 @@ msgstr "Cerca e rimuovi i messaggi e i comandi del bot dal canale di testo della "Facoltativamente fornisce un numero di messaggi da ricercare, 50 per impostazione predefinita 500 max.\n" "Questo comando può essere lento se vengono forniti intervalli più grandi.\n" -#: musicbot/bot.py:6180 +#: musicbot/bot.py:6181 msgid "Invalid parameter. Please provide a number of messages to search." msgstr "Parametri non validi. Si prega di fornire un numero di messaggi da cercare." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Impossibile usare lo spurgo sul canale DM privato." -#: musicbot/bot.py:6222 +#: musicbot/bot.py:6223 #, python-format msgid "Cleaned up %(number)s message(s)." msgstr "Ripuliti %(number)s messaggio." -#: musicbot/bot.py:6226 +#: musicbot/bot.py:6227 msgid "Bot does not have permission to manage messages." msgstr "Il bot non ha i permessi per gestire i messaggi." -#: musicbot/bot.py:6231 +#: musicbot/bot.py:6232 msgid "Dump the individual URLs of a playlist to a file." msgstr "Ricarica i singoli URL di una scaletta su un file." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "L'URL fornito non era un URL valido." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Impossibile estrarre le informazioni dall'url di input\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "Questa non sembra essere una playlist." -#: musicbot/bot.py:6282 +#: musicbot/bot.py:6283 #, python-format msgid "Here is the playlist dump for: %(url)s" msgstr "Ecco il dump della playlist per: %(url)s" -#: musicbot/bot.py:6292 +#: musicbot/bot.py:6293 msgid "Display your Discord User ID, or the ID of a mentioned user.\n" "This command is deprecated in favor of Developer Mode in Discord clients.\n" msgstr "Visualizza il tuo ID utente Discord, o l'ID di un utente menzionato.\n" "Questo comando è deprecato a favore della Modalità Sviluppatore nei client Discord.\n" -#: musicbot/bot.py:6307 +#: musicbot/bot.py:6308 #, python-format msgid "Your user ID is `%(id)s`" msgstr "Il tuo ID utente è `%(id)s`" -#: musicbot/bot.py:6312 +#: musicbot/bot.py:6313 #, python-format msgid "The user ID for `%(username)s` is `%(id)s`" msgstr "L'ID utente per `%(username)s` è `%(id)s`" -#: musicbot/bot.py:6319 +#: musicbot/bot.py:6320 msgid "List the Discord IDs for the selected category.\n" "Returns all ID data by default, but one or more categories may be selected.\n" "This command is deprecated in favor of using Developer mode in Discord clients.\n" @@ -1555,28 +1555,28 @@ msgstr "Elenca gli ID Discord per la categoria selezionata.\n" "Restituisce tutti i dati ID per impostazione predefinita, ma una o più categorie possono essere selezionate.\n" "Questo comando è deprecato a favore dell'utilizzo della modalità Sviluppatore nei client Discord.\n" -#: musicbot/bot.py:6341 +#: musicbot/bot.py:6342 #, python-format msgid "Valid categories: %(cats)s" msgstr "Categorie valide: %(cats)s" -#: musicbot/bot.py:6388 +#: musicbot/bot.py:6389 msgid "Here are the IDs you requested:" msgstr "Ecco gli ID che hai richiesto:" -#: musicbot/bot.py:6395 +#: musicbot/bot.py:6396 msgid "Get a list of your permissions, or the permissions of the mentioned user." msgstr "Ottieni un elenco dei tuoi permessi, o i permessi dell'utente menzionato." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "ID utente o soprannome del server non validi, si prega di ricontrollare l'ID e riprovare." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Impossibile determinare l'utente discord. Riprova." -#: musicbot/bot.py:6439 +#: musicbot/bot.py:6440 #, python-format msgid "Your command permissions in %(server)s are:\n" "```\n" @@ -1587,7 +1587,7 @@ msgstr "I tuoi permessi di comando in %(server)s sono:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6448 +#: musicbot/bot.py:6449 #, python-format msgid "The command permissions for %(username)s in %(server)s are:\n" "```\n" @@ -1598,58 +1598,58 @@ msgstr "I permessi di comando per %(username)s in %(server)s sono:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6464 +#: musicbot/bot.py:6465 msgid " Show loaded groups and list permission options.\n" msgstr " Mostra le opzioni dei permessi dei gruppi caricati e dell'elenco.\n" -#: musicbot/bot.py:6467 +#: musicbot/bot.py:6468 msgid " Reloads permissions from the permissions.ini file.\n" msgstr " Ricarica i permessi dal file permissions.ini.\n" -#: musicbot/bot.py:6470 +#: musicbot/bot.py:6471 msgid " Add new group with defaults.\n" msgstr " Aggiungi un nuovo gruppo con valori predefiniti.\n" -#: musicbot/bot.py:6473 +#: musicbot/bot.py:6474 msgid " Remove existing group.\n" msgstr " Rimuovi gruppo esistente.\n" -#: musicbot/bot.py:6476 +#: musicbot/bot.py:6477 msgid " Show help text for the permission option.\n" msgstr " Mostra il testo di aiuto per l'opzione di autorizzazione.\n" -#: musicbot/bot.py:6479 +#: musicbot/bot.py:6480 msgid " Show permission value for given group and permission.\n" msgstr " Mostra il valore dei permessi per un determinato gruppo e permesso.\n" -#: musicbot/bot.py:6482 +#: musicbot/bot.py:6483 msgid " Save permissions group to file.\n" msgstr " Salva gruppo di autorizzazioni su file.\n" -#: musicbot/bot.py:6485 +#: musicbot/bot.py:6486 msgid " Set permission value for the group.\n" msgstr " Imposta il valore di autorizzazione per il gruppo.\n" -#: musicbot/bot.py:6488 +#: musicbot/bot.py:6489 msgid "Manage permissions.ini configuration from within discord." msgstr "Gestisci la configurazione permissions.ini dall'interno di discord." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Le autorizzazioni non possono usare le menzioni del canale e dell'utente allo stesso tempo." -#: musicbot/bot.py:6534 +#: musicbot/bot.py:6535 msgid "Permissions reloaded from file successfully!" msgstr "Permessi ricaricati dal file con successo!" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Impossibile ricaricare i permessi a causa di un errore:\n" "%(raw_error)s" -#: musicbot/bot.py:6558 +#: musicbot/bot.py:6559 #, python-format msgid "## Available Groups:\n" "%(groups)s\n" @@ -1660,41 +1660,41 @@ msgstr "## Gruppi Disponibili:\n" "## Opzioni Disponibili:\n" "%(options)s\n" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Devi fornire un nome di gruppo o di opzione per questo comando." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Devi fornire un gruppo, un'opzione e un valore da impostare per questo comando." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "Il sottocomando %(option)s richiede un nome di gruppo e di permesso." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "Il gruppo `%(group)s` non è disponibile.\n" "I gruppi disponibili sono: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "Il permesso `%(option)s` non è disponibile." -#: musicbot/bot.py:6624 +#: musicbot/bot.py:6625 msgid "This permission can only be set by editing the permissions file." msgstr "Questa autorizzazione può essere impostata solo modificando il file dei permessi." -#: musicbot/bot.py:6633 +#: musicbot/bot.py:6634 #, python-format msgid "By default this permission is set to: `%(value)s`" msgstr "Per impostazione predefinita questa autorizzazione è impostata a: `%(value)s`" -#: musicbot/bot.py:6638 +#: musicbot/bot.py:6639 #, python-format msgid "**Permission:** `%(option)s`\n" "%(comment)s\n\n" @@ -1703,12 +1703,12 @@ msgstr "**Permesso:** `%(option)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Impossibile aggiungere il gruppo `%(group)s` che esiste già." -#: musicbot/bot.py:6660 +#: musicbot/bot.py:6661 #, python-format msgid "Successfully added new group: `%(group)s`\n" "You can now customize the permissions with: `setperms set %(group)s`\n" @@ -1717,32 +1717,32 @@ msgstr "Nuovo gruppo aggiunto con successo: `%(group)s`\n" "Ora puoi personalizzare i permessi con: `setperms set %(group)s`\n" "Assicurati di salvare il nuovo gruppo con: `setperms save %(group)s`" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Impossibile rimuovere il gruppo integrato." -#: musicbot/bot.py:6677 +#: musicbot/bot.py:6678 #, python-format msgid "Successfully removed group: `%(group)s`\n" "Make sure to save this change with: `setperms save %(group)s`" msgstr "Gruppo rimosso con successo: `%(group)s`\n" "Assicurati di salvare questa modifica con: `setperms save %(group)s`" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "Il gruppo proprietario non è modificabile." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Impossibile salvare il gruppo: `%(group)s`" -#: musicbot/bot.py:6700 +#: musicbot/bot.py:6701 #, python-format msgid "Successfully saved the group: `%(group)s`" msgstr "Salvato con successo il gruppo: `%(group)s`" -#: musicbot/bot.py:6711 +#: musicbot/bot.py:6712 #, python-format msgid "**Permission:** `%(permission)s`\n" "Current Value: `%(loaded)s`\n" @@ -1751,155 +1751,205 @@ msgstr "**Permesso:** `%(permission)s`\n" "Valore Attuale: `%(loaded)s`\n" "INI Valore Del File: `%(ini)s`" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Il permesso `%(option)s` non è stato aggiornato!" -#: musicbot/bot.py:6748 +#: musicbot/bot.py:6749 #, python-format msgid "Permission `%(permission)s` was updated for this session.\n" "To save the change use `setperms save %(section)s %(option)s`" msgstr "Il permesso `%(permission)s` è stato aggiornato per questa sessione.\n" "Per salvare il cambiamento usa `setperms save %(section)s %(option)s`" -#: musicbot/bot.py:6765 +#: musicbot/bot.py:6766 msgid "Change the bot's username on discord.\n" "Note: The API may limit name changes to twice per hour." msgstr "Cambia il nome utente del bot su discord.\n" "Nota: l'API può limitare le modifiche del nome a due volte all'ora." -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Impossibile modificare il nome utente. Hai cambiato i nomi troppe volte?\n" "Ricorda che i cambiamenti di nome sono limitati a due volte all'ora.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Impossibile modificare il nome utente a causa di errore: \n" "%(raw_error)s" -#: musicbot/bot.py:6795 +#: musicbot/bot.py:6796 #, python-format msgid "Set the bot's username to `%(name)s`" msgstr "Imposta il nome utente del bot su `%(name)s`" -#: musicbot/bot.py:6798 +#: musicbot/bot.py:6799 msgid "Change the MusicBot's nickname." msgstr "Cambia il soprannome di MusicBot." -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Impossibile cambiare il soprannome: nessun permesso." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Impossibile impostare il soprannome a causa di errore: \n" "%(raw_error)s" -#: musicbot/bot.py:6825 +#: musicbot/bot.py:6826 #, python-format msgid "Set the bot's nickname to `%(nick)s`" msgstr "Imposta il nickname del bot su `%(nick)s`" -#: musicbot/bot.py:6832 +#: musicbot/bot.py:6833 msgid " Set a per-server command prefix." msgstr " Imposta un prefisso di comando per server." -#: musicbot/bot.py:6834 +#: musicbot/bot.py:6835 msgid " Clear the per-server command prefix." msgstr " Pulisce il prefisso del comando per server." -#: musicbot/bot.py:6838 +#: musicbot/bot.py:6839 msgid "Override the default command prefix in the server.\n" "The option EnablePrefixPerGuild must be enabled first." msgstr "Sovrascrivi il prefisso predefinito del comando nel server.\n" "L'opzione AbilitaPrefixPerGuild deve essere abilitata prima." -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Le emoji personalizzate devono provenire da questo server per essere utilizzate come prefisso." -#: musicbot/bot.py:6866 +#: musicbot/bot.py:6867 msgid "Server command prefix is cleared." msgstr "Il prefisso del comando del server è cancellato." -#: musicbot/bot.py:6871 +#: musicbot/bot.py:6872 #, python-format msgid "Server command prefix is now: %(prefix)s" msgstr "Il prefisso del comando del server è ora: %(prefix)s" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Prefisso per server non è abilitato!\n" "Usa il comando di configurazione per aggiornare il prefisso." -#: musicbot/bot.py:6885 +#: musicbot/bot.py:6886 +msgid " Show language codes available to use.\n" +msgstr " Mostra i codici di lingua disponibili da usare.\n" + +#: musicbot/bot.py:6889 +msgid " Set the desired language for this server.\n" +msgstr " Imposta la lingua desiderata per questo server.\n" + +#: musicbot/bot.py:6892 +msgid " Reset the server language to bot's default language.\n" +msgstr " Reimposta la lingua del server alla lingua predefinita del bot.\n" + +#: musicbot/bot.py:6895 +msgid "Manage the language used for messages in the calling server." +msgstr "Gestisce la lingua utilizzata per i messaggi nel server di chiamata." + +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Questo comando può essere usato solo nelle gilde." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Sottocomando fornito non valido. Utilizzare il comando help per ulteriori informazioni." + +#: musicbot/bot.py:6924 +#, python-format +msgid "**Current Language:** `%(locale)s`\n" +"**Available Languages:**\n" +"```\n" +"%(languages)s```" +msgstr "**Lingua Attuale:** `%(locale)s`\n" +"**Lingue Disponibili:**\n" +"```\n" +"%(languages)s```" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Impossibile impostare la lingua su `%(locale)s` non è disponibile." + +#: musicbot/bot.py:6939 +#, python-format +msgid "Language for this server now set to: `%(locale)s`" +msgstr "Lingua per questo server impostata a: `%(locale)s`" + +#: musicbot/bot.py:6947 +#, python-format +msgid "Language for this server has been reset to: `%(locale)s`" +msgstr "La lingua per questo server è stata reimpostata a: `%(locale)s`" + +#: musicbot/bot.py:6959 msgid "Change MusicBot's avatar.\n" "Attaching a file and omitting the url parameter also works.\n" msgstr "Cambia l'avatar di MusicBot.\n" "Allegare un file e omettere il parametro url funziona.\n" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "È necessario fornire un URL o allegare un file." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Impossibile cambiare l'avatar a causa dell'errore: \n" "%(raw_error)s" -#: musicbot/bot.py:6919 +#: musicbot/bot.py:6993 msgid "Changed the bot's avatar." msgstr "Cambiato l'avatar del bot." -#: musicbot/bot.py:6922 +#: musicbot/bot.py:6996 msgid "Force MusicBot to disconnect from the discord server." msgstr "Forza MusicBot a disconnettersi dal server discord." -#: musicbot/bot.py:6933 +#: musicbot/bot.py:7007 #, python-format msgid "Disconnected from server `%(guild)s`" msgstr "Disconnesso dal server `%(guild)s`" -#: musicbot/bot.py:6948 +#: musicbot/bot.py:7022 msgid "Disconnected a playerless voice client? [BUG]" msgstr "Disconnesso un client vocale senza lettore? [BUG]" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Attualmente non connesso al server `%(guild)s`" -#: musicbot/bot.py:6960 +#: musicbot/bot.py:7034 msgid " Attempt to reload without process restart. The default option.\n" msgstr " Tentativo di ricaricare senza riavviare il processo. L'opzione predefinita.\n" -#: musicbot/bot.py:6962 +#: musicbot/bot.py:7036 msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" msgstr " Tentativo di riavviare l'intero processo MusicBot, ricaricando tutto.\n" -#: musicbot/bot.py:6964 +#: musicbot/bot.py:7038 msgid " Full restart, but attempt to update pip packages before restart.\n" msgstr " Riavvio completo, ma tenta di aggiornare i pacchetti pip prima del riavvio.\n" -#: musicbot/bot.py:6966 +#: musicbot/bot.py:7040 msgid " Full restart, but update MusicBot source code with git first.\n" msgstr " Riavvio completo, ma aggiorna il codice sorgente di MusicBot con git prima.\n" -#: musicbot/bot.py:6968 +#: musicbot/bot.py:7042 msgid " Attempt to update all dependency and source code before fully restarting.\n" msgstr " Tentativo di aggiornare tutte le dipendenze e il codice sorgente prima di riavviare completamente.\n" -#: musicbot/bot.py:6972 +#: musicbot/bot.py:7046 msgid "Attempts to restart the MusicBot in a number of different ways.\n" "With no option supplied, a `soft` restart is implied.\n" "It can be used to remotely update a MusicBot installation, but should be used with care.\n" @@ -1909,103 +1959,103 @@ msgstr "Tentativi di riavviare MusicBot in diversi modi.\n" "Può essere usato per aggiornare da remoto un'installazione di MusicBot, ma dovrebbe essere usato con cura.\n" "Se hai un service manager, ti consigliamo di usarlo invece di questo comando per il riavvio.\n" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Opzione fornita non valida, usa una di: soft, full, upgrade, uppip, or upgit" -#: musicbot/bot.py:6999 +#: musicbot/bot.py:7073 #, python-format msgid "%(emoji)s Restarting current instance..." msgstr "%(emoji)s Riavvio dell'istanza corrente..." -#: musicbot/bot.py:7004 +#: musicbot/bot.py:7078 #, python-format msgid "%(emoji)s Restarting bot process..." msgstr "%(emoji)s Riavvio del processo robot..." -#: musicbot/bot.py:7009 +#: musicbot/bot.py:7083 #, python-format msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." msgstr "%(emoji)s Cercherà di aggiornare i pacchetti pip richiesti e riavviare il bot..." -#: musicbot/bot.py:7014 +#: musicbot/bot.py:7088 #, python-format msgid "%(emoji)s Will try to update bot code with git and restart the bot..." msgstr "%(emoji)s cercherà di aggiornare il codice bot con git e riavviare il bot..." -#: musicbot/bot.py:7019 +#: musicbot/bot.py:7093 #, python-format msgid "%(emoji)s Will try to upgrade everything and restart the bot..." msgstr "%(emoji)s Cercherà di aggiornare tutto e riavviare il bot..." -#: musicbot/bot.py:7053 +#: musicbot/bot.py:7127 msgid "Disconnect from all voice channels and close the MusicBot process." msgstr "Disconnetti da tutti i canali vocali e chiudi il processo MusicBot." -#: musicbot/bot.py:7079 +#: musicbot/bot.py:7153 msgid " Leave the discord server given by name or server ID." msgstr " Lascia il server discord dato dal nome o dal server ID." -#: musicbot/bot.py:7083 +#: musicbot/bot.py:7157 msgid "Force MusicBot to leave the given Discord server.\n" "Names are case-sensitive, so using an ID number is more reliable.\n" msgstr "Forza MusicBot a lasciare il server Discord specificato. I nomi\n" "sono sensibili all'uso di maiuscolo/minuscolo, quindi l'uso di un numero ID è più affidabile.\n" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Devi fornire un ID o un nome." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "Nessuna gilda trovata con l'ID o il nome `%(input)s`" -#: musicbot/bot.py:7121 +#: musicbot/bot.py:7195 msgid "Unknown" msgstr "Sconosciuto" -#: musicbot/bot.py:7128 +#: musicbot/bot.py:7202 #, python-format msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" msgstr "Lasciato la gilda: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" -#: musicbot/bot.py:7138 +#: musicbot/bot.py:7212 msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." msgstr "Comando utilizzato per il test. Stampa un elenco di comandi che possono essere verificati da una suite di test." -#: musicbot/bot.py:7162 +#: musicbot/bot.py:7236 msgid "This command issues a log at level CRITICAL, but does nothing else.\n" "Can be used to manually pinpoint events in the MusicBot log file.\n" msgstr "Questo comando emette un log a livello CRITICA, ma non fa altro.\n" "Può essere usato per individuare manualmente gli eventi nel file di registro di MusicBot.\n" -#: musicbot/bot.py:7173 +#: musicbot/bot.py:7247 #, python-format msgid "Logged breakpoint with ID: %(uuid)s" msgstr "Breakpoint loggato con ID: %(uuid)s" -#: musicbot/bot.py:7180 +#: musicbot/bot.py:7254 msgid " View most common types reported by objgraph.\n" msgstr " Visualizza i tipi più comuni riportati da objgraph.\n" -#: musicbot/bot.py:7183 +#: musicbot/bot.py:7257 msgid " View limited objgraph.show_growth() output.\n" msgstr " Visualizza output objgraph.show_growth() limitato.\n" -#: musicbot/bot.py:7186 +#: musicbot/bot.py:7260 msgid " View most common types of leaking objects.\n" msgstr " Visualizza i tipi più comuni di oggetti fuoriusciti.\n" -#: musicbot/bot.py:7189 +#: musicbot/bot.py:7263 msgid " View typestats of leaking objects.\n" msgstr " Visualizza i tipestat degli oggetti fuoriusciti.\n" -#: musicbot/bot.py:7192 +#: musicbot/bot.py:7266 msgid " Evaluate the given function and arguments on objgraph.\n" msgstr " Valuta la funzione e gli argomenti dati su objgraph.\n" -#: musicbot/bot.py:7196 +#: musicbot/bot.py:7270 msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" "You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" "Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" @@ -2013,11 +2063,11 @@ msgstr "Interagire con objgraph, se installato, per ottenere informazioni sull'u "È possibile passare un metodo arbitrario con argomenti (ma non spazi!) che è un membro di objgraph.\n" "Poiché questo metodo valuta il codice arbitrario, è considerato pericoloso come il comando di debug.\n" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Impossibile importare `objgraph`, è installato?" -#: musicbot/bot.py:7249 +#: musicbot/bot.py:7323 msgid "This command will execute arbitrary python code in the command scope.\n" "First eval() is attempted, if exceptions are thrown exec() is tried next.\n" "If eval is successful, it's return value is displayed.\n" @@ -2035,7 +2085,7 @@ msgstr "Questo comando eseguirà il codice python arbitrario nel campo di applic "Questo comando può essere rimosso in una versione futura, ed è utilizzato dagli sviluppatori per debug del comportamento di MusicBot.\n" "Il pericolo di questo comando non può essere sottostimato. Non usarlo o dargli accesso se non capisci i rischi!\n" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -2048,65 +2098,65 @@ msgstr "Esecuzione del codice di debug non riuscita:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7320 +#: musicbot/bot.py:7394 msgid "Create 'markdown' for options, permissions, or commands from the code.\n" "The output is used to update GitHub Pages and is thus unsuitable for normal reference use." msgstr "Crea 'markdown' per opzioni, permessi o comandi dal codice.\n" "L'output viene utilizzato per aggiornare le pagine di GitHub ed è quindi inadatto per un uso di riferimento normale." -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "Il sottocomando deve essere uno di: %(options)s" -#: musicbot/bot.py:7387 +#: musicbot/bot.py:7461 msgid "Makes default INI files." msgstr "Rende i file INI predefiniti." -#: musicbot/bot.py:7410 +#: musicbot/bot.py:7486 msgid "Saved the requested INI file to disk. Go check it" msgstr "Salvato il file INI richiesto su disco. Vai a controllarlo" -#: musicbot/bot.py:7415 +#: musicbot/bot.py:7491 msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" msgstr "Visualizza la versione attuale del bot e controlla gli aggiornamenti di MusicBot o dipendenze.\n" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Impossibile individuare git eseguibile." -#: musicbot/bot.py:7473 +#: musicbot/bot.py:7549 #, python-format msgid "No updates in branch `%(branch)s` remote." msgstr "Nessun aggiornamento nel ramo `%(branch)s` remoto." -#: musicbot/bot.py:7478 +#: musicbot/bot.py:7554 #, python-format msgid "New commits are available in `%(branch)s` branch remote." msgstr "Nuovi commit sono disponibili in `%(branch)s` branch remote." -#: musicbot/bot.py:7484 musicbot/bot.py:7527 +#: musicbot/bot.py:7560 musicbot/bot.py:7603 msgid "Error while checking, see logs for details." msgstr "Errore durante il controllo, vedere i registri per i dettagli." -#: musicbot/bot.py:7518 +#: musicbot/bot.py:7594 #, python-format msgid "Update for `%(name)s` to version: `%(version)s`\n" msgstr "Aggiorna per `%(name)s` alla versione: `%(version)s`\n" -#: musicbot/bot.py:7524 +#: musicbot/bot.py:7600 msgid "No updates for dependencies found." msgstr "Nessun aggiornamento per le dipendenze trovate." -#: musicbot/bot.py:7530 +#: musicbot/bot.py:7606 msgid "There are updates for MusicBot available for download." msgstr "Ci sono aggiornamenti per MusicBot disponibili per il download." -#: musicbot/bot.py:7532 +#: musicbot/bot.py:7608 msgid "MusicBot is totally up-to-date!" msgstr "MusicBot è completamente aggiornato!" -#: musicbot/bot.py:7536 +#: musicbot/bot.py:7612 #, python-format msgid "%(status)s\n\n" "**Source Code Updates:**\n" @@ -2119,29 +2169,29 @@ msgstr "%(status)s\n\n" "**Aggiornamenti Dipendenza:**\n" "%(pip_status)s" -#: musicbot/bot.py:7550 +#: musicbot/bot.py:7626 msgid "Displays the MusicBot uptime, or time since last start / restart." msgstr "Mostra l' uptime di MusicBot o il tempo dall' ultimo avvio / riavvio." -#: musicbot/bot.py:7565 +#: musicbot/bot.py:7641 #, python-format msgid "%(name)s has been online for `%(time)s`" msgstr "%(name)s è stato online per `%(time)s`" -#: musicbot/bot.py:7572 +#: musicbot/bot.py:7648 msgid "Display latency information for Discord API and all connected voice clients." msgstr "Visualizza le informazioni sulla latenza per le API Discord e tutti i client vocali connessi." -#: musicbot/bot.py:7594 +#: musicbot/bot.py:7670 #, python-format msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) nella regione: `%(region)s`\n" -#: musicbot/bot.py:7599 +#: musicbot/bot.py:7675 msgid "No voice clients connected.\n" msgstr "Nessun client vocale connesso.\n" -#: musicbot/bot.py:7604 +#: musicbot/bot.py:7680 #, python-format msgid "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" @@ -2150,47 +2200,47 @@ msgstr "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" "%(voices)s" -#: musicbot/bot.py:7612 +#: musicbot/bot.py:7688 msgid "Display API latency and Voice latency if MusicBot is connected." msgstr "Mostra latenza API e latenza vocale se MusicBot è connesso." #. TRANSLATORS: short for automatic, displayed when voice region is not selected. -#: musicbot/bot.py:7628 +#: musicbot/bot.py:7704 msgid "auto" msgstr "auto" -#: musicbot/bot.py:7630 +#: musicbot/bot.py:7706 #, python-format msgid "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" msgstr "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) nella regione `%(region)s`" -#: musicbot/bot.py:7635 +#: musicbot/bot.py:7711 #, python-format msgid "**API Latency:** `%(delay).0f ms`%(voice)s" msgstr "**API Latency:** `%(delay).0f ms`%(voice)s" -#: musicbot/bot.py:7640 +#: musicbot/bot.py:7716 msgid "Display MusicBot version number in the chat." msgstr "Mostra il numero di versione di MusicBot nella chat." -#: musicbot/bot.py:7648 +#: musicbot/bot.py:7724 #, python-format msgid "https://github.com/Just-Some-Bots/MusicBot\n" "Current version: `%(version)s`" msgstr "https://github.com/Just-Some-Bots/MusicBot\n" "Versione attuale: `%(version)s`" -#: musicbot/bot.py:7660 +#: musicbot/bot.py:7736 msgid " Update the cookies.txt file using a cookies.txt attachment." msgstr " Aggiornare il file cookies.txt utilizzando un allegato cookies.txt." -#: musicbot/bot.py:7663 +#: musicbot/bot.py:7739 msgid " Enable or disable cookies.txt file without deleting it." msgstr " Abilita o disabilita il file cookies.txt senza eliminarlo." -#: musicbot/bot.py:7667 +#: musicbot/bot.py:7743 msgid "Allows management of the cookies feature in yt-dlp.\n" "When updating cookies, you must upload a file named cookies.txt\n" "If cookies are disabled, uploading will enable the feature.\n" @@ -2210,90 +2260,90 @@ msgstr "Consente la gestione della funzione cookie in yt-dlp.\n" " Non è raccomandato a causa di questi rischi, e non si dovrebbe utilizzare questa funzione\n" " se non si capisce come evitare i rischi." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookie già abilitati." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "I cookie devono essere caricati per essere abilitati. (File dei cookie)." -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Impossibile abilitare i cookie a causa di errore: %(raw_error)s" -#: musicbot/bot.py:7711 +#: musicbot/bot.py:7787 msgid "Cookies have been enabled." msgstr "I cookie sono stati abilitati." -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Impossibile rinominare il file cookie a causa di errore: %(raw_error)s\n" "I cookie sono temporaneamente disabilitati e saranno riattivati al prossimo riavvio." -#: musicbot/bot.py:7726 +#: musicbot/bot.py:7802 msgid "Cookies have been disabled." msgstr "I cookie sono stati disabilitati." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "Non sono stati trovati caricamenti allegati, riprova durante il caricamento di un file di cookie." -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Errore nel scaricare il file dei cookie da discord: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Impossibile salvare i cookie sul disco: %(raw_error)s" -#: musicbot/bot.py:7762 +#: musicbot/bot.py:7838 msgid "Cookies uploaded and enabled." msgstr "Cookie caricati e abilitati." -#: musicbot/bot.py:7872 +#: musicbot/bot.py:7948 msgid "You cannot use this bot in private messages." msgstr "Non puoi usare questo bot in messaggi privati." -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Questo comando non è consentito per il tuo gruppo di permessi: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Questo comando richiede di essere in un canale vocale." -#: musicbot/bot.py:8075 +#: musicbot/bot.py:8151 #, python-format msgid "**Command:** %(name)s" msgstr "**Comando:** %(name)s" -#: musicbot/bot.py:8134 +#: musicbot/bot.py:8210 msgid "Exception Error" msgstr "Errore Di Eccezione" -#: musicbot/bot.py:8179 +#: musicbot/bot.py:8255 #, python-format msgid "**Example with prefix:**\n" "%(prefix)s`%(command)s ...`\n" msgstr "**Esempio con prefisso:**\n" "%(prefix)s`%(command)s ...`\n" -#: musicbot/bot.py:8183 +#: musicbot/bot.py:8259 msgid "No description given.\n" msgstr "Nessuna descrizione fornita.\n" -#: musicbot/bot.py:8186 +#: musicbot/bot.py:8262 msgid "No usage given." msgstr "Nessun utilizzo dato." -#: musicbot/bot.py:8220 +#: musicbot/bot.py:8296 #, python-format msgid "**Example usage:**\n" "```%(usage)s```\n" @@ -2304,12 +2354,12 @@ msgstr "**Esempio di utilizzo:**\n" "%(prefix_note)s**Descrizione:**\n" "%(desc)s" -#: musicbot/bot.py:8273 +#: musicbot/bot.py:8349 #, python-format msgid "Leaving voice channel %(channel)s due to inactivity." msgstr "Lasciare il canale vocale %(channel)s a causa di inattività." -#: musicbot/bot.py:8554 +#: musicbot/bot.py:8645 #, python-format msgid "Left `%(guild)s` due to bot owner not being found in it." msgstr "Left `%(guild)s` a causa del proprietario del bot che non viene trovato in esso." @@ -2493,43 +2543,43 @@ msgid "Enable automatic skip of auto playlist songs when a user plays a new song msgstr "Abilita il salto automatico dei brani della playlist automatica quando un utente riproduce una nuova canzone.\n" "Questo vale solo per il brano in riproduzione corrente se è stato aggiunto dalla scaletta automatica." -#: musicbot/config.py:469 +#: musicbot/config.py:468 msgid "Remove songs from the auto playlist if they are found in the song block list." msgstr "Rimuovere i brani dalla playlist automatica se sono trovati nell'elenco dei brani." -#: musicbot/config.py:488 +#: musicbot/config.py:487 msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" "Delay period is controlled by DeleteDelayShort and DeleteDelayLong." msgstr "Permetti a MusicBot di eliminare automaticamente i messaggi che invia, dopo un ritardo. Il periodo di ritardo\n" "è controllato da DeleteDelayShort e DeleteDelayLong." -#: musicbot/config.py:498 +#: musicbot/config.py:497 msgid "Auto delete valid commands after a delay." msgstr "Eliminare automaticamente i comandi validi dopo un ritardo." -#: musicbot/config.py:507 +#: musicbot/config.py:506 msgid "Sets the short period of seconds before deleting messages.\n" "This period is used by messages that require no further interaction." msgstr "Imposta il breve periodo di secondi prima di eliminare i messaggi.\n" "Questo periodo è usato dai messaggi che non richiedono ulteriori interazioni." -#: musicbot/config.py:518 +#: musicbot/config.py:517 msgid "Sets the long delay period before deleting messages.\n" "This period is used by interactive or long-winded messages, like search and help." msgstr "Imposta il periodo di ritardo lungo prima di eliminare i messaggi.\n" "Questo periodo è usato da messaggi interattivi o a lunga scadenza, come ricerca e aiuto." -#: musicbot/config.py:530 +#: musicbot/config.py:529 msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." msgstr "Permetti a MusicBot di salvare la coda dei brani, in modo che i brani in coda sopravvivano ai riavvii." -#: musicbot/config.py:540 +#: musicbot/config.py:539 msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" "Currently this option does not apply to auto playlist or songs added to an empty queue." msgstr "Abilita MusicBot per scaricare il brano successivo nella coda mentre un brano è in riproduzione.\n" "Attualmente questa opzione non si applica alla playlist automatica o ai brani aggiunti a una coda vuota." -#: musicbot/config.py:550 +#: musicbot/config.py:549 msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" "will display dynamic info about music currently being played in its status instead.\n" "Status messages may also use the following variables:\n" @@ -2553,69 +2603,69 @@ msgstr "Specifica un messaggio personalizzato da usare come stato del bot. Se la " {p0_title} = Il titolo della traccia per la traccia in riproduzione.\n" " {p0_url} = L'URL della traccia per la traccia in riproduzione." -#: musicbot/config.py:571 +#: musicbot/config.py:570 msgid "If enabled, status messages will report info on paused players." msgstr "Se abilitata, i messaggi di stato segnaleranno informazioni sui giocatori in pausa." #. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. -#: musicbot/config.py:582 +#: musicbot/config.py:581 msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" msgstr "Se abilitata, MusicBot salverà il titolo della traccia in: data/[Server ID]/current.txt" -#: musicbot/config.py:592 +#: musicbot/config.py:591 msgid "Allow the member who requested the song to skip it, bypassing votes." msgstr "Permetti al membro che ha richiesto la canzone di saltarla, aggirando i voti." -#: musicbot/config.py:602 +#: musicbot/config.py:601 msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" "This option can cause delay between playing songs, as the whole track must be processed." msgstr "Cerca di usare ffmpeg per ottenere opzioni di normalizzazione del volume per l'uso in riproduzione.\n" "Questa opzione può causare ritardi tra la riproduzione dei brani, poiché l'intera traccia deve essere elaborata." -#: musicbot/config.py:612 +#: musicbot/config.py:611 msgid "Allow MusicBot to format its messages as embeds." msgstr "Permetti a MusicBot di formattare i suoi messaggi come incorporati." -#: musicbot/config.py:621 +#: musicbot/config.py:620 msgid "The number of entries to show per-page when using q command to list the queue." msgstr "Il numero di voci da mostrare per pagina quando si usa il comando q per elencare la coda." -#: musicbot/config.py:631 +#: musicbot/config.py:630 msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." msgstr "Abilita MusicBot per rimuovere automaticamente le voci non riproducibili dalla scaletta automatica." -#: musicbot/config.py:640 +#: musicbot/config.py:639 msgid "Display MusicBot config settings in the logs at startup." msgstr "Visualizza le impostazioni di configurazione di MusicBot nei log all'avvio." #. TRANSLATORS: InstaSkip should not be translated. -#: musicbot/config.py:650 +#: musicbot/config.py:649 msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." msgstr "Abilita gli utenti con il permesso InstaSkip per bypassare il voto saltato e salti forza." -#: musicbot/config.py:660 +#: musicbot/config.py:659 msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." msgstr "Se abilitata, MusicBot lascerà i server se il proprietario non è nella loro lista di membri." -#: musicbot/config.py:670 +#: musicbot/config.py:669 msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" msgstr "Se abilitato, MusicBot permetterà ai comandi di avere più nomi utilizzando i dati in: config/aliases.json" -#: musicbot/config.py:681 +#: musicbot/config.py:680 msgid "Replace MusicBot name/version in embed footer with custom text.\n" "Only applied when UseEmbeds is enabled and it is not blank." msgstr "Sostituisci il nome/la versione di MusicBot nel piè di pagina incorporato con testo personalizzato.\n" "Applicato solo quando UseEmbeds è abilitato e non è vuoto." -#: musicbot/config.py:691 +#: musicbot/config.py:690 msgid "Completely remove the footer from embeds." msgstr "Rimuovere completamente il piè di pagina dagli incorporati." -#: musicbot/config.py:700 +#: musicbot/config.py:699 msgid "MusicBot will automatically deafen itself when entering a voice channel." msgstr "MusicBot si assorderà automaticamente quando si entra in un canale vocale." -#: musicbot/config.py:711 +#: musicbot/config.py:710 msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" "after waiting for a period set in LeaveInactiveVCTimeOut option.\n" "Listeners are channel members, excluding bots, who are not deafened." @@ -2623,17 +2673,17 @@ msgstr "Se abilitata, MusicBot lascerà un canale vocale quando nessun utente st "dopo aver aspettato un periodo impostato nell'opzione LeaveInactiveVCTimeOut.\n" "Gli ascoltatori sono membri del canale, esclusi i bot, che non sono assordati." -#: musicbot/config.py:723 +#: musicbot/config.py:722 msgid "Set a period of time to wait before leaving an inactive voice channel.\n" "You can set this to a number of seconds or phrase like: 4 hours" msgstr "Imposta un periodo di tempo da attendere prima di lasciare un canale vocale inattivo.\n" "È possibile impostare questo a un numero di secondi o frase come: 4 ore" -#: musicbot/config.py:734 +#: musicbot/config.py:733 msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." msgstr "Se abilitata, MusicBot lascerà il canale immediatamente quando la coda del brano è vuota." -#: musicbot/config.py:744 +#: musicbot/config.py:743 msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" "You can set this to a number of seconds of phrase like: 15 minutes\n" "Set it to 0 to disable leaving in this way." @@ -2641,24 +2691,24 @@ msgstr "Quando si è in pausa o non si gioca, attendere questa quantità di temp "È possibile impostare questo a un certo numero di secondi di frase come: 15 minuti\n" "Impostarlo a 0 per disabilitare la partenza in questo modo." -#: musicbot/config.py:756 +#: musicbot/config.py:755 msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." msgstr "Se abilitato, gli utenti devono indicare le scelte dei risultati della ricerca inviando un messaggio invece di usare le reazioni." -#: musicbot/config.py:766 +#: musicbot/config.py:765 msgid "Sets the default number of search results to fetch when using the search command without a specific number." msgstr "Imposta il numero predefinito di risultati di ricerca da recuperare quando si utilizza il comando di ricerca senza un numero specifico." #. TRANSLATORS: setprefix should not be translated. -#: musicbot/config.py:778 +#: musicbot/config.py:777 msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." msgstr "Consenti a MusicBot di salvare un prefisso di comando per server, e abilita il comando setprefix." -#: musicbot/config.py:789 +#: musicbot/config.py:788 msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." msgstr "Se abilitato e più membri aggiungono canzoni, MusicBot organizzerà la riproduzione per un brano per membro." -#: musicbot/config.py:800 +#: musicbot/config.py:799 msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" "This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" "MusicBot must be restarted to enable network testing.\n" @@ -2668,7 +2718,7 @@ msgstr "Consenti a MusicBot di utilizzare i ping temporizzati per rilevare l'int "MusicBot deve essere riavviato per abilitare il test di rete.\n" "Per impostazione predefinita questo è disabilitato." -#: musicbot/config.py:814 +#: musicbot/config.py:813 #, python-format msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" "This will contain all songs from all servers." @@ -2676,12 +2726,12 @@ msgstr "Abilita il salvataggio di tutti i brani riprodotti da MusicBot in un fil "Questo conterrà tutti i brani da tutti i server." #. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. -#: musicbot/config.py:829 +#: musicbot/config.py:828 #, python-format msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" msgstr "Abilita il salvataggio dei brani riprodotti per server su un file di playlist: %(basename)s[Server ID]%(ext)s" -#: musicbot/config.py:845 +#: musicbot/config.py:844 msgid "Enable playback of local media files using the play command.\n" "When enabled, users can use: `play file://path/to/file.ext`\n" "to play files from the local MediaFileDirectory path." @@ -2689,11 +2739,11 @@ msgstr "Abilita la riproduzione di file multimediali locali usando il comando di "Quando abilitato, gli utenti possono usare: `play file://path/to/file. xt`\n" "per riprodurre i file dal percorso locale MediaFileDirectory." -#: musicbot/config.py:858 +#: musicbot/config.py:857 msgid "Allow MusicBot to automatically unpause when play commands are used." msgstr "Permetti a MusicBot di smettere automaticamente quando vengono utilizzati i comandi di riproduzione." -#: musicbot/config.py:877 +#: musicbot/config.py:876 msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" "The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" "Leave blank to disable." @@ -2701,7 +2751,7 @@ msgstr "Impostazioni sperimentali, HTTP/HTTPS proxy da utilizzare con il downloa "Il valore impostato qui viene passato al controllo dell'intestazione `ytdlp --proxy` e aiohttp.\n" "Lascia vuoto per disabilitare." -#: musicbot/config.py:888 +#: musicbot/config.py:887 msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" "It is not typically recommended by yt-dlp to change the UA string.\n" "For examples of what you might put here, check the following two links:\n" @@ -2715,7 +2765,7 @@ msgstr "Opzione sperimentale per impostare un'intestazione statica User-Agent in " https://www.useragents.me/ \n" "Lascia vuoto per usare le stringhe UA predefinite generate dinamicamente." -#: musicbot/config.py:903 +#: musicbot/config.py:902 #, python-format msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" "When enabled, you must use the generated URL and code to authorize an account.\n" @@ -2730,7 +2780,7 @@ msgstr "Opzione sperimentale per abilitare yt-dlp per utilizzare un account YouT "L'utilizzo di un account personale potrebbe non essere raccomandato.\n" "Imposta sì per abilitare o no per disabilitare." -#: musicbot/config.py:920 +#: musicbot/config.py:919 msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" "This starts the OAuth2 prompt early, rather than waiting for a song request.\n" "The URL set here should be an accessible YouTube video URL.\n" @@ -2740,31 +2790,31 @@ msgstr "URL video di YouTube opzionale utilizzato all'avvio per attivare l'autor "L'URL impostato qui dovrebbe essere un URL video di YouTube accessibile. L'autorizzazione\n" "deve essere completata prima che l'avvio continui quando è impostato." -#: musicbot/config.py:939 +#: musicbot/config.py:938 msgid "Toggle the user block list feature, without emptying the block list." msgstr "Attiva/disattiva la funzione lista blocchi utente, senza svuotare la lista blocchi." -#: musicbot/config.py:949 +#: musicbot/config.py:948 msgid "An optional file path to a text file listing Discord User IDs, one per line." msgstr "Un percorso opzionale di un file di testo che elenca gli ID utente Discord, uno per riga." -#: musicbot/config.py:961 +#: musicbot/config.py:960 msgid "Enable the song block list feature, without emptying the block list." msgstr "Abilita la funzione della lista dei brani, senza svuotare la lista dei blocchi." -#: musicbot/config.py:971 +#: musicbot/config.py:970 msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" "Any song title or URL that contains any line in the list will be blocked." msgstr "Un percorso di file opzionale a un file di testo che elenca URL, parole o frasi una per riga.\n" "Qualsiasi titolo del brano o URL che contiene qualsiasi riga nella lista sarà bloccato." -#: musicbot/config.py:984 +#: musicbot/config.py:983 msgid "An optional path to a directory containing auto playlist files.\n" "Each file should contain a list of playable URLs or terms, one track per line." msgstr "Un percorso opzionale a una directory contenente file di scaletta automatica.\n" "Ogni file deve contenere un elenco di URL o termini riproducibili, una traccia per riga." -#: musicbot/config.py:996 +#: musicbot/config.py:995 #, python-format msgid "An optional directory path where playable media files can be stored.\n" "All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" @@ -2775,11 +2825,11 @@ msgstr "Un percorso opzionale di directory dove possono essere memorizzati i fil "Esempio: file://some/folder/name/file.ext\n" "Mappe a: %(path)s/some/folder/name/file.ext" -#: musicbot/config.py:1015 +#: musicbot/config.py:1014 msgid "An optional directory path where MusicBot will store long and short-term cache for playback." msgstr "Un percorso opzionale della directory in cui MusicBot memorizzerà la cache a lungo e breve termine per la riproduzione." -#: musicbot/config.py:1026 +#: musicbot/config.py:1025 #, python-format msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" "When disabled, only one log is kept and its contents are replaced each run.\n" @@ -2788,7 +2838,7 @@ msgstr "Configura la rotazione automatica del file di registro al riavvio e limi "Quando disabilitato, viene conservato un solo registro e il suo contenuto viene sostituito ogni esecuzione.\n" "Set to 0 to disable. Maximum allowed number is %(max)s." -#: musicbot/config.py:1039 +#: musicbot/config.py:1038 msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" "If left blank, a warning is logged and the default will be used instead.\n" "Learn more about time format codes from the tables and data here:\n" @@ -2798,13 +2848,13 @@ msgstr "Configura il formato della data del file di registro usato quando LogsMa "Scopri di più sui codici di formato orario dalle tabelle e dai dati qui:\n" " https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" -#: musicbot/config.py:1053 +#: musicbot/config.py:1052 msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" "This option will disable UseExperimentalEqualization option as well." msgstr "Potenzialmente riduce l'utilizzo della CPU, ma disabilita i controlli di volume e velocità.\n" "Questa opzione disabiliterà anche l'opzione UseExperimentalEqualization." -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2827,7 +2877,7 @@ msgstr "Errore durante la lettura della configurazione.\n\n" " Ogni sezione deve avere almeno un'opzione.\n" " Utilizzare le opzioni di esempio come modello o copiarlo dal repository." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2839,7 +2889,7 @@ msgstr "Errore durante la convalida delle opzioni di configurazione.\n\n" "Soluzione:\n" " Assicurati che il percorso configurato sia un percorso per una cartella / directory." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2854,7 +2904,7 @@ msgstr "Errore durante la convalida delle opzioni di configurazione.\n\n" "Soluzione:\n" " Doppio controllo l'impostazione è valida, percorso directory accessibile." -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2867,7 +2917,7 @@ msgstr "Errore durante la lettura delle opzioni di configurazione.\n\n" "Soluzione:\n" " Imposta l'opzione di configurazione Token o imposta la variabile di ambiente %(env_var)s con un token App." -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2881,7 +2931,7 @@ msgstr "Errore durante il recupero automatico di 'OwnerID'.\n\n" ":\n" " Imposta manualmente l'opzione di configurazione 'OwnerID' o riprova più tardi." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2893,7 +2943,7 @@ msgstr "Errore nella convalida delle opzioni di configurazione.\n\n" "Soluzione:\n" " Non utilizzare il Bot o l'App ID nel campo 'OwnerID'." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2908,7 +2958,7 @@ msgstr "Errore nella localizzazione della configurazione.\n\n" "Soluzione:\n" " Verifica che la cartella di configurazione e i file esistano e possono essere letti da MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2925,7 +2975,7 @@ msgstr "Errore nel caricamento della configurazione.\n\n" " Assicurarsi che il file sia accessibile e privo di errori.\n" " Copiare il file di esempio dal repo se tutto il resto fallisce." -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2938,7 +2988,7 @@ msgstr "Errore nel caricamento del valore di configurazione.\n\n" "Soluzione:\n" " Imposta %(option)s su un ID numerico o impostalo su `auto` o `0` per il binding automatico del proprietario." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2951,7 +3001,7 @@ msgstr "Errore nel caricamento del valore di configurazione.\n\n" "Soluzione:\n" " Controlla l'impostazione del percorso e assicurati che il file esista ed sia accessibile a MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" diff --git a/i18n/ja_JP/LC_MESSAGES/musicbot_logs.mo b/i18n/ja_JP/LC_MESSAGES/musicbot_logs.mo index e0c333950a4ebd4cc568c4b9f61c64fe18bbd510..f95c553329db03625e6f21132d5459857f60077d 100644 GIT binary patch delta 13503 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 delta 13077 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 Kj@an_7W{vh0u&Gc diff --git a/i18n/ja_JP/LC_MESSAGES/musicbot_logs.po b/i18n/ja_JP/LC_MESSAGES/musicbot_logs.po index 8c8bfc2ab..4d28c54ff 100644 --- a/i18n/ja_JP/LC_MESSAGES/musicbot_logs.po +++ b/i18n/ja_JP/LC_MESSAGES/musicbot_logs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 18:12\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:39\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -96,85 +96,85 @@ msgstr "プレイリスト %sのURLは既に無視されています" msgid "Adding new URL to playlist, %(playlist)s: %(track)s" msgstr "プレイリストに新しいURLを追加しています。 %(playlist)s: %(track)s" -#: musicbot/bot.py:163 +#: musicbot/bot.py:165 #, python-format msgid "Initializing MusicBot %s" msgstr "MusicBot %s の初期化中" -#: musicbot/bot.py:243 +#: musicbot/bot.py:245 #, python-format msgid "Loop is closed, cannot create task for: %r" msgstr "ループが閉じられています。次のタスクを作成できません: %r" -#: musicbot/bot.py:259 +#: musicbot/bot.py:261 #, python-format msgid "Unhandled exception for task: %r" msgstr "タスクの未処理例外: %r" -#: musicbot/bot.py:263 +#: musicbot/bot.py:265 #, python-format msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" msgstr "タスクの未処理例外: %(task)r -- %(raw_error)s" -#: musicbot/bot.py:308 musicbot/bot.py:330 +#: musicbot/bot.py:310 musicbot/bot.py:332 msgid "Spotify did not provide us with a token. Disabling." msgstr "Spotifyはトークンを提供していません。無効にしています。" -#: musicbot/bot.py:312 +#: musicbot/bot.py:314 msgid "Authenticated with Spotify successfully using client ID and secret." msgstr "クライアント ID とシークレットを使用して Spotify で正常に認証されました。" -#: musicbot/bot.py:316 +#: musicbot/bot.py:318 #, python-format msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." msgstr "Spotifyクライアントを起動できませんでした。クライアントIDと秘密情報は正しいですか?詳細: %s。とにかく5秒後に続行します..." -#: musicbot/bot.py:324 +#: musicbot/bot.py:326 msgid "The config did not have Spotify app credentials, attempting to use guest mode." msgstr "設定にはSpotifyアプリの資格情報がありませんでした。ゲストモードを使用しようとしています。" -#: musicbot/bot.py:334 +#: musicbot/bot.py:336 msgid "Authenticated with Spotify successfully using guest mode." msgstr "ゲストモードで Spotify で正常に認証されました。" -#: musicbot/bot.py:339 +#: musicbot/bot.py:341 #, python-format msgid "Could not start Spotify client using guest mode. Details: %s." msgstr "ゲストモードでSpotifyクライアントを起動できませんでした。詳細: %s." -#: musicbot/bot.py:347 +#: musicbot/bot.py:349 msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" msgstr "実験的な Yt-dlp OAuth2 プラグインが有効になっています。これはいつでも壊れる可能性があります!" -#: musicbot/bot.py:354 +#: musicbot/bot.py:356 msgid "Initialized, now connecting to discord." msgstr "初期化されました。今すぐDiscordに接続しています。" -#: musicbot/bot.py:365 +#: musicbot/bot.py:367 msgid "Network ping test is disabled via config." msgstr "ネットワーク接続テストは設定で無効になっています。" -#: musicbot/bot.py:369 +#: musicbot/bot.py:371 msgid "Network ping test is closing down." msgstr "ネットワーク接続テストは終了しています。" -#: musicbot/bot.py:380 +#: musicbot/bot.py:382 msgid "Could not resolve ping target." msgstr "ターゲットを解決できませんでした。" -#: musicbot/bot.py:410 +#: musicbot/bot.py:412 msgid "Network ping test cancelled." msgstr "ネットワーク接続テストがキャンセルされました。" -#: musicbot/bot.py:424 +#: musicbot/bot.py:426 msgid "Network testing via HTTP does not have a session to borrow." msgstr "HTTP経由のネットワークテストには、借りるセッションがありません。" -#: musicbot/bot.py:449 +#: musicbot/bot.py:451 msgid "Could not locate `ping` executable in your environment." msgstr "環境で `ping` 実行ファイルが見つかりませんでした。" -#: musicbot/bot.py:475 +#: musicbot/bot.py:477 #, python-format msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -182,7 +182,7 @@ msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTT "Alternatively disable network checking via config." msgstr "" -#: musicbot/bot.py:485 +#: musicbot/bot.py:487 #, python-format msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -190,7 +190,7 @@ msgid "MusicBot was denied permission to execute the `ping` command. Will attem "Alternatively disable network checking via config." msgstr "" -#: musicbot/bot.py:495 +#: musicbot/bot.py:497 #, python-format msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -198,554 +198,559 @@ msgid "Your environment may not allow the `ping` system command. Will attempt t "Alternatively disable network checking via config." msgstr "" -#: musicbot/bot.py:510 +#: musicbot/bot.py:512 msgid "MusicBot detected network is available again." msgstr "MusicBot が検出されたネットワークは再び利用可能です。" -#: musicbot/bot.py:515 +#: musicbot/bot.py:517 msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." msgstr "VoiceClientが接続されていません。MusicPlayerの再開を待機しています..." -#: musicbot/bot.py:519 +#: musicbot/bot.py:521 #, python-format msgid "Resuming playback of player: (%(guild_id)s) %(player)r" msgstr "プレーヤーの再生再開: (%(guild_id)s) %(player)r" -#: musicbot/bot.py:530 +#: musicbot/bot.py:532 msgid "MusicBot detected a network outage." msgstr "MusicBotはネットワーク停止を検出しました。" -#: musicbot/bot.py:534 +#: musicbot/bot.py:536 #, python-format msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" msgstr "ネットワークの空き状況によりMusicPlayerを一時停止: (%(guild_id)s) %(player)r" -#: musicbot/bot.py:555 +#: musicbot/bot.py:557 #, python-format msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" msgstr "ギルドで所有者を探しています: %(guild)s (必須音声: %(required)s) と得点: %(owner)s" -#: musicbot/bot.py:569 +#: musicbot/bot.py:571 msgid "Checking for channels to auto-join or resume..." msgstr "自動参加または再開するチャンネルを確認しています..." -#: musicbot/bot.py:581 +#: musicbot/bot.py:583 #, python-format msgid "Guild not available, cannot auto join: %(id)s/%(name)s" msgstr "ギルドが利用できません。自動参加できません: %(id)s/%(name)s" -#: musicbot/bot.py:589 +#: musicbot/bot.py:591 #, python-format msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" msgstr "再開可能なボイスチャンネルが見つかりました:ギルド内の %(channel)s : %(guild)s" -#: musicbot/bot.py:602 +#: musicbot/bot.py:604 #, python-format msgid "Will try resuming voice session instead of Auto-Joining channel: %s" msgstr "自動接続チャンネルの代わりに音声セッションを再開してみます: %s" -#: musicbot/bot.py:619 +#: musicbot/bot.py:621 #, python-format msgid "Found owner in voice channel: %s" msgstr "音声チャンネルの所有者が見つかりました: %s" -#: musicbot/bot.py:624 +#: musicbot/bot.py:626 #, python-format msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" msgstr "再開可能なチャネルを無視して、チャンネル内の所有者へのAutoSummon : %s" -#: musicbot/bot.py:629 +#: musicbot/bot.py:631 #, python-format msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" msgstr "自動参加チャンネルを無視しました。チャンネルの所有者に自動召喚: %s" -#: musicbot/bot.py:641 +#: musicbot/bot.py:643 #, python-format msgid "Already connected to channel: %(channel)s in guild: %(guild)s" msgstr "既にチャンネルに接続されています: ギルド内の %(channel)s : %(guild)s" -#: musicbot/bot.py:650 +#: musicbot/bot.py:652 #, python-format msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" msgstr "チャンネルへの参加を試みています: ギルドの %(channel)s : %(guild)s" -#: musicbot/bot.py:657 +#: musicbot/bot.py:659 msgid "Discarding MusicPlayer and making a new one..." msgstr "MusicPlayerを破棄し、新しいMusicPlayerを作成しています..." -#: musicbot/bot.py:677 +#: musicbot/bot.py:679 msgid "MusicBot will make a new MusicPlayer now..." msgstr "MusicBotが新しいMusicPlayerを作成します..." -#: musicbot/bot.py:698 +#: musicbot/bot.py:700 #, python-format msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." msgstr "%(guild)s/%(channel)sに参加していません。サポートされているボイスチャンネルではありません。" -#: musicbot/bot.py:701 +#: musicbot/bot.py:703 msgid "Finished joining configured channels." msgstr "設定されたチャンネルへの参加が終了しました。" -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "メンバーは音声対応ではないため、このコマンドは使用できません。" -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "ボイスチャンネルでない場合、このコマンドは使用できません。" -#: musicbot/bot.py:735 +#: musicbot/bot.py:737 msgid "Getting bot Application Info." msgstr "Botアプリケーション情報を取得しています。" -#: musicbot/bot.py:760 +#: musicbot/bot.py:762 #, python-format msgid "MusicBot does not have permission to Connect in channel: %s" msgstr "MusicBot にチャンネルへの接続権限がありません: %s" -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "MusicBotにチャンネルで接続する権限がありません: `%(name)s`" -#: musicbot/bot.py:769 +#: musicbot/bot.py:771 #, python-format msgid "MusicBot does not have permission to Speak in channel: %s" msgstr "MusicBot にチャンネル内で話す権限がありません: %s" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "MusicBotにチャンネルで話す権限がありません: `%(name)s`" -#: musicbot/bot.py:783 +#: musicbot/bot.py:785 #, python-format msgid "Reusing bots VoiceClient from guild: %s" msgstr "ギルドからボットVoiceClientを再利用: %s" -#: musicbot/bot.py:788 +#: musicbot/bot.py:790 #, python-format msgid "Forcing disconnect on stale VoiceClient in guild: %s" msgstr "ギルド内の古いVoiceClientの切断を強制: %s" -#: musicbot/bot.py:794 +#: musicbot/bot.py:796 msgid "Disconnect failed or was cancelled?" msgstr "切断に失敗したか、キャンセルされましたか?" -#: musicbot/bot.py:802 +#: musicbot/bot.py:804 #, python-format msgid "MusicBot is unable to connect to the channel right now: %(channel)s" msgstr "MusicBotは現在チャンネルに接続できません: %(channel)s" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "MusicBot がチャンネルに接続できませんでした。\n" "後でもう一度試すか、続行するとボットを再起動してください。" -#: musicbot/bot.py:817 +#: musicbot/bot.py:819 msgid "MusicBot has a VoiceClient now..." msgstr "MusicBotには現在VoiceClientがあります..." -#: musicbot/bot.py:822 +#: musicbot/bot.py:824 #, python-format msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" msgstr "接続中にタイムアウトエラー (%(attempt)s) の後に接続を再試行しています: %(channel)s" -#: musicbot/bot.py:827 +#: musicbot/bot.py:829 msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." msgstr "MusicBot VoiceClient 接続がキャンセルされました。再試行しません。" -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "ボイスチャットへのMusicBot接続がキャンセルされました。これは奇妙です。再起動しますか?" -#: musicbot/bot.py:840 musicbot/bot.py:8386 +#: musicbot/bot.py:838 musicbot/bot.py:8471 +#, python-format +msgid "MusicBot is requesting to speak in channel: %s" +msgstr "MusicBot がチャンネルでのスピーキングをリクエストしています: %s" + +#: musicbot/bot.py:843 musicbot/bot.py:8477 msgid "MusicBot does not have permission to speak." msgstr "MusicBot には話す権限がありません。" -#: musicbot/bot.py:844 musicbot/bot.py:8388 +#: musicbot/bot.py:847 musicbot/bot.py:8479 msgid "MusicBot could not request to speak." msgstr "MusicBot は話すことができませんでした。" -#: musicbot/bot.py:857 +#: musicbot/bot.py:860 #, python-format msgid "Disconnecting a MusicPlayer in guild: %s" msgstr "ギルドでMusicPlayerを切断: %s" -#: musicbot/bot.py:869 +#: musicbot/bot.py:872 msgid "Disconnecting VoiceClient before we kill the MusicPlayer." msgstr "MusicPlayerを停止する前にVoiceClientを切断します。" -#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 -#: musicbot/bot.py:931 +#: musicbot/bot.py:880 musicbot/bot.py:899 musicbot/bot.py:911 +#: musicbot/bot.py:934 msgid "The disconnect failed or was cancelled." msgstr "切断に失敗またはキャンセルされました。" -#: musicbot/bot.py:887 +#: musicbot/bot.py:890 msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." msgstr "MusicBotにはVoiceClientではないVoiceProtocolがあります。とにかく接続を解除してください。" -#: musicbot/bot.py:900 +#: musicbot/bot.py:903 #, python-format msgid "Disconnecting a rogue VoiceClient in guild: %s" msgstr "ギルド内の不正なVoiceClientの接続を切断: %s" -#: musicbot/bot.py:924 +#: musicbot/bot.py:927 msgid "Disconnecting a non-guild VoiceClient..." msgstr "ギルド以外のVoiceClientの接続を切断..." -#: musicbot/bot.py:934 +#: musicbot/bot.py:937 #, python-format msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" "The object is actually of type: %s" msgstr "MusicBot.voice_clients リストに、VoiceClient 以外のオブジェクトが含まれていますか?\n" "オブジェクトは実際は型です。 %s" -#: musicbot/bot.py:944 +#: musicbot/bot.py:947 #, python-format msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" msgstr "ギルド内にMusicPlayerのrefがあります (%(guild_id)s): %(player)r" -#: musicbot/bot.py:957 +#: musicbot/bot.py:960 #, python-format msgid "Guild (%(guild)s) wants a player, optional: %(player)r" msgstr "Guild (%(guild)s) はプレイヤー、任意の %(player)r を要求しています" -#: musicbot/bot.py:964 +#: musicbot/bot.py:967 msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." msgstr "[BUG] MusicPlayerにVoiceClientがありません。おそらく再起動してください。" -#: musicbot/bot.py:969 +#: musicbot/bot.py:972 msgid "MusicPlayer has a VoiceClient that is not connected." msgstr "MusicPlayer に接続されていない VoiceClient があります。" -#: musicbot/bot.py:970 +#: musicbot/bot.py:973 #, python-format msgid "MusicPlayer obj: %r" msgstr "MusicPlayer obj: %r" -#: musicbot/bot.py:971 +#: musicbot/bot.py:974 #, python-format msgid "VoiceClient obj: %r" msgstr "VoiceClient obj: %r" -#: musicbot/bot.py:991 +#: musicbot/bot.py:994 #, python-format msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" msgstr "ギルドでMusicPlayerを取得する: %(guild)s チャンネルで: %(channel)s 作成: %(create)s デシリアライズ: %(serial)s" -#: musicbot/bot.py:1007 +#: musicbot/bot.py:1010 #, python-format msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" msgstr "ギルド %(guild_id)s の %(number)s エントリーでデシリアライゼーションを経由してプレイヤーを作成" -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "ボットはボイスチャンネルに入っていません。\n" "召喚コマンドを使ってボットをボイスチャンネルに連れてきてください。" -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "問題が発生しました。VoiceClientを取得できませんでした。" -#: musicbot/bot.py:1061 +#: musicbot/bot.py:1064 msgid "Running on_player_play" msgstr "実行中のplayer_play" -#: musicbot/bot.py:1136 +#: musicbot/bot.py:1139 #, python-format msgid "Setting URL history guild %(guild_id)s == %(url)s" msgstr "URL履歴を設定する ギルド %(guild_id)s == %(url)s" -#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#: musicbot/bot.py:1175 musicbot/bot.py:4809 #, python-format msgid "No thumbnail set for entry with URL: %s" msgstr "URLのエントリに設定されたサムネイルはありません: %s" -#: musicbot/bot.py:1184 +#: musicbot/bot.py:1187 msgid "no channel to put now playing message into" msgstr "メッセージを再生するチャンネルがありません" -#: musicbot/bot.py:1196 +#: musicbot/bot.py:1199 msgid "ignored now-playing message as it was already posted." msgstr "既に投稿されていたメッセージは無視されました。" -#: musicbot/bot.py:1220 +#: musicbot/bot.py:1223 msgid "Running on_player_resume" msgstr "実行中のplayer_resume" -#: musicbot/bot.py:1233 +#: musicbot/bot.py:1236 msgid "Running on_player_pause" msgstr "player_pause実行中" -#: musicbot/bot.py:1249 +#: musicbot/bot.py:1252 msgid "Running on_player_stop" msgstr "実行中のplayer_stop" -#: musicbot/bot.py:1259 +#: musicbot/bot.py:1262 msgid "Running on_player_finished_playing" msgstr "実行中の on_player_finished_playing" -#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +#: musicbot/bot.py:1264 musicbot/bot.py:1310 musicbot/bot.py:1381 msgid "Event loop is closed, nothing else to do here." msgstr "イベントループは閉じられています。ここで行うことは何もありません。" -#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +#: musicbot/bot.py:1268 musicbot/bot.py:1314 musicbot/bot.py:1385 msgid "Logout under way, ignoring this event." msgstr "このイベントを無視して進行中にログアウトします。" -#: musicbot/bot.py:1282 +#: musicbot/bot.py:1285 msgid "VoiceClient says it is not connected, nothing else we can do here." msgstr "VoiceClient は、接続されていない、ここでできることは何もありません。" -#: musicbot/bot.py:1289 +#: musicbot/bot.py:1292 msgid "Player finished and queue is empty, leaving voice channel..." msgstr "プレーヤーが終了し、キューが空です。ボイスチャンネルを残しています..." -#: musicbot/bot.py:1303 +#: musicbot/bot.py:1306 msgid "Looping over queue to expunge songs with missing author..." msgstr "不足している曲を削除するためにキューをループさせています..." -#: musicbot/bot.py:1342 +#: musicbot/bot.py:1345 #, python-format msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" msgstr "Author `%(user)s` 欠席、スキップされた(削除された)エントリ: %(song)s" -#: musicbot/bot.py:1361 +#: musicbot/bot.py:1364 msgid "No playable songs in the Guild autoplaylist, disabling." msgstr "ギルドの自動プレイリストに再生可能な曲がありません。" -#: musicbot/bot.py:1366 +#: musicbot/bot.py:1369 msgid "No content in current autoplaylist. Filling with new music..." msgstr "現在の自動再生リストにはコンテンツがありません。新しい音楽で塗りつぶします..." -#: musicbot/bot.py:1374 +#: musicbot/bot.py:1377 msgid "Looping over player autoplaylist..." msgstr "プレーヤーの自動再生リストの上にループしています..." -#: musicbot/bot.py:1415 +#: musicbot/bot.py:1418 #, python-format msgid "Error while processing song \"%(url)s\": %(raw_error)s" msgstr "曲「%(url)s」の処理中にエラーが発生しました: %(raw_error)s" -#: musicbot/bot.py:1426 +#: musicbot/bot.py:1429 #, python-format msgid "Error extracting song \"%(url)s\": %(raw_error)s" msgstr "曲 \"%(url)s\" の抽出中にエラーが発生しました: %(raw_error)s" -#: musicbot/bot.py:1441 +#: musicbot/bot.py:1444 msgid "MusicBot needs to stop the auto playlist extraction and bail." msgstr "MusicBotは自動プレイリストの抽出と保釈を停止する必要があります。" -#: musicbot/bot.py:1446 +#: musicbot/bot.py:1449 msgid "MusicBot got an unhandled exception in player finished event." msgstr "MusicBotはプレイヤーの終了イベントで処理されていない例外を受け取りました。" -#: musicbot/bot.py:1452 +#: musicbot/bot.py:1455 #, python-format msgid "Expanding auto playlist with entries extracted from: %s" msgstr "%s から抽出されたエントリで自動プレイリストを展開します" -#: musicbot/bot.py:1476 +#: musicbot/bot.py:1479 #, python-format msgid "Error adding song from autoplaylist: %s" msgstr "自動再生リストから曲を追加中にエラーが発生しました: %s" -#: musicbot/bot.py:1479 +#: musicbot/bot.py:1482 msgid "Exception data for above error:" msgstr "上記のエラーの例外データ:" -#: musicbot/bot.py:1485 +#: musicbot/bot.py:1488 msgid "No playable songs in the autoplaylist, disabling." msgstr "自動プレイリストに再生可能な曲がありません。無効にします。" -#: musicbot/bot.py:1505 +#: musicbot/bot.py:1508 msgid "Running on_player_entry_added" msgstr "実行中 on_player_entry_added" -#: musicbot/bot.py:1515 +#: musicbot/bot.py:1518 msgid "Automatically skipping auto-playlist entry for queued entry." msgstr "キューに入れられたエントリの自動プレイリストのエントリを自動的にスキップします。" -#: musicbot/bot.py:1535 +#: musicbot/bot.py:1538 #, python-format msgid "MusicPlayer exception for entry: %r" msgstr "エントリの MusicPlayer 例外: %r" -#: musicbot/bot.py:1541 +#: musicbot/bot.py:1544 msgid "MusicPlayer exception." msgstr "MusicPlayer例外です。" -#: musicbot/bot.py:1565 +#: musicbot/bot.py:1568 #, python-format msgid "Auto playlist track could not be played: %r" msgstr "自動プレイリストトラックを再生できませんでした: %r" -#: musicbot/bot.py:1604 +#: musicbot/bot.py:1607 msgid "Logout under way, ignoring status update event." msgstr "状態更新イベントを無視して進行中のログアウトします。" -#: musicbot/bot.py:1705 +#: musicbot/bot.py:1708 #, python-format msgid "Update bot status: %(status)s -- %(activity)r" msgstr "ボットのステータスを更新: %(status)s -- %(activity)r" -#: musicbot/bot.py:1733 +#: musicbot/bot.py:1736 #, python-format msgid "Serializing queue for %s" msgstr "キューを %sにシリアライズ中" -#: musicbot/bot.py:1759 +#: musicbot/bot.py:1762 #, python-format msgid "Deserializing queue for %s" msgstr "%sのキューをデシリアライズしています" -#: musicbot/bot.py:1777 +#: musicbot/bot.py:1780 #, python-format msgid "Writing current song for %s" msgstr "%s のために現在の曲を書き込み中" -#: musicbot/bot.py:1802 +#: musicbot/bot.py:1805 #, python-format msgid "Cannot send non-response object: %r" msgstr "応答しないオブジェクトを送信できません: %r" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "無効なレスポンスオブジェクトを送信しようとしました。" -#: musicbot/bot.py:1835 +#: musicbot/bot.py:1838 #, python-format msgid "sending embed to: %s" msgstr "%s に埋め込みを送信中" -#: musicbot/bot.py:1838 +#: musicbot/bot.py:1841 #, python-format msgid "sending text to: %s" msgstr "%s にテキストを送信しています" -#: musicbot/bot.py:1843 +#: musicbot/bot.py:1846 #, python-format msgid "Cannot send message to \"%s\", no permission" msgstr "\"%s\"にメッセージを送信できません。権限がありません" -#: musicbot/bot.py:1850 +#: musicbot/bot.py:1853 #, python-format msgid "Cannot send message to \"%s\", invalid or deleted channel" msgstr "\"%s\"にメッセージを送信できません。無効または削除されたチャンネル" -#: musicbot/bot.py:1858 +#: musicbot/bot.py:1861 #, python-format msgid "Message is over the message size limit (%s)" msgstr "メッセージのサイズ制限を超えています(%s)" -#: musicbot/bot.py:1866 +#: musicbot/bot.py:1869 msgid "Could not send private message, sending in fallback channel instead." msgstr "代わりにフォールバックチャンネルを送信してプライベートメッセージを送信できませんでした。" -#: musicbot/bot.py:1884 +#: musicbot/bot.py:1887 #, python-format msgid "Rate limited send message, retrying in %s seconds." msgstr "レート制限されたメッセージを送信し、 %s 秒後に再試行します。" -#: musicbot/bot.py:1890 +#: musicbot/bot.py:1893 #, python-format msgid "Cancelled message retry for: %s" msgstr "キャンセルされたメッセージの再試行: %s" -#: musicbot/bot.py:1895 +#: musicbot/bot.py:1898 msgid "Rate limited send message, but cannot retry!" msgstr "制限されたメッセージの送信を評価するが、再試行することはできません!" -#: musicbot/bot.py:1901 +#: musicbot/bot.py:1904 msgid "Failed to send message in fallback channel." msgstr "フォールバックチャンネルでメッセージを送信できませんでした。" -#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +#: musicbot/bot.py:1909 musicbot/bot.py:1973 musicbot/bot.py:2043 msgid "Failed to send due to an HTTP error." msgstr "HTTPエラーのため送信に失敗しました。" -#: musicbot/bot.py:1932 +#: musicbot/bot.py:1935 #, python-format msgid "Cannot delete message \"%s\", no permission" msgstr "メッセージ「%s」を削除できません。権限がありません" -#: musicbot/bot.py:1937 +#: musicbot/bot.py:1940 #, python-format msgid "Cannot delete message \"%s\", message not found" msgstr "メッセージ \"%s\" を削除できません。メッセージが見つかりません。" -#: musicbot/bot.py:1955 +#: musicbot/bot.py:1958 #, python-format msgid "Rate limited message delete, retrying in %s seconds." msgstr "Rate limited message delete, retrying in %s seconds." -#: musicbot/bot.py:1960 +#: musicbot/bot.py:1963 msgid "Rate limited message delete, but cannot retry!" msgstr "制限されたメッセージの削除を評価しますが、再試行できません!" -#: musicbot/bot.py:1963 +#: musicbot/bot.py:1966 msgid "Failed to delete message" msgstr "メッセージの削除に失敗しました" -#: musicbot/bot.py:1965 +#: musicbot/bot.py:1968 #, python-format msgid "Got HTTPException trying to delete message: %s" msgstr "HTTPExceptionがメッセージを削除しようとしています: %s" -#: musicbot/bot.py:2000 +#: musicbot/bot.py:2003 #, python-format msgid "Cannot edit message \"%s\", message not found" msgstr "メッセージ \"%s\" を編集できません。メッセージが見つかりません。" -#: musicbot/bot.py:2004 +#: musicbot/bot.py:2007 msgid "Sending message instead" msgstr "代わりにメッセージを送信中" -#: musicbot/bot.py:2021 +#: musicbot/bot.py:2024 #, python-format msgid "Rate limited edit message, retrying in %s seconds." msgstr "制限された編集メッセージを評価し、 %s 秒後に再試行します。" -#: musicbot/bot.py:2027 +#: musicbot/bot.py:2030 #, python-format msgid "Cancelled message edit for: %s" msgstr "%s へのメッセージ編集をキャンセルしました" -#: musicbot/bot.py:2033 +#: musicbot/bot.py:2036 msgid "Failed to edit message" msgstr "メッセージの編集に失敗しました" -#: musicbot/bot.py:2035 +#: musicbot/bot.py:2038 #, python-format msgid "Got HTTPException trying to edit message %s to: %s" msgstr "HTTPExceptionがメッセージ %s を編集しようとしています: %s" -#: musicbot/bot.py:2057 +#: musicbot/bot.py:2060 #, python-format msgid "Cancelled delete for message (ID: %(id)s): %(content)s" msgstr "メッセージの削除をキャンセルしました (ID: %(id)s): %(content)s" -#: musicbot/bot.py:2119 +#: musicbot/bot.py:2122 #, python-format msgid "Caught a signal from the OS: %s" msgstr "OSからの信号をキャッチしました: %s" -#: musicbot/bot.py:2123 +#: musicbot/bot.py:2126 msgid "Disconnecting and closing down MusicBot..." msgstr "MusicBotの接続を切断して閉じます..." -#: musicbot/bot.py:2126 +#: musicbot/bot.py:2129 msgid "Exception thrown while handling interrupt signal!" msgstr "割込み信号の処理中に例外がスローされました!" -#: musicbot/bot.py:2140 +#: musicbot/bot.py:2143 msgid "MusicBot is now doing shutdown steps..." msgstr "MusicBot がシャットダウンステップを行っています..." -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -755,103 +760,103 @@ msgid "Failed Discord API Login!\n\n" " Check API status at the official site: discordstatus.com" msgstr "" -#: musicbot/bot.py:2161 +#: musicbot/bot.py:2164 msgid "Waiting for download threads to finish up..." msgstr "ダウンロードスレッドが終了するのを待っています..." -#: musicbot/bot.py:2187 +#: musicbot/bot.py:2190 #, python-format msgid "Will wait for task: %(name)s (%(func)s)" msgstr "Will wait for task: %(name)s (%(func)s)" -#: musicbot/bot.py:2194 +#: musicbot/bot.py:2197 #, python-format msgid "Will try to cancel task: %(name)s (%(func)s)" msgstr "タスクをキャンセルしようとします: %(name)s (%(func)s)" -#: musicbot/bot.py:2202 +#: musicbot/bot.py:2205 msgid "Awaiting pending tasks..." msgstr "保留中のタスクを待機しています..." -#: musicbot/bot.py:2208 +#: musicbot/bot.py:2211 msgid "Closing HTTP Connector." msgstr "HTTP コネクタを閉じています。" -#: musicbot/bot.py:2214 +#: musicbot/bot.py:2217 msgid "Closing aiohttp session." msgstr "aiohttp セッションを閉じています。" -#: musicbot/bot.py:2226 +#: musicbot/bot.py:2229 msgid "Logout has been called." msgstr "ログアウトを呼び出しました。" -#: musicbot/bot.py:2238 +#: musicbot/bot.py:2241 #, python-format msgid "Exception in %(event)s:\n" "%(error)s" msgstr "%(event)sの例外 :\n" "%(error)s" -#: musicbot/bot.py:2254 +#: musicbot/bot.py:2257 #, python-format msgid "Exception in %s" msgstr "%s の例外" -#: musicbot/bot.py:2261 +#: musicbot/bot.py:2264 msgid "MusicBot resumed a session with discord." msgstr "MusicBotはdiscordとのセッションを再開しました。" -#: musicbot/bot.py:2278 +#: musicbot/bot.py:2281 msgid "Finish on_ready" msgstr "完了(_L)" -#: musicbot/bot.py:2285 +#: musicbot/bot.py:2288 msgid "Logged in, now getting MusicBot ready..." msgstr "ログイン中、MusicBot の準備中..." -#: musicbot/bot.py:2288 +#: musicbot/bot.py:2291 msgid "ClientUser is somehow none, we gotta bail..." msgstr "クライアントユーザーは何らかの形ではありません。保釈する必要があります..." -#: musicbot/bot.py:2297 +#: musicbot/bot.py:2300 #, python-format msgid "MusicBot: %(id)s/%(name)s#%(desc)s" msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" -#: musicbot/bot.py:2308 +#: musicbot/bot.py:2311 #, python-format msgid "Owner: %(id)s/%(name)s#%(desc)s\n" msgstr "所有者: %(id)s/%(name)s#%(desc)s\n" -#: musicbot/bot.py:2316 musicbot/bot.py:2343 +#: musicbot/bot.py:2319 musicbot/bot.py:2346 msgid "Guild List:" msgstr "ギルド一覧:" -#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#: musicbot/bot.py:2323 musicbot/bot.py:2349 musicbot/bot.py:8663 #, python-format msgid " - %s" msgstr " - %s" -#: musicbot/bot.py:2329 +#: musicbot/bot.py:2332 #, python-format msgid "Left %s due to bot owner not found" msgstr "ボット所有者が見つからないため、 %s を退出しました" -#: musicbot/bot.py:2334 +#: musicbot/bot.py:2337 #, python-format msgid "Not proceeding with checks in %s servers due to unavailability" msgstr "%s サーバーでのチェックが利用できません。" -#: musicbot/bot.py:2340 +#: musicbot/bot.py:2343 #, python-format msgid "Owner could not be found on any guild (id: %s)\n" msgstr "" -#: musicbot/bot.py:2349 +#: musicbot/bot.py:2352 msgid "Owner unknown, bot is not on any guilds." msgstr "所有者は不明です。botはギルドにいません。" -#: musicbot/bot.py:2353 +#: musicbot/bot.py:2356 #, python-format msgid "To make the bot join a guild, paste this link in your browser. \n" "Note: You should be logged into your main account and have \n" @@ -859,53 +864,53 @@ msgid "To make the bot join a guild, paste this link in your browser. \n" " %s" msgstr "" -#: musicbot/bot.py:2370 +#: musicbot/bot.py:2373 #, python-format msgid "Got None for bound channel with ID: %d" msgstr "Got None for bound channel with ID: %d" -#: musicbot/bot.py:2376 +#: musicbot/bot.py:2379 #, python-format msgid "Cannot bind to non Messageable channel with ID: %d" msgstr "IDを持つメッセージ可能でないチャンネルにバインドできません: %d" -#: musicbot/bot.py:2390 +#: musicbot/bot.py:2393 msgid "Bound to text channels:" msgstr "Bound to text channels:" -#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#: musicbot/bot.py:2407 musicbot/bot.py:2457 #, python-format msgid " - %(guild)s/%(channel)s" msgstr " - %(guild)s/%(channel)s" -#: musicbot/bot.py:2408 musicbot/bot.py:2410 +#: musicbot/bot.py:2411 musicbot/bot.py:2413 msgid "Not bound to any text channels" msgstr "テキストチャンネルにバインドされていません" -#: musicbot/bot.py:2421 +#: musicbot/bot.py:2424 #, python-format msgid "Got None for auto join channel with ID: %d" msgstr "IDを持つ自動参加チャンネルにNoneを取得しました: %d" -#: musicbot/bot.py:2427 +#: musicbot/bot.py:2430 #, python-format msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" msgstr "IDを持つプライベート/非ギルドチャンネルに自動的に参加できません: %d" -#: musicbot/bot.py:2435 +#: musicbot/bot.py:2438 #, python-format msgid "Cannot auto join to non-connectable channel with ID: %d" msgstr "IDを持つ非接続可能なチャンネルに自動的に参加できません: %d" -#: musicbot/bot.py:2451 +#: musicbot/bot.py:2454 msgid "Auto joining voice channels:" msgstr "ボイスチャンネルの自動結合:" -#: musicbot/bot.py:2459 musicbot/bot.py:2462 +#: musicbot/bot.py:2462 musicbot/bot.py:2465 msgid "Not auto joining any voice channels" msgstr "音声チャンネルに自動的に参加しません" -#: musicbot/bot.py:2475 +#: musicbot/bot.py:2478 #, python-format msgid "Detected missing config options!\n\n" "Problem:\n" @@ -918,951 +923,964 @@ msgid "Detected missing config options!\n\n" " Or use the config command to set and save them.\n\n" msgstr "" -#: musicbot/bot.py:2504 +#: musicbot/bot.py:2507 #, python-format msgid "Event on_ready has fired %s times" msgstr "イベントon_ready が %s 回発射しました" -#: musicbot/bot.py:2520 +#: musicbot/bot.py:2523 msgid "Getting application info." msgstr "アプリケーション情報を取得しています。" -#: musicbot/bot.py:2538 +#: musicbot/bot.py:2541 msgid "Ensuring data folders exist" msgstr "データフォルダが存在することを確認" -#: musicbot/bot.py:2553 +#: musicbot/bot.py:2556 msgid "Validating config" msgstr "設定を検証中" -#: musicbot/bot.py:2556 +#: musicbot/bot.py:2559 msgid "Validating permissions config" msgstr "権限設定を検証中" -#: musicbot/bot.py:2566 +#: musicbot/bot.py:2569 msgid "Disabled" msgstr "無効" -#: musicbot/bot.py:2566 +#: musicbot/bot.py:2569 msgid "Enabled" msgstr "有効" -#: musicbot/bot.py:2569 +#: musicbot/bot.py:2572 msgid "Options:" msgstr "オプション:" -#: musicbot/bot.py:2571 +#: musicbot/bot.py:2574 #, python-format msgid " Command prefix: %s" msgstr " コマンドプレフィックス: %s" -#: musicbot/bot.py:2572 +#: musicbot/bot.py:2575 #, python-format msgid " Default volume: %d%%" msgstr " デフォルトボリューム: %d%%" -#: musicbot/bot.py:2574 +#: musicbot/bot.py:2577 #, python-format msgid " Skip threshold: %(num)d votes or %(percent).0f%%" msgstr " Skip threshold: %(num)d vote or %(percent).0f%%" -#: musicbot/bot.py:2581 +#: musicbot/bot.py:2584 #, python-format msgid " Now Playing @mentions: %s" msgstr " 現在@メンションを再生中: %s" -#: musicbot/bot.py:2584 +#: musicbot/bot.py:2587 #, python-format msgid " Auto-Summon: %s" msgstr " 自動召喚: %s" -#: musicbot/bot.py:2586 +#: musicbot/bot.py:2589 #, python-format msgid " Auto-Playlist: %(status)s (order: %(order)s)" msgstr " 自動プレイリスト: %(status)s (注文: %(order)s)" -#: musicbot/bot.py:2589 +#: musicbot/bot.py:2592 msgid "random" msgstr "random" -#: musicbot/bot.py:2589 +#: musicbot/bot.py:2592 msgid "sequential" msgstr "シーケンシャル" -#: musicbot/bot.py:2594 +#: musicbot/bot.py:2597 #, python-format msgid " Auto-Pause: %s" msgstr " 自動停止: %s" -#: musicbot/bot.py:2596 +#: musicbot/bot.py:2599 #, python-format msgid " Delete Messages: %s" msgstr " メッセージの削除: %s" -#: musicbot/bot.py:2601 +#: musicbot/bot.py:2604 #, python-format msgid " Delete Invoking: %s" msgstr " 呼び出しを削除: %s" -#: musicbot/bot.py:2605 +#: musicbot/bot.py:2608 #, python-format msgid " Delete Now Playing: %s" msgstr " 今すぐプレイを削除: %s" -#: musicbot/bot.py:2608 +#: musicbot/bot.py:2611 #, python-format msgid " Debug Mode: %s" msgstr " デバッグモード: %s" -#: musicbot/bot.py:2610 +#: musicbot/bot.py:2613 #, python-format msgid " Downloaded songs will be %s" msgstr " ダウンロードした曲は %sになります" -#: musicbot/bot.py:2614 +#: musicbot/bot.py:2617 #, python-format msgid " Delete if unused for %d days" msgstr " %d 日間未使用の場合は削除" -#: musicbot/bot.py:2617 +#: musicbot/bot.py:2620 #, python-format msgid " Delete if size exceeds %s" msgstr " サイズが %s を超えた場合は削除" -#: musicbot/bot.py:2620 +#: musicbot/bot.py:2623 #, python-format msgid " Status message: %s" msgstr " ステータスメッセージ: %s" -#: musicbot/bot.py:2622 +#: musicbot/bot.py:2625 #, python-format msgid " Write current songs to file: %s" msgstr " 現在の曲をファイルに書き込む: %s" -#: musicbot/bot.py:2626 +#: musicbot/bot.py:2629 #, python-format msgid " Author insta-skip: %s" msgstr " 著者インスタジオスキップ: %s" -#: musicbot/bot.py:2629 +#: musicbot/bot.py:2632 #, python-format msgid " Embeds: %s" msgstr " Embeds: %s" -#: musicbot/bot.py:2631 +#: musicbot/bot.py:2634 #, python-format msgid " Spotify integration: %s" msgstr " Spotify統合: %s" -#: musicbot/bot.py:2634 +#: musicbot/bot.py:2637 #, python-format msgid " Legacy skip: %s" msgstr " 従来のスキップ: %s" -#: musicbot/bot.py:2636 +#: musicbot/bot.py:2639 #, python-format msgid " Leave non owners: %s" msgstr " 所有者ではないまま: %s" -#: musicbot/bot.py:2640 +#: musicbot/bot.py:2643 #, python-format msgid " Leave inactive VC: %s" msgstr " 非アクティブ状態のままVC: %s" -#: musicbot/bot.py:2645 +#: musicbot/bot.py:2648 #, python-format msgid " Timeout: %s seconds" msgstr " タイムアウト: %s 秒" -#: musicbot/bot.py:2649 +#: musicbot/bot.py:2652 #, python-format msgid " Leave at song end/empty queue: %s" msgstr " 曲の終了/空のキューを残す: %s" -#: musicbot/bot.py:2653 +#: musicbot/bot.py:2656 #, python-format msgid " Leave when player idles: %s" msgstr " プレイヤーがアイドル時に退出: %s" -#: musicbot/bot.py:2657 +#: musicbot/bot.py:2660 #, python-format msgid " Timeout: %d seconds" msgstr " タイムアウト: %d 秒" -#: musicbot/bot.py:2658 +#: musicbot/bot.py:2661 #, python-format msgid " Self Deafen: %s" msgstr " セルフスピーカー: %s" -#: musicbot/bot.py:2660 +#: musicbot/bot.py:2663 #, python-format msgid " Per-server command prefix: %s" msgstr " サーバー毎のコマンドプレフィックス: %s" -#: musicbot/bot.py:2663 +#: musicbot/bot.py:2666 #, python-format msgid " Search List: %s" msgstr " 検索リスト: %s" -#: musicbot/bot.py:2665 +#: musicbot/bot.py:2668 #, python-format msgid " Round Robin Queue: %s" msgstr " ラウンドロビン隊列: %s" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "The requested song `%(subject)s` is blocked by the song block list." -#: musicbot/bot.py:2706 +#: musicbot/bot.py:2709 msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." msgstr "Voice Channel を操作しようとしていますが、Botは音声に入っていません..." -#: musicbot/bot.py:2713 +#: musicbot/bot.py:2716 #, python-format msgid "Channel activity already waiting in guild: %s" msgstr "ギルドで既に待機しているチャンネルアクティビティ: %s" -#: musicbot/bot.py:2723 +#: musicbot/bot.py:2726 #, python-format msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" msgstr "チャンネルのアクティビティが %(time)d 秒でチャンネルを退出するまで待機しています: %(channel)s" -#: musicbot/bot.py:2738 +#: musicbot/bot.py:2741 #, python-format msgid "Channel activity timer for %s has expired. Disconnecting." msgstr "%s のチャネルアクティビティタイマーの有効期限が切れました。切断してください。" -#: musicbot/bot.py:2744 +#: musicbot/bot.py:2747 #, python-format msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" msgstr "チャネルアクティビティのタイマーをキャンセルしました: %(channel)s の %(guild)s" -#: musicbot/bot.py:2772 +#: musicbot/bot.py:2775 #, python-format msgid "Ignoring player inactivity in auto-joined channel: %s" msgstr "自動参加チャンネルのプレイヤーの非アクティブを無視: %s" -#: musicbot/bot.py:2779 +#: musicbot/bot.py:2782 #, python-format msgid "Player activity timer already waiting in guild: %s" msgstr "ギルド内で既に待機しているプレイヤーアクティビティタイマー: %s" -#: musicbot/bot.py:2787 +#: musicbot/bot.py:2790 #, python-format msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" msgstr "%(time)d 秒でチャンネルを退出するのを待っているプレイヤーアクティビティタイマー: %(channel)s" -#: musicbot/bot.py:2799 +#: musicbot/bot.py:2802 #, python-format msgid "Player activity timer for %s has expired. Disconnecting." msgstr "%s のプレイヤーアクティビティタイマーの有効期限が切れています。切断してください。" -#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#: musicbot/bot.py:2808 musicbot/bot.py:2813 #, python-format msgid "Player activity timer canceled for: %(channel)s in %(guild)s" msgstr "プレイヤーアクティビティのタイマーを %(channel)s でキャンセルしました: %(guild)s" -#: musicbot/bot.py:2827 +#: musicbot/bot.py:2830 msgid "Player activity timer is being reset." msgstr "プレイヤーアクティビティのタイマーがリセットされています。" -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "そのようなコマンドはありません" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "ユーザーに言及するか、ID番号を入力してください。" -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "無効なサブコマンドが与えられました。使用例には `help blockuser` を使用してください。" -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBotは指定したユーザーを見つけることができませんでした。" -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "オーナーをブロックリストに追加できません。" -#: musicbot/bot.py:3043 +#: musicbot/bot.py:3046 #, python-format msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" msgstr "ユーザーをブロックリストに追加していません。既にブロックされています: %(id)s/%(name)s" -#: musicbot/bot.py:3052 +#: musicbot/bot.py:3055 #, python-format msgid "Not removing user from block list, not listed: %(id)s/%(name)s" msgstr "リストにないブロックリストからユーザーを削除していません: %(id)s/%(name)s" -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "あなたがリストしたユーザーを追加することはできません、すでに追加されています。" -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "現在再生中の曲がない場合は、曲の件名を指定する必要があります。" -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "無効なサブコマンドが与えられました。使用例には `help blocksong` を使用してください。" -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "Subject `%(subject)s` はすでにソングブロックリストにあります。" -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "件名はソングブロックリストにないため、削除できません。" -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "無効なサブコマンドが与えられました。使用例には `help autoplaylist` を使用してください。" -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "指定された曲のリンクは無効です" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "キューが空です。再生コマンドで曲を追加してください!" -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "この曲はすでに自動プレイリストにあります。" -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "この曲はまだ自動プレイリストに入っていません。" -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "プレイリストファイル名を指定する必要があります。" -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "プレイリストをリクエストする権限がありません" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "プレイリストのエントリが多すぎます(%(songs)s ですが、最大は %(max)s です)" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" "The limit is %(max)s for your group." msgstr "" -#: musicbot/bot.py:3471 +#: musicbot/bot.py:3474 msgid "Ignoring auto-pause due to network outage." msgstr "ネットワーク停止による自動停止を無視します。" -#: musicbot/bot.py:3476 +#: musicbot/bot.py:3479 msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." msgstr "MusicPlayerにVoiceClientがないか、チャンネルデータがないか、自動停止処理できません。" -#: musicbot/bot.py:3487 +#: musicbot/bot.py:3490 msgid "Already processing auto-pause, ignoring this event." msgstr "このイベントを無視して、すでに自動一時停止を処理しています。" -#: musicbot/bot.py:3495 +#: musicbot/bot.py:3498 #, python-format msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" msgstr "%sVoiceClient が接続されていないため、ギルド内の自動停止を処理する %s 秒待機しています: %s" -#: musicbot/bot.py:3503 +#: musicbot/bot.py:3506 msgid "Auto-pause waiting was cancelled." msgstr "自動一時停止はキャンセルされました。" -#: musicbot/bot.py:3510 +#: musicbot/bot.py:3513 msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." msgstr "古い自動一時停止イベントを無視して、新しいMusicPlayerが接続されています。" -#: musicbot/bot.py:3526 +#: musicbot/bot.py:3529 #, python-format msgid "Playing in an empty voice channel, running auto pause for guild: %s" msgstr "空のボイスチャンネルで再生します。ギルドの自動一時停止: %s" -#: musicbot/bot.py:3533 +#: musicbot/bot.py:3536 #, python-format msgid "Previously auto paused player is unpausing for guild: %s" msgstr "以前の自動一時停止中のプレイヤーはギルドの一時停止が解除されています: %s" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "何もプレイしていない場合はシークを使用できません。" -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "現在のトラックでシークを使用することはできません、それは不明な期間を持っています。" -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "Seeking is not supported for streams." -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "再生を配置する時間がなければシークは使用できません。" -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "`%(input)s`を秒単位で有効な時間に変換できませんでした。" -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "`%(input)s/%(seconds)s`の長さのトラックの`%(progress)s `(` %(total)s`秒)をシークできません" -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "無効なサブコマンドです。使用例には「ヘルプの繰り返し」コマンドを使用してください。" -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "プレーヤーは現在ループしていません。" -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "曲の位置は整数でなければなりません!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "プレイリストのサイズ以外の位置を指定しました!" -#: musicbot/bot.py:4025 +#: musicbot/bot.py:4028 msgid "Could not prompt for playlist playback, no message to add reactions to." msgstr "プレイリストの再生を促すことができませんでした。リアクションを追加するメッセージがありません。" -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "ローカルメディアの再生が有効になっていません。" -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "SpotifyのURLが無効または現在サポートされていません。" -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "Spotify の URL が検出されましたが、Spotify は有効ではありません。" -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "キューに登録された曲の上限に達しました (%(max)s)" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "カラオケモードが有効になっています。無効になったらもう一度お試しください!" -#: musicbot/bot.py:4187 +#: musicbot/bot.py:4190 msgid "Issue with extract_info(): " msgstr "extract_info() の問題: " -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "エラーのための情報の抽出に失敗しました:\n" "%(raw_error)s" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "動画を再生できません。streamコマンドを使用してみてください。" -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "YouTubeの検索結果が %(url)sにはありませんでした" -#: musicbot/bot.py:4238 +#: musicbot/bot.py:4241 #, python-format msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" msgstr "" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "曲が追加されていません。すべての曲が最大時間(%(max)s 秒)を超えています。" -#: musicbot/bot.py:4265 +#: musicbot/bot.py:4268 msgid "Extracted an entry with 'youtube:playlist' as extractor key" msgstr "抽出キーとして 'youtube:playlist' でエントリを抽出しました" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "曲の再生時間が制限を超えています(%(length)s > %(max)s)" -#: musicbot/bot.py:4295 +#: musicbot/bot.py:4298 #, python-format msgid "Added song(s) at position %s" msgstr "%s位置に曲を追加しました" -#: musicbot/bot.py:4332 +#: musicbot/bot.py:4335 #, python-format msgid "Cannot estimate time until playing for position: %d" msgstr "位置の再生までの時間を見積もることはできません: %d" -#: musicbot/bot.py:4393 +#: musicbot/bot.py:4396 #, python-format msgid "Failed to get info from the stream request: %s" msgstr "ストリームリクエストからの情報の取得に失敗しました: %s" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "ストリーミングプレイリストはまだサポートされていません。" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "プレイリストアイテムの上限に達しました (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "検索クエリを指定してください。詳細は `ヘルプ検索` を使用してください。" -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "%(max)s 以上の動画を検索することはできません" -#: musicbot/bot.py:4834 +#: musicbot/bot.py:4837 #, python-format msgid "Waiting for summon lock: %s" msgstr "召喚ロックを待っています: %s" -#: musicbot/bot.py:4837 +#: musicbot/bot.py:4840 #, python-format msgid "Summon lock acquired for: %s" msgstr "ロックを召喚: %s" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "音声に接続されていません。音声チャンネルに参加してみてください!" -#: musicbot/bot.py:4866 +#: musicbot/bot.py:4869 #, python-format msgid "Joining %(guild)s/%(channel)s" msgstr "%(guild)s/%(channel)s に参加中" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot はサーバーのメンバーではないユーザーをフォローできません。" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "プレイヤーがプレイしていません。" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "削除するキューがありません!" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "`%(user)s`からのキューには何も見つかりませんでした。" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "キューからそのエントリを削除する権限がありません。\n" "キューに登録した方、または即座にスキップ権限を持っている必要があります。" -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "無効なエントリ番号です。キューの位置を見つけるには、キューコマンドを使用してください。" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "スキップできません!プレイヤーがプレイしていません!" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "ループされた曲をスキップする権限がありません。" -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "スキップを強制する権限がありません。" -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "ループ曲をスキップする権限がありません。" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "'%(new_volume)s' は有効な数字ではありません" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "不合理なボリューム変更が提供されました: %(old_volume)s%(adjustment)s は %(new_volume)sです。\n" "ボリュームは1から100まで設定できます。" -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "不合理なボリュームが提供されました: %(volume)s. 1から100までの値を入力してください。" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "トラックが再生されていないため、速度を設定できません。\n" "デフォルトの再生速度を設定するにはconfigコマンドを使用してください。" -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "ストリームメディアには速度を適用できません。" -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "設定する速度を提供する必要があります。" -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "指定した速度が無効です。0.5 から 100までの数字を使用してください。" -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "コマンドの無効なオプション: `%(option)s`" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "エラーのためエイリアスを保存できませんでした:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "エイリアスにエイリアスとコマンドを提供する必要があります" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "削除するにはエイリアス名を入力してください。" -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "The alias `%(alias)s` does not exist." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "設定では、チャンネルとユーザーのメンションを同時に使用できません。" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "次のエラーのため設定を再読み込みできません:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "オプション名からセクション名を解決できませんでした。有効なセクション名とオプション名を入力してください。" -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "与えられたオプションは曖昧です。セクション名を入力してください。" -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "このコマンドのセクション名とオプション名を指定する必要があります。" -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "The section `%(section)s` is not available.\n" "The available section: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "オプション `%(option)s` は使用できません。" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "オプション `%(option)s` は編集できません。ディスクに保存できません。" -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "オプションの保存に失敗しました: `%(option)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "Option `%(option)s` は編集できません。値を表示できません。" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "オプション `%(option)s` は編集できません。設定を更新できません。" -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "このサブコマンドのセクション、オプション、値を指定する必要があります。" -#: musicbot/bot.py:5810 +#: musicbot/bot.py:5813 #, python-format msgid "Doing set with on %(config)s == %(value)s" msgstr "%(config)s == %(value)s で設定する" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "Option `%(option)s` は更新されませんでした!" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "オプション `%(option)s` は編集できません。デフォルトにリセットできません。" -#: musicbot/bot.py:5845 +#: musicbot/bot.py:5848 #, python-format msgid "Resetting %(config)s to default %(value)s" msgstr "%(config)s を既定の %(value)s にリセット" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "Option `%(option)s` はデフォルトにリセットされませんでした!" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "option コマンドは推奨されません。config コマンドを使用してください。" -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "無効なオプションが指定されました。情報、更新、またはクリアを使用してください。" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**キャッシュの削除に失敗しました。ログの詳細を確認してください。" -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "キューページ引数は整数でなければなりません。" -#: musicbot/bot.py:6004 +#: musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "曲がキューに追加されていません! playコマンドで何かをキューに追加します。" -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "要求されたページ番号が範囲外です。\n" "**%(total)s** ページがあります。" -#: musicbot/bot.py:6056 +#: musicbot/bot.py:6057 msgid "Skipped the current playlist entry." msgstr "現在のプレイリストのエントリをスキップしました。" -#: musicbot/bot.py:6099 +#: musicbot/bot.py:6100 msgid "Not enough entries to paginate the queue." msgstr "キューをページネーションするのに十分なエントリがありません。" -#: musicbot/bot.py:6103 +#: musicbot/bot.py:6104 msgid "Could not post queue message, no message to add reactions to." msgstr "キューメッセージを投稿できませんでした。リアクションを追加するメッセージがありません。" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "もう一度お試しください。MusicBotはキューメッセージへの参照を作成できませんでした。\n" "問題が解決しない場合は、バグレポートを送信してください。" -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "プライベート DM チャンネルでパージを使用できません。" -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "指定されたURLは有効なURLではありませんでした。" -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "これはプレイリストではないようです。" -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "無効なユーザーIDまたはサーバーニックネームです。IDを再確認してもう一度やり直してください。" -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "discordユーザーを特定できませんでした。もう一度お試しください。" -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "権限は同時にチャンネルとユーザーメンションを使用することはできません。" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "エラーが発生したため権限を再読み込みできません:\n" "%(raw_error)s" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "このコマンドのグループまたはオプション名を指定する必要があります。" -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "このコマンドに設定するには、グループ、オプション、値を指定する必要があります。" -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "%(option)s サブコマンドにはグループ名と権限名が必要です。" -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "The group `%(group)s` is not available.\n" "The available groups is : %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "パーミッション`%(option)s`は利用できません。" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "グループを追加できません`%(group)s` が既に存在します。" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "組み込みグループを削除できません。" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "オーナーグループは編集できません。" -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "グループの保存に失敗しました: `%(group)s`" -#: musicbot/bot.py:6736 +#: musicbot/bot.py:6737 #, python-format msgid "Doing set on %(option)s with value: %(value)s" msgstr "%(option)s に値: %(value)s を設定する" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "パーミッション`%(option)s`は更新されませんでした!" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "ユーザー名の変更に失敗しました。名前の変更回数が多すぎましたか?\n" "名前の変更は1時間に2回に制限されています。\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "エラーのためユーザー名を変更できませんでした: \n" "%(raw_error)s" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "ニックネームを変更できません: 権限がありません。" -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "エラーのためニックネームを設定できませんでした: \n" "%(raw_error)s" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "プレフィックスとして使用するには、このサーバーからカスタム絵文字を使用する必要があります。" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "サーバーごとのプレフィックスが有効になっていません!\n" "configコマンドを使用して、代わりにプレフィックスを更新してください。" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "このコマンドはギルドでのみ使用できます。" + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "指定された無効なサブコマンドです。詳細についてはヘルプコマンドを使用してください。" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "言語を`%(locale)s`に設定できません。利用できません。" + +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "URLを入力するか、ファイルを添付する必要があります。" -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "エラーのためアバターを変更できません: \n" "%(raw_error)s" -#: musicbot/bot.py:6940 +#: musicbot/bot.py:7014 #, python-format msgid "MusicBot found a %s with no guild! This could be a problem." msgstr "MusicBotはギルドのない %s を見つけました!問題が発生する可能性があります。" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "現在サーバーに接続されていません `%(guild)s`" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "無効なオプションが与えられました。ソフト、フル、アップグレード、uppip、またはupgitのいずれかを使用してください" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "IDまたは名前を入力してください。" -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "IDまたは名前のギルドが見つかりませんでした。`%(input)s`" -#: musicbot/bot.py:7172 +#: musicbot/bot.py:7246 #, python-format msgid "Activating debug breakpoint ID: %(uuid)s" msgstr "デバッグブレークポイントIDをアクティベート中: %(uuid)s" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "`objgraph` をインポートできませんでした。インストールされていますか?" -#: musicbot/bot.py:7287 +#: musicbot/bot.py:7361 msgid "Debug code ran with eval()." msgstr "eval() で実行されたデバッグコード。" -#: musicbot/bot.py:7297 +#: musicbot/bot.py:7371 msgid "Debug code ran with exec()." msgstr "exec()でデバッグコードを実行しました。" -#: musicbot/bot.py:7300 +#: musicbot/bot.py:7374 msgid "Debug code failed to execute." msgstr "デバッグコードの実行に失敗しました。" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1875,275 +1893,275 @@ msgstr "デバッグコードの実行に失敗しました:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "サブコマンドは次のいずれかでなければなりません: %(options)s" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "git 実行可能ファイルが見つかりませんでした。" -#: musicbot/bot.py:7483 +#: musicbot/bot.py:7559 msgid "Failed while checking for updates via git command." msgstr "git コマンドで更新の確認に失敗しました。" -#: musicbot/bot.py:7512 +#: musicbot/bot.py:7588 msgid "Package missing meta in pip report." msgstr "pipレポートにメタが見つからないパッケージ。" -#: musicbot/bot.py:7526 +#: musicbot/bot.py:7602 msgid "Failed to get pip update status due to some error." msgstr "エラーが発生したため、Pip の更新ステータスを取得できませんでした。" -#: musicbot/bot.py:7586 +#: musicbot/bot.py:7662 msgid "Got a strange voice client entry." msgstr "変なボイスクライアントのエントリがあります。" -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "クッキーは既に有効になっています。" -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "クッキーを有効にするには、アップロードする必要があります。" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "エラーのためクッキーを有効にできませんでした: %(raw_error)s" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "エラーのためクッキーファイルの名前を変更できませんでした: %(raw_error)s\n" "クッキーは一時的に無効化され、次回の再起動時に再度有効になります。" -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "添付されたアップロードが見つかりませんでした。Cookie ファイルのアップロード中に再試行してください。" -#: musicbot/bot.py:7740 +#: musicbot/bot.py:7816 #, python-format msgid "Could not remove old, disabled cookies file: %(raw_error)s" msgstr "古い無効化されたCookieファイルを削除できませんでした: %(raw_error)s" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "discordからCookieファイルをダウンロード中にエラーが発生しました: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "ディスクにクッキーを保存できませんでした: %(raw_error)s" -#: musicbot/bot.py:7772 +#: musicbot/bot.py:7848 #, python-format msgid "Got a message with no channel, somehow: %s" msgstr "チャンネルがないメッセージがあります。 %s" -#: musicbot/bot.py:7800 +#: musicbot/bot.py:7876 #, python-format msgid "Ignoring command from myself (%s)" msgstr "自分からのコマンドを無視しました (%s)" -#: musicbot/bot.py:7808 +#: musicbot/bot.py:7884 #, python-format msgid "Ignoring command from other bot (%s)" msgstr "他のボットからコマンドを無視しました (%s)" -#: musicbot/bot.py:7816 +#: musicbot/bot.py:7892 #, python-format msgid "Ignoring command from channel of type: %s" msgstr "%s のチャンネルからコマンドを無視しました" -#: musicbot/bot.py:7900 +#: musicbot/bot.py:7976 #, python-format msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" msgstr "ブロックリストのユーザー: %(id)s/%(name)s tried command: %(command)s" -#: musicbot/bot.py:7907 +#: musicbot/bot.py:7983 #, python-format msgid "Message from %(id)s/%(name)s: %(message)s" msgstr "%(id)s/%(name)sからのメッセージ : %(message)s" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "このコマンドは権限グループには許可されていません: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "このコマンドを使用するには、ボイスチャンネルに参加する必要があります。" -#: musicbot/bot.py:8060 +#: musicbot/bot.py:8136 #, python-format msgid "Invalid command usage, missing values for params: %(params)r" msgstr "無効なコマンド使用法、パラメータの値がありません: %(params)r" -#: musicbot/bot.py:8102 +#: musicbot/bot.py:8178 #, python-format msgid "Error in %(command)s: %(err_name)s: %(err_text)s" msgstr "%(command)sのエラー : %(err_name)s: %(err_text)s" -#: musicbot/bot.py:8126 +#: musicbot/bot.py:8202 #, python-format msgid "Exception while handling command: %(command)s" msgstr "コマンド処理中の例外: %(command)s" -#: musicbot/bot.py:8158 +#: musicbot/bot.py:8234 #, python-format msgid "Cannot generate help for missing command: %s" msgstr "不足しているコマンドのヘルプを生成できません: %s" -#: musicbot/bot.py:8162 +#: musicbot/bot.py:8238 #, python-format msgid "Missing help data for command: %s" msgstr "コマンドのヘルプデータがありません: %s" -#: musicbot/bot.py:8279 +#: musicbot/bot.py:8355 #, python-format msgid "Leaving voice channel %s in %s due to inactivity." msgstr "%s に音声チャンネル %s を退出しています。" -#: musicbot/bot.py:8288 +#: musicbot/bot.py:8364 msgid "MusicBot has become connected." msgstr "MusicBot が接続されました。" -#: musicbot/bot.py:8292 +#: musicbot/bot.py:8368 msgid "MusicBot has become disconnected." msgstr "MusicBotの接続が切断されました。" -#: musicbot/bot.py:8297 +#: musicbot/bot.py:8373 #, python-format msgid "Got a Socket Event: %s" msgstr "ソケットイベントがあります: %s" -#: musicbot/bot.py:8313 +#: musicbot/bot.py:8389 msgid "VoiceState updated before on_ready finished" msgstr "VoiceState は、on_readyが終了する前に更新されました" -#: musicbot/bot.py:8326 +#: musicbot/bot.py:8402 #, python-format msgid "Ignoring %s in %s as it is a bound voice channel." msgstr "%s の %s を無視しました。音声チャンネルです。" -#: musicbot/bot.py:8335 +#: musicbot/bot.py:8411 #, python-format msgid "%s has been detected as empty. Handling timeouts." msgstr "%s は空として検出されました。処理のタイムアウト。" -#: musicbot/bot.py:8346 +#: musicbot/bot.py:8422 #, python-format msgid "A user joined %s, cancelling timer." msgstr "ユーザーが %sに参加し、タイマーをキャンセルしました。" -#: musicbot/bot.py:8359 +#: musicbot/bot.py:8435 #, python-format msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." msgstr "ボットが移動され、音声チャンネル %s が空です。タイムアウトを処理します。" -#: musicbot/bot.py:8368 +#: musicbot/bot.py:8444 #, python-format msgid "The bot got moved and the voice channel %s is not empty." msgstr "ボットが移動され、音声チャンネル %s が空ではありません。" -#: musicbot/bot.py:8402 +#: musicbot/bot.py:8493 #, python-format msgid "No longer following user %s" msgstr "ユーザー %sをフォローしていません" -#: musicbot/bot.py:8424 +#: musicbot/bot.py:8515 #, python-format msgid "Following user `%(user)s` to channel: %(channel)s" msgstr "次のユーザー`%(user)s`チャンネル: %(channel)s" -#: musicbot/bot.py:8444 +#: musicbot/bot.py:8535 msgid "VoiceState disconnect before.channel is None." msgstr "VoiceState disconnection.channel is None." -#: musicbot/bot.py:8471 +#: musicbot/bot.py:8562 #, python-format msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" msgstr "Discordによる音声から切断されました: %(guild)s/%(channel)s (コード: %(code)s) [S:%(state)s]" -#: musicbot/bot.py:8493 +#: musicbot/bot.py:8584 #, python-format msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" msgstr "タイプの自動参加チャンネルは使用できません: ギルドの %(type)s : %(guild)s" -#: musicbot/bot.py:8500 +#: musicbot/bot.py:8591 #, python-format msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" msgstr "自動参加チャンネルが見つかりません。削除されましたか? ギルド: %s" -#: musicbot/bot.py:8506 +#: musicbot/bot.py:8597 #, python-format msgid "Reconnecting to auto-joined guild on channel: %s" msgstr "チャンネルのギルド自動参加に再接続中: %s" -#: musicbot/bot.py:8519 +#: musicbot/bot.py:8610 #, python-format msgid "Cannot auto join channel: %s" msgstr "チャンネルに自動参加できません: %s" -#: musicbot/bot.py:8535 +#: musicbot/bot.py:8626 #, python-format msgid "Bot has been added to guild: %s" msgstr "Botがギルドに追加されました: %s" -#: musicbot/bot.py:8547 +#: musicbot/bot.py:8638 #, python-format msgid "Left guild '%s' due to bot owner not found." msgstr "ボット所有者が見つからないため、ギルド「%s」を退出しました。" -#: musicbot/bot.py:8561 +#: musicbot/bot.py:8652 #, python-format msgid "Creating data folder for guild %s" msgstr "ギルド %sのデータフォルダを作成しています" -#: musicbot/bot.py:8569 +#: musicbot/bot.py:8660 #, python-format msgid "Bot has been removed from guild: %s" msgstr "Botがギルドから削除されました: %s" -#: musicbot/bot.py:8570 +#: musicbot/bot.py:8661 msgid "Updated guild list:" msgstr "更新されたギルドリスト:" -#: musicbot/bot.py:8585 +#: musicbot/bot.py:8676 #, python-format msgid "Guild \"%s\" has become available." msgstr "ギルド「%s」が利用可能になりました。" -#: musicbot/bot.py:8591 +#: musicbot/bot.py:8682 #, python-format msgid "Resuming player in \"%s\" due to availability." msgstr "空き状況により \"%s\" のプレイヤーを再開しています。" -#: musicbot/bot.py:8608 +#: musicbot/bot.py:8699 #, python-format msgid "Guild \"%s\" has become unavailable." msgstr "ギルド「%s」は利用できなくなりました。" -#: musicbot/bot.py:8614 +#: musicbot/bot.py:8705 #, python-format msgid "Pausing player in \"%s\" due to unavailability." msgstr "「%s」でプレイヤーを一時停止しています。" -#: musicbot/bot.py:8630 +#: musicbot/bot.py:8721 #, python-format msgid "Guild update for: %s" msgstr "ギルド更新: %s" -#: musicbot/bot.py:8636 +#: musicbot/bot.py:8727 #, python-format msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" msgstr "Guild 属性 %(attr)s が現在: %(new)s -- Was: %(old)s" -#: musicbot/bot.py:8668 +#: musicbot/bot.py:8759 #, python-format msgid "Channel update for: %(channel)s -- %(changes)s" msgstr "チャンネル更新: %(channel)s -- %(changes)s" @@ -2158,7 +2176,7 @@ msgstr "%s の作成" msgid "Loading config from: %s" msgstr "%s から設定を読み込んでいます" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2172,16 +2190,16 @@ msgid "Error while reading config.\n\n" " Use the example options as a template or copy it from the repository." msgstr "" -#: musicbot/config.py:1113 +#: musicbot/config.py:1112 #, python-format msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." msgstr "%s ログファイル以上を保存できません。オプションの LogsMaxKept は代わりに制限されます。" -#: musicbot/config.py:1121 +#: musicbot/config.py:1120 msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." msgstr "ConfigオプションLogsDateFormatは空で、ログファイルのローテーションが壊れます。代わりにデフォルトを使用します。" -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2189,11 +2207,11 @@ msgid "Error while validating config options.\n\n" " Make sure the path you configured is a path to a folder / directory." msgstr "" -#: musicbot/config.py:1149 +#: musicbot/config.py:1148 msgid "An exception was thrown while validating AudioCachePath." msgstr "AudioCachePath の検証中に例外がスローされました。" -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2208,12 +2226,12 @@ msgstr "設定オプションの検証中にエラーが発生しました。\n\ "ソリューション:\n" " 設定が有効であることを再確認してください。 アクセス可能なディレクトリパス" -#: musicbot/config.py:1165 +#: musicbot/config.py:1164 #, python-format msgid "Audio Cache will be stored in: %s" msgstr "オーディオキャッシュは %sに保存されます" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2222,16 +2240,16 @@ msgid "Error while reading config options.\n\n" " Set the Token config option or set environment variable %(env_var)s with an App token." msgstr "" -#: musicbot/config.py:1197 +#: musicbot/config.py:1196 msgid "StatusMessage config option is too long, it will be limited to 128 characters." msgstr "StatusMessage 設定オプションが長すぎます。128 文字に制限されます。" -#: musicbot/config.py:1206 +#: musicbot/config.py:1205 #, python-format msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." msgstr "デフォルトの再生速度は0.5から100.0の間でなければなりません。 %.3f のオプション値は制限されます。" -#: musicbot/config.py:1216 +#: musicbot/config.py:1215 msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "Cookies are not recommended, may not be supported, and may totally break.\n" "Copying cookies from your web-browser risks exposing personal data and \n" @@ -2239,15 +2257,15 @@ msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "You have been warned! Good Luck! \\U0001F596\n" msgstr "" -#: musicbot/config.py:1234 +#: musicbot/config.py:1233 msgid "Validating options with service data..." msgstr "サービスデータを使用してオプションを検証しています..." -#: musicbot/config.py:1240 +#: musicbot/config.py:1239 msgid "Acquired owner ID via API" msgstr "API経由で取得した所有者ID" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2256,11 +2274,11 @@ msgid "Error while fetching 'OwnerID' automatically.\n\n" " Manually set the 'OwnerID' config option or try again later." msgstr "" -#: musicbot/config.py:1256 +#: musicbot/config.py:1255 msgid "MusicBot does not have a user instance, cannot proceed." msgstr "MusicBotにユーザーインスタンスがありません。続行できません。" -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2268,30 +2286,30 @@ msgid "Error validating config options.\n\n" " Do not use the Bot or App ID in the 'OwnerID' field." msgstr "" -#: musicbot/config.py:1286 +#: musicbot/config.py:1285 msgid "Config options file not found. Checking for alternatives..." msgstr "設定オプションファイルが見つかりません。選択肢を確認しています..." -#: musicbot/config.py:1298 +#: musicbot/config.py:1297 #, python-format msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." msgstr "%(ini_file)s を %(option_file)sにリネームするには、おそらくファイル拡張子を ON にする必要があります。" -#: musicbot/config.py:1306 +#: musicbot/config.py:1305 #, python-format msgid "Copying existing example options file: %(example_file)s" msgstr "既存のオプションファイルのコピー: %(example_file)s" -#: musicbot/config.py:1315 +#: musicbot/config.py:1314 #, python-format msgid "Generated a new %(example_file)s and copied it to %(option_file)s" msgstr "新しい %(example_file)s を生成し、 %(option_file)sにコピーしました。" -#: musicbot/config.py:1323 +#: musicbot/config.py:1322 msgid "Something went wrong while trying to find a config option file." msgstr "設定オプションファイルの検索中に問題が発生しました。" -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2306,7 +2324,7 @@ msgstr "設定の場所を特定できませんでした。\n\n" "ソリューション:\n" " 設定フォルダとファイルが存在することを確認し、MusicBotによって読み込まれます。" -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2317,43 +2335,43 @@ msgid "Error loading config.\n\n" " Copy the example file from the repo if all else fails." msgstr "" -#: musicbot/config.py:1369 +#: musicbot/config.py:1368 msgid "Dev Bug! Config option has getter that is not available." msgstr "Dev Bug! 設定オプションは利用できないゲッターがあります。" -#: musicbot/config.py:1374 +#: musicbot/config.py:1373 msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." msgstr "Dev Bug! Config オプションは無効な型、getter とデフォルトは同じ型でなければなりません。" -#: musicbot/config.py:1394 +#: musicbot/config.py:1393 msgid "Option was missing previously." msgstr "オプションは以前に存在しませんでした。" -#: musicbot/config.py:1409 +#: musicbot/config.py:1408 #, python-format msgid "Config section not in parsed config! Missing: %s" msgstr "パースされた設定セクションに設定セクションがありません! ミス: %s" -#: musicbot/config.py:1414 +#: musicbot/config.py:1413 #, python-format msgid "Saved config option: %(config)s = %(value)s" msgstr "保存された設定オプション: %(config)s = %(value)s" -#: musicbot/config.py:1427 +#: musicbot/config.py:1426 #, python-format msgid "Failed to save config: %s" msgstr "設定を保存できませんでした: %s" -#: musicbot/config.py:1932 +#: musicbot/config.py:1931 msgid "Option names are not unique between INI sections! Resolver is disabled." msgstr "オプション名はINIセクション間で一意ではありません! リゾルバーは無効です。" -#: musicbot/config.py:2094 musicbot/permissions.py:859 +#: musicbot/config.py:2099 musicbot/permissions.py:859 #, python-format msgid "Failed to save default INI file at: %s" msgstr "デフォルトのINIファイルを %sに保存できませんでした" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2362,7 +2380,7 @@ msgid "Error loading config value.\n\n" " Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." msgstr "" -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2371,7 +2389,7 @@ msgid "Error loading config value.\n\n" " Check the path setting and make sure the file exists and is accessible to MusicBot." msgstr "" -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2380,60 +2398,60 @@ msgid "Error loading config value.\n\n" " Ensure all IDs are numerical, and separated only by spaces or commas." msgstr "" -#: musicbot/config.py:2283 +#: musicbot/config.py:2288 #, python-format msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" msgstr "レベルに戻ります:%(value)s\"が無効です: %(fallback)s" -#: musicbot/config.py:2304 +#: musicbot/config.py:2309 #, python-format msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." msgstr "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." -#: musicbot/config.py:2353 +#: musicbot/config.py:2358 #, python-format msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." msgstr "オプション [%(section)s] > %(option)s は 100 %% (%(value)s) より大きい値を持ち、代わりに %(fallback)s に設定されます。" -#: musicbot/config.py:2437 +#: musicbot/config.py:2442 #, python-format msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" msgstr "INIファイルエントリの名前を変更 [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" -#: musicbot/config.py:2493 +#: musicbot/config.py:2498 msgid "Upgrading config file with renamed options..." msgstr "名前を変更したオプション付き設定ファイルをアップグレード中..." -#: musicbot/config.py:2510 +#: musicbot/config.py:2515 msgid "Failed to upgrade config. You'll need to upgrade it manually." msgstr "設定のアップグレードに失敗しました。手動でアップグレードする必要があります。" -#: musicbot/config.py:2551 +#: musicbot/config.py:2556 #, python-format msgid "Block list file not found: %s" msgstr "ブロックリストファイルが見つかりません: %s" -#: musicbot/config.py:2572 +#: musicbot/config.py:2577 #, python-format msgid "Could not load block list from file: %s" msgstr "ファイルからブロックリストを読み込めませんでした: %s" -#: musicbot/config.py:2610 musicbot/config.py:2643 +#: musicbot/config.py:2615 musicbot/config.py:2648 #, python-format msgid "Could not update the block list file: %s" msgstr "ブロックリストファイルを更新できませんでした: %s" -#: musicbot/config.py:2670 +#: musicbot/config.py:2675 #, python-format msgid "Loaded User Block list with %s entries." msgstr "%s エントリでユーザーブロックリストを読み込みました。" -#: musicbot/config.py:2681 +#: musicbot/config.py:2686 #, python-format msgid "We found a legacy blacklist file, it will be renamed to: %s" msgstr "レガシーブラックリストファイルを見つけました。名前は %sに変更されます。" -#: musicbot/config.py:2727 +#: musicbot/config.py:2732 #, python-format msgid "Loaded a Song Block list with %s entries." msgstr "%s エントリでソングブロックリストをロードしました。" @@ -2457,20 +2475,20 @@ msgstr "IDを持つギルドのギルドデータをロードしています: % msgid "An OS error prevented reading guild data file: %s" msgstr "ギルドデータファイル %s の読み込みに失敗しました。" -#: musicbot/constructs.py:255 +#: musicbot/constructs.py:257 #, python-format msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" msgstr "Guild %(id)s/%(name)s にカスタムコマンドプレフィックスがあります: %(prefix)s" -#: musicbot/constructs.py:275 +#: musicbot/constructs.py:277 msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" msgstr "ID 0のギルドのデータを保存できません。コード内のバグです!" -#: musicbot/constructs.py:298 +#: musicbot/constructs.py:301 msgid "Could not save guild specific data due to OS Error." msgstr "OS エラーのため、ギルド固有のデータを保存できませんでした。" -#: musicbot/constructs.py:301 +#: musicbot/constructs.py:304 msgid "Failed to serialize guild specific data due to invalid data." msgstr "無効なデータのため、ギルド固有のデータをシリアライズできませんでした。" @@ -2939,10 +2957,10 @@ msgstr "ラング引数エラー: %s" msgid "Failed to load log translations for any of: [%s] in: %s" msgstr "[%s] のいずれかのログ翻訳の読み込みに失敗しました: %s" -#: musicbot/i18n.py:333 +#: musicbot/i18n.py:340 #, python-format -msgid "Failed to load discord translations for any of: [%s] in: %s" -msgstr "いずれかの不和翻訳の読み込みに失敗しました: [%s] : %s" +msgid "Failed to load discord translations for any of: [%s] guild: %s in: %s" +msgstr "いずれかの不和翻訳の読み込みに失敗しました: [%s] ギルド: %s in: %s" #: musicbot/json.py:14 #, python-format diff --git a/i18n/ja_JP/LC_MESSAGES/musicbot_messages.mo b/i18n/ja_JP/LC_MESSAGES/musicbot_messages.mo index d21073bc5f9fad794ff1a7700dd782800eceb252..67e5aaccecc9a83faecc0143ca85f93884b0447f 100644 GIT binary patch delta 9684 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 Rw~FIi7#;UU#2T|&{tMK;PHO-F delta 8491 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 P*TkyoR_T>!&2065)WSev diff --git a/i18n/ja_JP/LC_MESSAGES/musicbot_messages.po b/i18n/ja_JP/LC_MESSAGES/musicbot_messages.po index 422b3a216..a9d247bab 100644 --- a/i18n/ja_JP/LC_MESSAGES/musicbot_messages.po +++ b/i18n/ja_JP/LC_MESSAGES/musicbot_messages.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 18:12\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:39\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -27,78 +27,78 @@ msgid "Error while loading aliases.\n\n" " https://github.com/Just-Some-Bots/MusicBot/" msgstr "" -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "メンバーは音声対応ではないため、このコマンドは使用できません。" -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "ボイスチャンネルでない場合、このコマンドは使用できません。" -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "MusicBotにチャンネルで接続する権限がありません: `%(name)s`" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "MusicBotにチャンネルで話す権限がありません: `%(name)s`" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "MusicBot がチャンネルに接続できませんでした。\n" "後でもう一度試すか、続行するとボットを再起動してください。" -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "ボイスチャットへのMusicBot接続がキャンセルされました。これは奇妙です。再起動しますか?" -#: musicbot/bot.py:840 +#: musicbot/bot.py:843 msgid "MusicBot does not have permission to speak." msgstr "MusicBot には話す権限がありません。" -#: musicbot/bot.py:844 +#: musicbot/bot.py:847 msgid "MusicBot could not request to speak." msgstr "MusicBot は話すことができませんでした。" -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "ボットはボイスチャンネルに入っていません。\n" "召喚コマンドを使ってボットをボイスチャンネルに連れてきてください。" -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "問題が発生しました。VoiceClientを取得できませんでした。" -#: musicbot/bot.py:1084 +#: musicbot/bot.py:1087 #, python-format msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" msgstr "次の曲をスキップする `%(title)s`リクエスターとしての`%(user)s`は声になっていません!" -#: musicbot/bot.py:1102 +#: musicbot/bot.py:1105 #, python-format msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" msgstr "%(mention)s - あなたの曲「%(title)s」が %(channel)sで再生されました!" -#: musicbot/bot.py:1111 +#: musicbot/bot.py:1114 #, python-format msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" msgstr "%(channel)sで遊んでいます: `%(title)s`が %(author)s によって追加されました!" -#: musicbot/bot.py:1122 +#: musicbot/bot.py:1125 #, python-format msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" msgstr "" -#: musicbot/bot.py:1333 +#: musicbot/bot.py:1336 #, python-format msgid "Skipping songs added by %(user)s as they are not in voice!" msgstr "%(user)s によって追加された曲を声に出していないのでスキップしています!" -#: musicbot/bot.py:1555 +#: musicbot/bot.py:1558 #, python-format msgid "Playback failed for song `%(song)s` due to an error:\n" "```\n" @@ -107,11 +107,11 @@ msgstr "曲「%(song)s」の再生に失敗しました。エラー:\n" "```\n" "%(error)s```" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "無効なレスポンスオブジェクトを送信しようとしました。" -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -121,35 +121,35 @@ msgid "Failed Discord API Login!\n\n" " Check API status at the official site: discordstatus.com" msgstr "" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "The requested song `%(subject)s` is blocked by the song block list." -#: musicbot/bot.py:2831 +#: musicbot/bot.py:2834 msgid "Reset the auto playlist queue by copying it back into player memory.\n" "This command will be removed in a future version, replaced by the autoplaylist command(s)." msgstr "プレーヤーのメモリにコピーして自動プレイリストのキューをリセットします。\n" "このコマンドは、将来のバージョンでは削除され、自動プレイリストコマンドに置き換えられます。" -#: musicbot/bot.py:2846 +#: musicbot/bot.py:2849 msgid "\\N{OK HAND SIGN}" msgstr "\\N{OK HAND SIGN}" -#: musicbot/bot.py:2853 +#: musicbot/bot.py:2856 msgid "Show usage and description of a command, or list all available commands.\n" msgstr "コマンドの使用状況と説明を表示するか、利用可能なすべてのコマンドを一覧表示します。\n" -#: musicbot/bot.py:2888 +#: musicbot/bot.py:2891 msgid "**Aliases for this command:**\n" msgstr "**このコマンドのエイリアス:**\n" -#: musicbot/bot.py:2891 +#: musicbot/bot.py:2894 #, python-format msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" msgstr "" -#: musicbot/bot.py:2924 +#: musicbot/bot.py:2927 #, python-format msgid "**Alias of command:**\n" " `%(command)s`\n" @@ -157,7 +157,7 @@ msgstr "**コマンドのエイリアス:**\n" " `%(command)s`\n" #. TRANSLATORS: template string for command-specific help output. -#: musicbot/bot.py:2931 +#: musicbot/bot.py:2934 #, python-format msgid "%(is_alias)s\n" "%(docs)s\n" @@ -166,17 +166,17 @@ msgstr "%(is_alias)s\n" "%(docs)s\n" "%(alias_list)s" -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "そのようなコマンドはありません" -#: musicbot/bot.py:2959 +#: musicbot/bot.py:2962 #, python-format msgid "The list above shows only commands permitted for your use.\n" "For a list of all commands, run: %(example_all)s\n" msgstr "" -#: musicbot/bot.py:2965 +#: musicbot/bot.py:2968 #, python-format msgid "**Commands by name:** *(without prefix)*\n" "```\n" @@ -193,74 +193,74 @@ msgstr "**名前によるコマンド:** *(プレフィックスなし)*\n" "特定のコマンドに関するヘルプについては、 run: %(example_command)s\n" "%(all_note)s" -#: musicbot/bot.py:2984 +#: musicbot/bot.py:2987 msgid " Block a mentioned user." msgstr " メンションされたユーザーをブロックします。" -#: musicbot/bot.py:2987 +#: musicbot/bot.py:2990 msgid " Unblock a mentioned user." msgstr " メンションしたユーザーのブロックを解除します。" -#: musicbot/bot.py:2990 +#: musicbot/bot.py:2993 msgid " Show the block status of a mentioned user." msgstr " メンションされたユーザーのブロックステータスを表示します。" -#: musicbot/bot.py:2994 +#: musicbot/bot.py:2997 msgid "Manage the users in the user block list.\n" "Blocked users are forbidden from using all bot commands.\n" msgstr "ユーザーブロックリストのユーザーを管理します。\n" "ブロックされたユーザーはすべてのボットコマンドを使用できません。\n" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "ユーザーに言及するか、ID番号を入力してください。" -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "無効なサブコマンドが与えられました。使用例には `help blockuser` を使用してください。" -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBotは指定したユーザーを見つけることができませんでした。" -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "オーナーをブロックリストに追加できません。" -#: musicbot/bot.py:3059 +#: musicbot/bot.py:3062 msgid "User block list is currently enabled." msgstr "ユーザーブロックリストは現在有効です。" -#: musicbot/bot.py:3061 +#: musicbot/bot.py:3064 msgid "User block list is currently disabled." msgstr "ユーザーのブロックリストは現在無効です。" -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "あなたがリストしたユーザーを追加することはできません、すでに追加されています。" -#: musicbot/bot.py:3078 +#: musicbot/bot.py:3081 #, python-format msgid "%(number)s user(s) have been added to the block list.\n" "%(status)s" msgstr "%(number)s ユーザーがブロックリストに追加されました。\n" "%(status)s" -#: musicbot/bot.py:3089 +#: musicbot/bot.py:3092 msgid "None of those users are in the blacklist." msgstr "それらのユーザーのいずれもブラックリストにありません。" -#: musicbot/bot.py:3094 +#: musicbot/bot.py:3097 #, python-format msgid "User: `%(user)s` is not blocked.\n" msgstr "ユーザー: `%(user)s` はブロックされていません。\n" -#: musicbot/bot.py:3096 +#: musicbot/bot.py:3099 #, python-format msgid "User: `%(user)s` is blocked.\n" msgstr "ユーザー: `%(user)s` がブロックされました。\n" -#: musicbot/bot.py:3099 +#: musicbot/bot.py:3102 #, python-format msgid "**Block list status:**\n" "%(status)s\n" @@ -269,14 +269,14 @@ msgstr "**ブロックリストの状態:**\n" "%(status)s\n" "%(users)s" -#: musicbot/bot.py:3109 +#: musicbot/bot.py:3112 #, python-format msgid "%(number)s user(s) have been removed from the block list.\n" "%(status)s" msgstr "%(number)s ユーザーがブロックリストから削除されました。\n" "%(status)s" -#: musicbot/bot.py:3118 +#: musicbot/bot.py:3121 msgid "Manage a block list applied to song requests and extracted song data.\n" "A subject may be a song URL or a word or phrase found in the track title.\n" "If subject is omitted, any currently playing track URL will be added instead.\n\n" @@ -284,173 +284,173 @@ msgid "Manage a block list applied to song requests and extracted song data.\n" "This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" msgstr "" -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "現在再生中の曲がない場合は、曲の件名を指定する必要があります。" -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "無効なサブコマンドが与えられました。使用例には `help blocksong` を使用してください。" -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "Subject `%(subject)s` はすでにソングブロックリストにあります。" -#: musicbot/bot.py:3187 +#: musicbot/bot.py:3190 #, python-format msgid "Added subject `%(subject)s` to the song block list.\n" "%(status)s" msgstr "曲のブロックリストに件名`%(subject)s`を追加しました。\n" "%(status)s" -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "件名はソングブロックリストにないため、削除できません。" -#: musicbot/bot.py:3204 +#: musicbot/bot.py:3207 #, python-format msgid "Subject `%(subject)s` has been removed from the block list.\n" "%(status)s" msgstr "件名 `%(subject)s` はブロックリストから削除されました。\n" "%(status)s" -#: musicbot/bot.py:3214 +#: musicbot/bot.py:3217 msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" msgstr " 指定した曲を追加または削除するか、現在プレイリストに曲を再生中です。\n" -#: musicbot/bot.py:3217 +#: musicbot/bot.py:3220 msgid " Adds the entire queue to the guilds playlist.\n" msgstr " ギルドプレイリストにキュー全体を追加します。\n" -#: musicbot/bot.py:3220 +#: musicbot/bot.py:3223 msgid " Show a list of existing playlist files.\n" msgstr " 既存のプレイリストファイルのリストを表示します。\n" -#: musicbot/bot.py:3223 +#: musicbot/bot.py:3226 msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" msgstr " ランダム化されない限り、自動プレイリストキューをリセットします。\n" -#: musicbot/bot.py:3226 +#: musicbot/bot.py:3229 msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" msgstr " このギルドのデフォルトとしてプレイリストを設定し、ギルドの自動プレイリストを再ロードします。\n" -#: musicbot/bot.py:3229 +#: musicbot/bot.py:3232 msgid "Manage auto playlist files and per-guild settings." msgstr "自動プレイリストファイルとギルドごとの設定を管理します。" -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "無効なサブコマンドが与えられました。使用例には `help autoplaylist` を使用してください。" -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "指定された曲のリンクは無効です" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "キューが空です。再生コマンドで曲を追加してください!" -#: musicbot/bot.py:3273 +#: musicbot/bot.py:3276 msgid "All songs in the queue are already in the autoplaylist." msgstr "キュー内のすべての曲はすでに自動プレイリストにあります。" -#: musicbot/bot.py:3277 +#: musicbot/bot.py:3280 #, python-format msgid "Added %(number)d songs to the autoplaylist." msgstr "自動プレイリストに %(number)d 曲を追加しました。" -#: musicbot/bot.py:3287 +#: musicbot/bot.py:3290 #, python-format msgid "Added `%(url)s` to the autoplaylist." msgstr "自動プレイリストに「%(url)s」を追加しました。" -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "この曲はすでに自動プレイリストにあります。" -#: musicbot/bot.py:3304 +#: musicbot/bot.py:3307 #, python-format msgid "Removed `%(url)s` from the autoplaylist." msgstr "自動プレイリストから`%(url)s`を削除しました。" -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "この曲はまだ自動プレイリストに入っていません。" -#: musicbot/bot.py:3316 +#: musicbot/bot.py:3319 #, python-format msgid "Loaded a fresh copy of the playlist: `%(file)s`" msgstr "プレイリストの新しいコピーを読み込みました: `%(file)s`" -#: musicbot/bot.py:3327 +#: musicbot/bot.py:3330 #, python-format msgid "**Available Playlists:**\n" "%(names)s" msgstr "**利用可能なプレイリスト:**\n" "%(names)s" -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "プレイリストファイル名を指定する必要があります。" -#: musicbot/bot.py:3357 +#: musicbot/bot.py:3360 msgid "\n" "This playlist is new, you must add songs to save it to disk!" msgstr "\n" "このプレイリストは新規です。ディスクに保存するには曲を追加してください!" -#: musicbot/bot.py:3362 +#: musicbot/bot.py:3365 #, python-format msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" msgstr "このサーバーのプレイリストが更新されました: `%(name)s`%(note)s" -#: musicbot/bot.py:3373 +#: musicbot/bot.py:3376 msgid "Generate an invite link that can be used to add this bot to another server." msgstr "このボットを他のサーバーに追加するために使用できる招待リンクを生成します。" -#: musicbot/bot.py:3385 +#: musicbot/bot.py:3388 #, python-format msgid "Click here to add me to a discord server:\n" "%(url)s" msgstr "Discordサーバーに追加するにはここをクリックしてください:\n" "%(url)s" -#: musicbot/bot.py:3391 +#: musicbot/bot.py:3394 msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" "Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" msgstr "カラオケモードのオン/オフを切り替えます。有効にすると、カラオケメンバーのみが曲をキューに追加できます。\n" "カラオケメンバーであるBypassKaraokeMode権限制御を持つグループ。\n" -#: musicbot/bot.py:3403 +#: musicbot/bot.py:3406 msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." msgstr "\\N{OK HAND SIGN} カラオケモードが有効になりました。" -#: musicbot/bot.py:3405 +#: musicbot/bot.py:3408 msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." msgstr "\\N{OK HAND SIGN} カラオケモードが無効になりました。" -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "プレイリストをリクエストする権限がありません" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "プレイリストのエントリが多すぎます(%(songs)s ですが、最大は %(max)s です)" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" "The limit is %(max)s for your group." msgstr "" -#: musicbot/bot.py:3580 +#: musicbot/bot.py:3583 msgid "Bot was previously paused, resuming playback now." msgstr "Botは以前に一時停止されていました。再生を再開しています。" -#: musicbot/bot.py:3589 +#: musicbot/bot.py:3592 msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" "You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" "Playlist links will be extracted into multiple links and added to the queue.\n" @@ -458,139 +458,139 @@ msgid "Add a song to be played in the queue. If no song is playing or paused, pl "MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" msgstr "" -#: musicbot/bot.py:3628 +#: musicbot/bot.py:3631 msgid "Play command that shuffles playlist entries before adding them to the queue.\n" msgstr "キューに追加する前にプレイリストエントリをシャッフルするコマンドを再生します。\n" -#: musicbot/bot.py:3665 +#: musicbot/bot.py:3668 #, python-format msgid "Shuffled playlist items into the queue from `%(request)s`" msgstr "`%(request)s`からのキューにプレイリストアイテムをシャッフルしました" -#: musicbot/bot.py:3672 +#: musicbot/bot.py:3675 msgid "A play command that adds the song as the next to play rather than last.\n" "Read help for the play command for information on supported inputs.\n" msgstr "曲を最後に再生するのではなく、次に追加する再生コマンドです。\n" "サポートされている入力に関する情報については、playコマンドのヘルプを参照してください。\n" -#: musicbot/bot.py:3707 +#: musicbot/bot.py:3710 msgid "A play command which skips any current song and plays immediately.\n" "Read help for the play command for information on supported inputs.\n" msgstr "\n" "サポートされている入力に関する情報については、playコマンドのヘルプを参照してください。\n" -#: musicbot/bot.py:3744 +#: musicbot/bot.py:3747 msgid "Restarts the current song at the given time.\n" "If time starts with + or - seek will be relative to current playback time.\n" "Time should be given in seconds, fractional seconds are accepted.\n" "Due to codec specifics in ffmpeg, this may not be accurate.\n" msgstr "" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "何もプレイしていない場合はシークを使用できません。" -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "現在のトラックでシークを使用することはできません、それは不明な期間を持っています。" -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "Seeking is not supported for streams." -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "再生を配置する時間がなければシークは使用できません。" -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "`%(input)s`を秒単位で有効な時間に変換できませんでした。" -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "`%(input)s/%(seconds)s`の長さのトラックの`%(progress)s `(` %(total)s`秒)をシークできません" -#: musicbot/bot.py:3840 +#: musicbot/bot.py:3843 #, python-format msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." msgstr "現在の曲には、%(input)s`(`%(seconds).2f`秒)を求めています。" -#: musicbot/bot.py:3852 +#: musicbot/bot.py:3855 msgid "Toggles playlist or song looping.\n" "If no option is provided the current song will be repeated.\n" "If no option is provided and the song is already repeating, repeating will be turned off.\n" msgstr "" -#: musicbot/bot.py:3870 +#: musicbot/bot.py:3873 msgid "No songs are currently playing. Play something with a play command." msgstr "再生中の曲はありません。再生コマンドで何か再生できます。" -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "無効なサブコマンドです。使用例には「ヘルプの繰り返し」コマンドを使用してください。" -#: musicbot/bot.py:3883 musicbot/bot.py:3920 +#: musicbot/bot.py:3886 musicbot/bot.py:3923 msgid "Playlist is now repeating." msgstr "プレイリストが繰り返されています。" -#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +#: musicbot/bot.py:3889 musicbot/bot.py:3916 musicbot/bot.py:3927 msgid "Playlist is no longer repeating." msgstr "プレイリストはもう繰り返しません。" -#: musicbot/bot.py:3892 musicbot/bot.py:3901 +#: musicbot/bot.py:3895 musicbot/bot.py:3904 msgid "Player will now loop the current song." msgstr "プレーヤーは現在の曲をループさせます。" -#: musicbot/bot.py:3894 musicbot/bot.py:3908 +#: musicbot/bot.py:3897 musicbot/bot.py:3911 msgid "Player will no longer loop the current song." msgstr "プレーヤーは現在の曲をループしなくなります。" -#: musicbot/bot.py:3898 +#: musicbot/bot.py:3901 msgid "Player is already looping a song!" msgstr "プレイヤーは既に曲をループしています!" -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "プレーヤーは現在ループしていません。" -#: musicbot/bot.py:3926 +#: musicbot/bot.py:3929 msgid "Song is no longer repeating." msgstr "歌はもう繰り返されません。" -#: musicbot/bot.py:3930 +#: musicbot/bot.py:3933 msgid "Song is now repeating." msgstr "歌が繰り返されています。" -#: musicbot/bot.py:3938 +#: musicbot/bot.py:3941 msgid " Move song at position FROM to position TO.\n" msgstr " 位置から位置へ曲を移動します。\n" -#: musicbot/bot.py:3942 +#: musicbot/bot.py:3945 msgid "Swap existing songs in the queue using their position numbers.\n" "Use the queue command to find track position numbers.\n" msgstr "位置番号を使用してキュー内の既存の曲を入れ替えます。\n" "トラック位置番号を検索するにはキューコマンドを使用します。\n" -#: musicbot/bot.py:3961 +#: musicbot/bot.py:3964 msgid "There are no songs queued. Play something with a play command." msgstr "曲がキューに追加されていません。再生コマンドで何かを再生します。" -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "曲の位置は整数でなければなりません!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "プレイリストのサイズ以外の位置を指定しました!" -#: musicbot/bot.py:3984 +#: musicbot/bot.py:3987 #, python-format msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" msgstr "曲をキューの %(from)s から %(to)sに移動しました!" -#: musicbot/bot.py:4072 +#: musicbot/bot.py:4075 #, python-format msgid "This link contains a Playlist ID:\n" "`%(url)s`\n\n" @@ -599,107 +599,107 @@ msgstr "このリンクにはプレイリストIDが含まれています:\n" "`%(url)s`\n\n" "プレイリストもキューに入れますか?" -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "ローカルメディアの再生が有効になっていません。" -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "SpotifyのURLが無効または現在サポートされていません。" -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "Spotify の URL が検出されましたが、Spotify は有効ではありません。" -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "キューに登録された曲の上限に達しました (%(max)s)" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "カラオケモードが有効になっています。無効になったらもう一度お試しください!" -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "エラーのための情報の抽出に失敗しました:\n" "%(raw_error)s" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "動画を再生できません。streamコマンドを使用してみてください。" -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "YouTubeの検索結果が %(url)sにはありませんでした" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "曲が追加されていません。すべての曲が最大時間(%(max)s 秒)を超えています。" -#: musicbot/bot.py:4254 +#: musicbot/bot.py:4257 #, python-format msgid "Enqueued **%(number)s** songs to be played.\n" "Position in queue: %(position)s" msgstr "再生される%(number)s**曲をキューに入れました。\n" "キュー内の位置: %(position)s" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "曲の再生時間が制限を超えています(%(length)s > %(max)s)" -#: musicbot/bot.py:4289 +#: musicbot/bot.py:4292 #, python-format msgid "Enqueued `%(track)s` to be played.\n" "Position in queue: %(position)s" msgstr "" -#: musicbot/bot.py:4297 musicbot/bot.py:4312 +#: musicbot/bot.py:4300 musicbot/bot.py:4315 msgid "Playing next!" msgstr "次にプレイ!" -#: musicbot/bot.py:4320 +#: musicbot/bot.py:4323 #, python-format msgid "%(position)s - estimated time until playing: `%(eta)s`" msgstr "%(position)s - 再生までの推定時間: `%(eta)s`" -#: musicbot/bot.py:4328 +#: musicbot/bot.py:4331 #, python-format msgid "%(position)s - cannot estimate time until playing." msgstr "%(position)s - プレイするまでの時間を見積もることはできません。" -#: musicbot/bot.py:4346 +#: musicbot/bot.py:4349 msgid "Add a media URL to the queue as a Stream.\n" "The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" "You can also use non-streamed media to play it without downloading it.\n" "Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" msgstr "" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "ストリーミングプレイリストはまだサポートされていません。" -#: musicbot/bot.py:4419 +#: musicbot/bot.py:4422 #, python-format msgid "Now streaming track `%(track)s`" msgstr "トラックをストリーミング中 `%(track)s`" -#: musicbot/bot.py:4428 +#: musicbot/bot.py:4431 msgid " Search with service for a number of results with the search query.\n" msgstr " 検索クエリで多数の結果をサービスで検索します。\n" -#: musicbot/bot.py:4432 +#: musicbot/bot.py:4435 msgid " Search YouTube for query but get a custom number of results.\n" " Note: the double-quotes are required in this case.\n" msgstr " YouTubeでクエリを検索しますが、カスタムの結果数を取得します。\n" " 注意: この場合はダブルクォートが必要です。\n" -#: musicbot/bot.py:4438 +#: musicbot/bot.py:4441 msgid "Search a supported service and select from results to add to queue.\n" "Service and number arguments can be omitted, default number is 3 results.\n" "Select from these services:\n" @@ -708,463 +708,463 @@ msgid "Search a supported service and select from results to add to queue.\n" "- yh, yahoo\n" msgstr "" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "プレイリストアイテムの上限に達しました (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "検索クエリを指定してください。詳細は `ヘルプ検索` を使用してください。" -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "%(max)s 以上の動画を検索することはできません" -#: musicbot/bot.py:4532 +#: musicbot/bot.py:4535 msgid "Searching for videos..." msgstr "動画を検索しています..." -#: musicbot/bot.py:4554 +#: musicbot/bot.py:4557 #, python-format msgid "Search failed due to an error: %(error)s" msgstr "エラーのため検索に失敗しました: %(error)s" -#: musicbot/bot.py:4566 +#: musicbot/bot.py:4569 msgid "No videos found." msgstr "動画が見つかりません。" -#: musicbot/bot.py:4575 +#: musicbot/bot.py:4578 msgid "To select a song, type the corresponding number." msgstr "曲を選択するには、対応する番号を入力します。" -#: musicbot/bot.py:4576 +#: musicbot/bot.py:4579 #, python-format msgid "Search results from %(service)s:" msgstr "%(service)s からの検索結果 :" -#: musicbot/bot.py:4585 +#: musicbot/bot.py:4588 #, python-format msgid "**%(index)s**. **%(track)s** | %(length)s" msgstr "**%(index)s**. **%(track)s** | %(length)s" -#: musicbot/bot.py:4594 +#: musicbot/bot.py:4597 msgid "\n" "**0**. Cancel" msgstr "\n" "**0** . キャンセル" -#: musicbot/bot.py:4598 +#: musicbot/bot.py:4601 msgid "Pick a song" msgstr "曲を選択" -#: musicbot/bot.py:4649 +#: musicbot/bot.py:4652 #, python-format msgid "Added song [%(track)s](%(url)s) to the queue." msgstr "曲[%(track)s](%(url)s) をキューに追加しました。" -#: musicbot/bot.py:4663 +#: musicbot/bot.py:4666 #, python-format msgid "Result %(number)s of %(total)s: %(url)s" msgstr "結果 %(number)s of %(total)s: %(url)s" -#: musicbot/bot.py:4713 +#: musicbot/bot.py:4716 msgid "Alright, coming right up!" msgstr "よし、すぐに来るぞ!" -#: musicbot/bot.py:4725 +#: musicbot/bot.py:4728 msgid "Show information on what is currently playing." msgstr "現在プレイ中の情報を表示します。" -#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +#: musicbot/bot.py:4780 musicbot/bot.py:6028 musicbot/bot.py:6060 msgid "[autoplaylist]" msgstr "[autoplaylist]" -#: musicbot/bot.py:4781 +#: musicbot/bot.py:4784 msgid "Now playing" msgstr "再生中" -#: musicbot/bot.py:4784 +#: musicbot/bot.py:4787 msgid "Currently streaming:" msgstr "現在ストリーミング中:" -#: musicbot/bot.py:4786 +#: musicbot/bot.py:4789 msgid "Currently playing:" msgstr "現在プレイ中:" -#: musicbot/bot.py:4792 +#: musicbot/bot.py:4795 msgid "Added By:" msgstr "追加者:" -#: musicbot/bot.py:4793 +#: musicbot/bot.py:4796 #, python-format msgid "`%(user)s`" msgstr "`%(user)s`" -#: musicbot/bot.py:4797 +#: musicbot/bot.py:4800 msgid "Progress:" msgstr "進行状況:" -#: musicbot/bot.py:4815 musicbot/bot.py:6004 +#: musicbot/bot.py:4818 musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "曲がキューに追加されていません! playコマンドで何かをキューに追加します。" -#: musicbot/bot.py:4818 +#: musicbot/bot.py:4821 msgid "Tell MusicBot to join the channel you're in." msgstr "あなたのチャンネルに参加するようMusicBotに伝えてください。" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "音声に接続されていません。音声チャンネルに参加してみてください!" -#: musicbot/bot.py:4876 +#: musicbot/bot.py:4879 #, python-format msgid "Connected to `%(channel)s`" msgstr "`%(channel)s に接続しました`" -#: musicbot/bot.py:4882 +#: musicbot/bot.py:4885 msgid "Makes MusicBot follow a user when they change channels in a server.\n" msgstr "MusicBotがサーバー内のチャンネルを変更したときにユーザーに従うようにします。\n" -#: musicbot/bot.py:4905 +#: musicbot/bot.py:4908 #, python-format msgid "No longer following user `%(user)s`" msgstr "もうユーザーをフォローしていません `%(user)s`" -#: musicbot/bot.py:4915 +#: musicbot/bot.py:4918 #, python-format msgid "Now following user `%(user)s` between voice channels." msgstr "ボイスチャンネル間のユーザー`%(user)s`をフォローしました。" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot はサーバーのメンバーではないユーザーをフォローできません。" -#: musicbot/bot.py:4935 +#: musicbot/bot.py:4938 #, python-format msgid "Will follow user `%(user)s` between voice channels." msgstr "ボイスチャンネル間のユーザー`%(user)s`に従います。" -#: musicbot/bot.py:4941 +#: musicbot/bot.py:4944 msgid "Pause playback if a track is currently playing." msgstr "トラックが再生中の場合、再生を一時停止します。" -#: musicbot/bot.py:4952 +#: musicbot/bot.py:4955 #, python-format msgid "Paused music in `%(channel)s`" msgstr "音楽を一時停止しました`%(channel)s`" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "プレイヤーがプレイしていません。" -#: musicbot/bot.py:4958 +#: musicbot/bot.py:4961 msgid "Resumes playback if the player was previously paused." msgstr "プレーヤーが以前に一時停止していた場合、再生を再開します。" -#: musicbot/bot.py:4969 +#: musicbot/bot.py:4972 #, python-format msgid "Resumed music in `%(channel)s`" msgstr "音楽を%(channel)s で再開しました" -#: musicbot/bot.py:4975 +#: musicbot/bot.py:4978 msgid "Resumed music queue" msgstr "再開された音楽キュー" -#: musicbot/bot.py:4977 +#: musicbot/bot.py:4980 msgid "Player is not paused." msgstr "プレイヤーは一時停止されていません。" -#: musicbot/bot.py:4979 +#: musicbot/bot.py:4982 msgid "Shuffle all current tracks in the queue." msgstr "キュー内の現在のトラックをすべてシャッフルします。" -#: musicbot/bot.py:5014 +#: musicbot/bot.py:5017 msgid "Shuffled all songs in the queue." msgstr "キュー内のすべての曲をシャッフルしました。" -#: musicbot/bot.py:5016 +#: musicbot/bot.py:5019 msgid "Removes all songs currently in the queue." msgstr "現在キュー内のすべての曲を削除します。" -#: musicbot/bot.py:5028 +#: musicbot/bot.py:5031 msgid "Cleared all songs from the queue." msgstr "キューからすべての曲を消去しました。" -#: musicbot/bot.py:5033 +#: musicbot/bot.py:5036 msgid "Remove a song from the queue, optionally at the given queue position.\n" "If the position is omitted, the song at the end of the queue is removed.\n" "Use the queue command to find position number of your track.\n" "However, positions of all songs are changed when a new song starts playing.\n" msgstr "" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "削除するキューがありません!" -#: musicbot/bot.py:5068 +#: musicbot/bot.py:5071 #, python-format msgid "Removed `%(track)s` added by `%(user)s`" msgstr "削除された`%(track)s` によって追加された`%(user)s`" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "`%(user)s`からのキューには何も見つかりませんでした。" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "キューからそのエントリを削除する権限がありません。\n" "キューに登録した方、または即座にスキップ権限を持っている必要があります。" -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "無効なエントリ番号です。キューの位置を見つけるには、キューコマンドを使用してください。" -#: musicbot/bot.py:5105 +#: musicbot/bot.py:5108 #, python-format msgid "Removed entry `%(track)s` added by `%(user)s`" msgstr "" -#: musicbot/bot.py:5110 +#: musicbot/bot.py:5113 #, python-format msgid "Removed entry `%(track)s`" msgstr "削除された項目 `%(track)s`" -#: musicbot/bot.py:5121 +#: musicbot/bot.py:5124 msgid "Skip or vote to skip the current playing song.\n" "Members with InstaSkip permission may use force parameter to bypass voting.\n" "If LegacySkip option is enabled, the force parameter can be ignored.\n" msgstr "" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "スキップできません!プレイヤーがプレイしていません!" -#: musicbot/bot.py:5153 +#: musicbot/bot.py:5156 #, python-format msgid "The next song `%(track)s` is downloading, please wait." msgstr "次の曲「%(track)s」がダウンロードされています。お待ちください。" -#: musicbot/bot.py:5161 +#: musicbot/bot.py:5164 msgid "The next song will be played shortly. Please wait." msgstr "次の曲はまもなく再生されます。しばらくお待ちください。" -#: musicbot/bot.py:5166 +#: musicbot/bot.py:5169 msgid "Something odd is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "奇妙なことが起きています。\n" "動作し始めない場合は再起動してください。" -#: musicbot/bot.py:5173 +#: musicbot/bot.py:5176 msgid "Something strange is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "奇妙なことが起きています。\n" "動き始めない場合は再起動してください。" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "ループされた曲をスキップする権限がありません。" -#: musicbot/bot.py:5211 +#: musicbot/bot.py:5214 #, python-format msgid "Force skipped `%(track)s`." msgstr "`%(track)s`を強制スキップしました。" -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "スキップを強制する権限がありません。" -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "ループ曲をスキップする権限がありません。" -#: musicbot/bot.py:5269 +#: musicbot/bot.py:5272 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "The vote to skip has been passed.%(next_up)s" msgstr "`%(track)s`へのスキップが確認されました。\n" "スキップへの投票が完了しました。%(next_up)s" -#: musicbot/bot.py:5276 +#: musicbot/bot.py:5279 msgid " Next song coming up!" msgstr " 次の曲が登場!" -#: musicbot/bot.py:5293 +#: musicbot/bot.py:5296 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "Need **%(votes)s** more vote(s) to skip this song." msgstr "`%(track)s`へのスキップが承認されました。\n" "この曲をスキップするには**%(votes)s**以上の投票が必要です。" -#: musicbot/bot.py:5306 +#: musicbot/bot.py:5309 msgid "Set the output volume level of MusicBot from 1 to 100.\n" "Volume parameter allows a leading + or - for relative adjustments.\n" "The volume setting is retained until MusicBot is restarted.\n" msgstr "" -#: musicbot/bot.py:5323 +#: musicbot/bot.py:5326 #, python-format msgid "Current volume: `%(volume)s%%`" msgstr "現在のボリューム: `%(volume)s%%`" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "'%(new_volume)s' は有効な数字ではありません" -#: musicbot/bot.py:5351 +#: musicbot/bot.py:5354 #, python-format msgid "Updated volume from **%(old)d** to **%(new)d**" msgstr "**%(old)d**から**%(new)d **までの音量を更新しました **" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "不合理なボリューム変更が提供されました: %(old_volume)s%(adjustment)s は %(new_volume)sです。\n" "ボリュームは1から100まで設定できます。" -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "不合理なボリュームが提供されました: %(volume)s. 1から100までの値を入力してください。" -#: musicbot/bot.py:5374 +#: musicbot/bot.py:5377 msgid "Change the playback speed of the currently playing track only.\n" "The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" "Streaming playback does not support speed adjustments.\n" msgstr "" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "トラックが再生されていないため、速度を設定できません。\n" "デフォルトの再生速度を設定するにはconfigコマンドを使用してください。" -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "ストリームメディアには速度を適用できません。" -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "設定する速度を提供する必要があります。" -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "指定した速度が無効です。0.5 から 100までの数字を使用してください。" -#: musicbot/bot.py:5432 +#: musicbot/bot.py:5435 #, python-format msgid "Setting playback speed to `%(speed).3f` for current track." msgstr "現在のトラックの再生速度を「%(speed).3f」に設定しました。" -#: musicbot/bot.py:5441 +#: musicbot/bot.py:5444 msgid " Add an new alias with optional arguments.\n" msgstr " オプション引数を持つ新しいエイリアスを追加します。\n" -#: musicbot/bot.py:5444 +#: musicbot/bot.py:5447 msgid " Remove an alias with the given name." msgstr " 指定された名前のエイリアスを削除します" -#: musicbot/bot.py:5447 +#: musicbot/bot.py:5450 msgid " Reload or save aliases from/to the config file." msgstr " 設定ファイルからエイリアスをリロードまたは保存します。" -#: musicbot/bot.py:5451 +#: musicbot/bot.py:5454 msgid "Allows management of aliases from discord. To see aliases use the help command." msgstr "ディスコードからエイリアスを管理できます。エイリアスを表示するにはヘルプコマンドを使用します。" -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "コマンドの無効なオプション: `%(option)s`" -#: musicbot/bot.py:5477 +#: musicbot/bot.py:5480 msgid "Aliases reloaded from config file." msgstr "エイリアスが設定ファイルからリロードされました。" -#: musicbot/bot.py:5482 +#: musicbot/bot.py:5485 msgid "Aliases saved to config file." msgstr "エイリアスを設定ファイルに保存しました。" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "エラーのためエイリアスを保存できませんでした:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "エイリアスにエイリアスとコマンドを提供する必要があります" -#: musicbot/bot.py:5498 +#: musicbot/bot.py:5501 #, python-format msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" msgstr "新しいエイリアスが追加されました。`%(alias)s`は`%(command)s`のエイリアスになりました。" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "削除するにはエイリアス名を入力してください。" -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "The alias `%(alias)s` does not exist." -#: musicbot/bot.py:5518 +#: musicbot/bot.py:5521 #, python-format msgid "Alias `%(alias)s` was removed." msgstr "エイリアス`%(alias)s`は削除されました。" -#: musicbot/bot.py:5528 +#: musicbot/bot.py:5531 msgid " Shows help text about any missing config options.\n" msgstr " 不足している設定オプションについてヘルプテキストを表示します。\n" -#: musicbot/bot.py:5531 +#: musicbot/bot.py:5534 msgid " Lists the names of options which have been changed since loading config file.\n" msgstr " 設定ファイルの読み込み時に変更されたオプションの名前を一覧表示します。\n" -#: musicbot/bot.py:5534 +#: musicbot/bot.py:5537 msgid " List the available config options and their sections.\n" msgstr " 利用可能な設定オプションとそのセクションを一覧表示します。\n" -#: musicbot/bot.py:5537 +#: musicbot/bot.py:5540 msgid " Reload the options.ini file from disk.\n" msgstr "" -#: musicbot/bot.py:5540 +#: musicbot/bot.py:5543 msgid " Shows help text for a specific option.\n" msgstr " 特定のオプションのヘルプテキストを表示します。\n" -#: musicbot/bot.py:5543 +#: musicbot/bot.py:5546 msgid " Display the current value of the option.\n" msgstr " オプションの現在の値を表示します。\n" -#: musicbot/bot.py:5546 +#: musicbot/bot.py:5549 msgid " Saves the current value to the options file.\n" msgstr " 現在の値をオプションファイルに保存します。\n" -#: musicbot/bot.py:5549 +#: musicbot/bot.py:5552 msgid " Validates the option and sets the config for the session, but not to file.\n" msgstr " オプションを検証し、セッションの設定をファイルではなく設定します。\n" -#: musicbot/bot.py:5552 +#: musicbot/bot.py:5555 msgid " Reset the option to its default value.\n" msgstr " オプションをデフォルト値にリセットします。\n" -#: musicbot/bot.py:5555 +#: musicbot/bot.py:5558 msgid "Manage options.ini configuration from within Discord." msgstr "Discord内で options.ini の設定を管理します。" -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "設定では、チャンネルとユーザーのメンションを同時に使用できません。" -#: musicbot/bot.py:5596 +#: musicbot/bot.py:5599 #, python-format msgid "**Missing Option:** `%(config)s`\n" "```\n" @@ -1175,22 +1175,22 @@ msgstr "**Missing Option:** `%(config)s`\n" "%(comment)s\n" "Default is set to %(default)s```\n" -#: musicbot/bot.py:5609 +#: musicbot/bot.py:5612 msgid "*All config options are present and accounted for!*" msgstr "*すべての設定オプションが存在し、考慮されています!*" -#: musicbot/bot.py:5625 +#: musicbot/bot.py:5628 msgid "No config options appear to be changed." msgstr "設定オプションは変更されていません。" -#: musicbot/bot.py:5627 +#: musicbot/bot.py:5630 #, python-format msgid "**Changed Options:**\n" "%(changed)s" msgstr "**変更されたオプション:**\n" "%(changed)s" -#: musicbot/bot.py:5647 +#: musicbot/bot.py:5650 #, python-format msgid "## Available Options:\n" "**Editable Options:**\n" @@ -1203,51 +1203,51 @@ msgstr "## 利用可能なオプション:\n" "**Manual Edit Only:**\n" "%(manual)s" -#: musicbot/bot.py:5669 +#: musicbot/bot.py:5672 msgid "Config options reloaded from file successfully!" msgstr "設定オプションが正常にファイルから再読み込みされました!" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "次のエラーのため設定を再読み込みできません:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "オプション名からセクション名を解決できませんでした。有効なセクション名とオプション名を入力してください。" -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "与えられたオプションは曖昧です。セクション名を入力してください。" -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "このコマンドのセクション名とオプション名を指定する必要があります。" -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "The section `%(section)s` is not available.\n" "The available section: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "オプション `%(option)s` は使用できません。" -#: musicbot/bot.py:5733 +#: musicbot/bot.py:5736 msgid "This option can only be set by editing the config file." msgstr "このオプションは設定ファイルを編集することでのみ設定できます。" -#: musicbot/bot.py:5737 +#: musicbot/bot.py:5740 #, python-format msgid "By default this option is set to: %(default)s" msgstr "デフォルトでは、このオプションは %(default)s に設定されています" -#: musicbot/bot.py:5742 +#: musicbot/bot.py:5745 #, python-format msgid "**Option:** `%(config)s`\n" "%(comment)s\n\n" @@ -1256,107 +1256,107 @@ msgstr "**Option:** `%(config)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "オプション `%(option)s` は編集できません。ディスクに保存できません。" -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "オプションの保存に失敗しました: `%(option)s`" -#: musicbot/bot.py:5767 +#: musicbot/bot.py:5770 #, python-format msgid "Successfully saved the option: `%(config)s`" msgstr "正常にオプションを保存しました: `%(config)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "Option `%(option)s` は編集できません。値を表示できません。" -#: musicbot/bot.py:5784 +#: musicbot/bot.py:5787 #, python-format msgid "**Option:** `%(config)s`\n" "Current Value: `%(loaded)s`\n" "INI File Value: `%(ini)s`" msgstr "" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "オプション `%(option)s` は編集できません。設定を更新できません。" -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "このサブコマンドのセクション、オプション、値を指定する必要があります。" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "Option `%(option)s` は更新されませんでした!" -#: musicbot/bot.py:5822 +#: musicbot/bot.py:5825 #, python-format msgid "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "オプション `%(option)s` は編集できません。デフォルトにリセットできません。" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "Option `%(option)s` はデフォルトにリセットされませんでした!" -#: musicbot/bot.py:5857 +#: musicbot/bot.py:5860 #, python-format msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "オプション `%(config)s` はデフォルト値の `%(default)s` にリセットされました。\n" "変更を保存するには、 `config save %(section)s %(option)s ` を使用してください" -#: musicbot/bot.py:5872 +#: musicbot/bot.py:5875 msgid "Deprecated command, use the config command instead." msgstr "非推奨のコマンドは、configコマンドを使用してください。" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "option コマンドは推奨されません。config コマンドを使用してください。" -#: musicbot/bot.py:5892 +#: musicbot/bot.py:5895 msgid "Display information about cache storage or clear cache according to configured limits.\n" "Using update option will scan the cache for external changes before displaying details." msgstr "設定された制限に従ってキャッシュストレージまたはキャッシュクリアに関する情報を表示します。\n" "updateオプションを使用すると、詳細を表示する前に外部の変更のキャッシュをスキャンします。" -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "無効なオプションが指定されました。情報、更新、またはクリアを使用してください。" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Disabled" msgstr "無効" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Enabled" msgstr "有効" -#: musicbot/bot.py:5919 +#: musicbot/bot.py:5922 #, python-format msgid "%(time)s days" msgstr "%(time)s 日" -#: musicbot/bot.py:5925 musicbot/bot.py:5928 +#: musicbot/bot.py:5928 musicbot/bot.py:5931 msgid "Unlimited" msgstr "無制限です" -#: musicbot/bot.py:5933 +#: musicbot/bot.py:5936 #, python-format msgid "**Video Cache:** *%(state)s*\n" "**Storage Limit:** *%(size)s*\n" @@ -1367,40 +1367,40 @@ msgstr "**ビデオキャッシュ:** *%(state)s*\n" "**タイム制限:** *%(time)s*\n\n" "**キャッシュされた: %(used)s in %(files)s file(s)." -#: musicbot/bot.py:5956 +#: musicbot/bot.py:5959 msgid "Cache has been cleared." msgstr "キャッシュがクリアされました。" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**キャッシュの削除に失敗しました。ログの詳細を確認してください。" -#: musicbot/bot.py:5965 +#: musicbot/bot.py:5968 msgid "No cache found to clear." msgstr "クリアするキャッシュが見つかりません。" -#: musicbot/bot.py:5973 +#: musicbot/bot.py:5976 msgid "Display information about the current player queue.\n" "Optional page number shows later entries in the queue.\n" msgstr "現在のプレイヤーキューについての情報を表示します。\n" "オプションのページ番号は、キューの後のエントリを表示します。\n" -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "キューページ引数は整数でなければなりません。" -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "要求されたページ番号が範囲外です。\n" "**%(total)s** ページがあります。" -#: musicbot/bot.py:6025 +#: musicbot/bot.py:6026 msgid "(unknown duration)" msgstr "(不明な期間)" -#: musicbot/bot.py:6034 +#: musicbot/bot.py:6035 #, python-format msgid "Currently playing: `%(title)s`\n" "Added by: `%(user)s`\n" @@ -1409,14 +1409,14 @@ msgstr "現在プレイ中: `%(title)s`\n" "追加: `%(user)s`\n" "進捗: `[%(progress)s/%(total)s]`\n" -#: musicbot/bot.py:6064 +#: musicbot/bot.py:6065 #, python-format msgid "**Entry #%(index)s:**Title: `%(title)s`\n" "Added by: `%(user)s\n\n" msgstr "**エントリ #%(index)s:**タイトル: `%(title)s`\n" "によって追加されました: `%(user)s\n\n" -#: musicbot/bot.py:6072 +#: musicbot/bot.py:6073 #, python-format msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" "Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" @@ -1425,106 +1425,106 @@ msgstr "%(progress)s%(total)s`エントリーがキューにあります。\n" "次回の %(per_page)s 曲は、曲 #%(start)s\n\n" "%(tracks)s から始まります。" -#: musicbot/bot.py:6085 +#: musicbot/bot.py:6086 msgid "Songs in queue" msgstr "キュー内の曲" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "もう一度お試しください。MusicBotはキューメッセージへの参照を作成できませんでした。\n" "問題が解決しない場合は、バグレポートを送信してください。" -#: musicbot/bot.py:6156 +#: musicbot/bot.py:6157 msgid "Search for and remove bot messages and commands from the calling text channel.\n" "Optionally supply a number of messages to search through, 50 by default 500 max.\n" "This command may be slow if larger ranges are given.\n" msgstr "" -#: musicbot/bot.py:6180 +#: musicbot/bot.py:6181 msgid "Invalid parameter. Please provide a number of messages to search." msgstr "無効なパラメータです。検索するために、多数のメッセージを入力してください。" -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "プライベート DM チャンネルでパージを使用できません。" -#: musicbot/bot.py:6222 +#: musicbot/bot.py:6223 #, python-format msgid "Cleaned up %(number)s message(s)." msgstr "%(number)s メッセージをクリーンアップしました。" -#: musicbot/bot.py:6226 +#: musicbot/bot.py:6227 msgid "Bot does not have permission to manage messages." msgstr "Botにメッセージを管理する権限がありません。" -#: musicbot/bot.py:6231 +#: musicbot/bot.py:6232 msgid "Dump the individual URLs of a playlist to a file." msgstr "プレイリストの個々の URL をファイルにダンプします。" -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "指定されたURLは有効なURLではありませんでした。" -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "これはプレイリストではないようです。" -#: musicbot/bot.py:6282 +#: musicbot/bot.py:6283 #, python-format msgid "Here is the playlist dump for: %(url)s" msgstr "次のプレイリストダンプがあります: %(url)s" -#: musicbot/bot.py:6292 +#: musicbot/bot.py:6293 msgid "Display your Discord User ID, or the ID of a mentioned user.\n" "This command is deprecated in favor of Developer Mode in Discord clients.\n" msgstr "DiscordユーザーID、またはメンションユーザーのIDを表示します。\n" "このコマンドはDiscordクライアントの開発者モードを支持して非推奨です。\n" -#: musicbot/bot.py:6307 +#: musicbot/bot.py:6308 #, python-format msgid "Your user ID is `%(id)s`" msgstr "あなたのユーザーIDは `%(id)s`" -#: musicbot/bot.py:6312 +#: musicbot/bot.py:6313 #, python-format msgid "The user ID for `%(username)s` is `%(id)s`" msgstr "`%(username)s`のユーザーIDは`%(id)s`です" -#: musicbot/bot.py:6319 +#: musicbot/bot.py:6320 msgid "List the Discord IDs for the selected category.\n" "Returns all ID data by default, but one or more categories may be selected.\n" "This command is deprecated in favor of using Developer mode in Discord clients.\n" msgstr "" -#: musicbot/bot.py:6341 +#: musicbot/bot.py:6342 #, python-format msgid "Valid categories: %(cats)s" msgstr "有効なカテゴリ: %(cats)s" -#: musicbot/bot.py:6388 +#: musicbot/bot.py:6389 msgid "Here are the IDs you requested:" msgstr "要求されたIDは次のとおりです:" -#: musicbot/bot.py:6395 +#: musicbot/bot.py:6396 msgid "Get a list of your permissions, or the permissions of the mentioned user." msgstr "アクセス権の一覧、またはメンションされたユーザーの権限を取得します。" -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "無効なユーザーIDまたはサーバーニックネームです。IDを再確認してもう一度やり直してください。" -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "discordユーザーを特定できませんでした。もう一度お試しください。" -#: musicbot/bot.py:6439 +#: musicbot/bot.py:6440 #, python-format msgid "Your command permissions in %(server)s are:\n" "```\n" @@ -1535,7 +1535,7 @@ msgstr "%(server)s のコマンドパーミッションは以下の通りです: "%(permissions)s\n" "```" -#: musicbot/bot.py:6448 +#: musicbot/bot.py:6449 #, python-format msgid "The command permissions for %(username)s in %(server)s are:\n" "```\n" @@ -1546,58 +1546,58 @@ msgstr "%(username)s の %(server)s のコマンドパーミッションは:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6464 +#: musicbot/bot.py:6465 msgid " Show loaded groups and list permission options.\n" msgstr " ロードされたグループと権限オプションを表示します。\n" -#: musicbot/bot.py:6467 +#: musicbot/bot.py:6468 msgid " Reloads permissions from the permissions.ini file.\n" msgstr " パーミッション.ini ファイルからパーミッションを再読み込みします。\n" -#: musicbot/bot.py:6470 +#: musicbot/bot.py:6471 msgid " Add new group with defaults.\n" msgstr " 新しいグループをデフォルトで追加します。\n" -#: musicbot/bot.py:6473 +#: musicbot/bot.py:6474 msgid " Remove existing group.\n" msgstr " 既存のグループを削除します。\n" -#: musicbot/bot.py:6476 +#: musicbot/bot.py:6477 msgid " Show help text for the permission option.\n" msgstr " 権限オプションのヘルプテキストを表示します。\n" -#: musicbot/bot.py:6479 +#: musicbot/bot.py:6480 msgid " Show permission value for given group and permission.\n" msgstr " 指定されたグループと権限の権限値を表示します。\n" -#: musicbot/bot.py:6482 +#: musicbot/bot.py:6483 msgid " Save permissions group to file.\n" msgstr " 権限グループをファイルに保存します。\n" -#: musicbot/bot.py:6485 +#: musicbot/bot.py:6486 msgid " Set permission value for the group.\n" msgstr " グループの権限値を設定します。\n" -#: musicbot/bot.py:6488 +#: musicbot/bot.py:6489 msgid "Manage permissions.ini configuration from within discord." msgstr "discord内からpermissions.iniの設定を管理します。" -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "権限は同時にチャンネルとユーザーメンションを使用することはできません。" -#: musicbot/bot.py:6534 +#: musicbot/bot.py:6535 msgid "Permissions reloaded from file successfully!" msgstr "権限がファイルから正常に再読み込みされました!" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "エラーが発生したため権限を再読み込みできません:\n" "%(raw_error)s" -#: musicbot/bot.py:6558 +#: musicbot/bot.py:6559 #, python-format msgid "## Available Groups:\n" "%(groups)s\n" @@ -1608,41 +1608,41 @@ msgstr "## 利用可能なグループ:\n" "## 利用可能なオプション:\n" "%(options)s\n" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "このコマンドのグループまたはオプション名を指定する必要があります。" -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "このコマンドに設定するには、グループ、オプション、値を指定する必要があります。" -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "%(option)s サブコマンドにはグループ名と権限名が必要です。" -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "The group `%(group)s` is not available.\n" "The available groups is : %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "パーミッション`%(option)s`は利用できません。" -#: musicbot/bot.py:6624 +#: musicbot/bot.py:6625 msgid "This permission can only be set by editing the permissions file." msgstr "この権限は権限ファイルを編集することでのみ設定できます。" -#: musicbot/bot.py:6633 +#: musicbot/bot.py:6634 #, python-format msgid "By default this permission is set to: `%(value)s`" msgstr "デフォルトでは、この権限は次に設定されています: `%(value)s`" -#: musicbot/bot.py:6638 +#: musicbot/bot.py:6639 #, python-format msgid "**Permission:** `%(option)s`\n" "%(comment)s\n\n" @@ -1651,311 +1651,361 @@ msgstr "**権限:** `%(option)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "グループを追加できません`%(group)s` が既に存在します。" -#: musicbot/bot.py:6660 +#: musicbot/bot.py:6661 #, python-format msgid "Successfully added new group: `%(group)s`\n" "You can now customize the permissions with: `setperms set %(group)s`\n" "Make sure to save the new group with: `setperms save %(group)s`" msgstr "" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "組み込みグループを削除できません。" -#: musicbot/bot.py:6677 +#: musicbot/bot.py:6678 #, python-format msgid "Successfully removed group: `%(group)s`\n" "Make sure to save this change with: `setperms save %(group)s`" msgstr "" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "オーナーグループは編集できません。" -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "グループの保存に失敗しました: `%(group)s`" -#: musicbot/bot.py:6700 +#: musicbot/bot.py:6701 #, python-format msgid "Successfully saved the group: `%(group)s`" msgstr "グループを正常に保存しました: `%(group)s`" -#: musicbot/bot.py:6711 +#: musicbot/bot.py:6712 #, python-format msgid "**Permission:** `%(permission)s`\n" "Current Value: `%(loaded)s`\n" "INI File Value: `%(ini)s`" msgstr "" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "パーミッション`%(option)s`は更新されませんでした!" -#: musicbot/bot.py:6748 +#: musicbot/bot.py:6749 #, python-format msgid "Permission `%(permission)s` was updated for this session.\n" "To save the change use `setperms save %(section)s %(option)s`" msgstr "パーミッション`%(permission)s` が更新されました。\n" "変更を保存するには、 `setperms save %(section)s %(option)s ` を使います。" -#: musicbot/bot.py:6765 +#: musicbot/bot.py:6766 msgid "Change the bot's username on discord.\n" "Note: The API may limit name changes to twice per hour." msgstr "discord上のボットのユーザー名を変更します。\n" "注意: APIは名前の変更を1時間に2回まで制限する場合があります。" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "ユーザー名の変更に失敗しました。名前の変更回数が多すぎましたか?\n" "名前の変更は1時間に2回に制限されています。\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "エラーのためユーザー名を変更できませんでした: \n" "%(raw_error)s" -#: musicbot/bot.py:6795 +#: musicbot/bot.py:6796 #, python-format msgid "Set the bot's username to `%(name)s`" msgstr "ボットのユーザー名を `%(name)s` に設定します。" -#: musicbot/bot.py:6798 +#: musicbot/bot.py:6799 msgid "Change the MusicBot's nickname." msgstr "MusicBotのニックネームを変更します。" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "ニックネームを変更できません: 権限がありません。" -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "エラーのためニックネームを設定できませんでした: \n" "%(raw_error)s" -#: musicbot/bot.py:6825 +#: musicbot/bot.py:6826 #, python-format msgid "Set the bot's nickname to `%(nick)s`" msgstr "ボットのニックネームを `%(nick)s` に設定しました" -#: musicbot/bot.py:6832 +#: musicbot/bot.py:6833 msgid " Set a per-server command prefix." msgstr " サーバー毎のコマンドプレフィックスを設定します。" -#: musicbot/bot.py:6834 +#: musicbot/bot.py:6835 msgid " Clear the per-server command prefix." msgstr " サーバー毎のコマンドプレフィックスをクリアします。" -#: musicbot/bot.py:6838 +#: musicbot/bot.py:6839 msgid "Override the default command prefix in the server.\n" "The option EnablePrefixPerGuild must be enabled first." msgstr "サーバーのデフォルトのコマンドプレフィックスを上書きします。\n" "オプションEnablePrefixPerGuildが最初に有効になっている必要があります。" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "プレフィックスとして使用するには、このサーバーからカスタム絵文字を使用する必要があります。" -#: musicbot/bot.py:6866 +#: musicbot/bot.py:6867 msgid "Server command prefix is cleared." msgstr "サーバーのコマンドプレフィックスがクリアされました。" -#: musicbot/bot.py:6871 +#: musicbot/bot.py:6872 #, python-format msgid "Server command prefix is now: %(prefix)s" msgstr "サーバーのコマンドプレフィックスは現在: %(prefix)s" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "サーバーごとのプレフィックスが有効になっていません!\n" "configコマンドを使用して、代わりにプレフィックスを更新してください。" -#: musicbot/bot.py:6885 +#: musicbot/bot.py:6886 +msgid " Show language codes available to use.\n" +msgstr " 使用可能な言語コードを表示します。\n" + +#: musicbot/bot.py:6889 +msgid " Set the desired language for this server.\n" +msgstr " このサーバーの言語を設定してください。\n" + +#: musicbot/bot.py:6892 +msgid " Reset the server language to bot's default language.\n" +msgstr " サーバーの言語をボットのデフォルト言語にリセットします。\n" + +#: musicbot/bot.py:6895 +msgid "Manage the language used for messages in the calling server." +msgstr "通話サーバーのメッセージに使用される言語を管理します。" + +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "このコマンドはギルドでのみ使用できます。" + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "指定された無効なサブコマンドです。詳細についてはヘルプコマンドを使用してください。" + +#: musicbot/bot.py:6924 +#, python-format +msgid "**Current Language:** `%(locale)s`\n" +"**Available Languages:**\n" +"```\n" +"%(languages)s```" +msgstr "**現在の言語:** `%(locale)s`\n" +"**利用可能な言語:**\n" +"```\n" +"%(languages)s```" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "言語を`%(locale)s`に設定できません。利用できません。" + +#: musicbot/bot.py:6939 +#, python-format +msgid "Language for this server now set to: `%(locale)s`" +msgstr "このサーバーの言語は次のように設定されました: `%(locale)s`" + +#: musicbot/bot.py:6947 +#, python-format +msgid "Language for this server has been reset to: `%(locale)s`" +msgstr "このサーバーの言語がリセットされました: `%(locale)s`" + +#: musicbot/bot.py:6959 msgid "Change MusicBot's avatar.\n" "Attaching a file and omitting the url parameter also works.\n" msgstr "MusicBotのアバターを変更します。\n" "ファイルを添付してURLパラメータを省略することもできます。\n" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "URLを入力するか、ファイルを添付する必要があります。" -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "エラーのためアバターを変更できません: \n" "%(raw_error)s" -#: musicbot/bot.py:6919 +#: musicbot/bot.py:6993 msgid "Changed the bot's avatar." msgstr "ボットのアバターを変更しました。" -#: musicbot/bot.py:6922 +#: musicbot/bot.py:6996 msgid "Force MusicBot to disconnect from the discord server." msgstr "MusicBotを強制的にDiscordサーバーから切断します。" -#: musicbot/bot.py:6933 +#: musicbot/bot.py:7007 #, python-format msgid "Disconnected from server `%(guild)s`" msgstr "サーバーから切断されました`%(guild)s`" -#: musicbot/bot.py:6948 +#: musicbot/bot.py:7022 msgid "Disconnected a playerless voice client? [BUG]" msgstr "" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "現在サーバーに接続されていません `%(guild)s`" -#: musicbot/bot.py:6960 +#: musicbot/bot.py:7034 msgid " Attempt to reload without process restart. The default option.\n" msgstr " プロセスを再起動せずに再読み込みしようとします。デフォルトのオプションです。\n" -#: musicbot/bot.py:6962 +#: musicbot/bot.py:7036 msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" msgstr "" -#: musicbot/bot.py:6964 +#: musicbot/bot.py:7038 msgid " Full restart, but attempt to update pip packages before restart.\n" msgstr " 完全な再起動ですが、再起動前に pip パッケージを更新しようとします。\n" -#: musicbot/bot.py:6966 +#: musicbot/bot.py:7040 msgid " Full restart, but update MusicBot source code with git first.\n" msgstr " 完全に再起動しますが、最初にGitでMusicBotのソースコードをアップデートしてください。\n" -#: musicbot/bot.py:6968 +#: musicbot/bot.py:7042 msgid " Attempt to update all dependency and source code before fully restarting.\n" msgstr " 完全に再起動する前に、すべての依存関係とソースコードを更新しようとしています。\n" -#: musicbot/bot.py:6972 +#: musicbot/bot.py:7046 msgid "Attempts to restart the MusicBot in a number of different ways.\n" "With no option supplied, a `soft` restart is implied.\n" "It can be used to remotely update a MusicBot installation, but should be used with care.\n" "If you have a service manager, we recommend using it instead of this command for restarts.\n" msgstr "" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "無効なオプションが与えられました。ソフト、フル、アップグレード、uppip、またはupgitのいずれかを使用してください" -#: musicbot/bot.py:6999 +#: musicbot/bot.py:7073 #, python-format msgid "%(emoji)s Restarting current instance..." msgstr "%(emoji)s 現在のインスタンスを再起動中..." -#: musicbot/bot.py:7004 +#: musicbot/bot.py:7078 #, python-format msgid "%(emoji)s Restarting bot process..." msgstr "%(emoji)s ボットを再起動中..." -#: musicbot/bot.py:7009 +#: musicbot/bot.py:7083 #, python-format msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." msgstr "%(emoji)s 必要な pip パッケージのアップグレードを試み、ボットを再起動します..." -#: musicbot/bot.py:7014 +#: musicbot/bot.py:7088 #, python-format msgid "%(emoji)s Will try to update bot code with git and restart the bot..." msgstr "%(emoji)s git でボットコードを更新しようとし、ボットを再起動します..." -#: musicbot/bot.py:7019 +#: musicbot/bot.py:7093 #, python-format msgid "%(emoji)s Will try to upgrade everything and restart the bot..." msgstr "%(emoji)s はすべてをアップグレードしてボットを再起動します..." -#: musicbot/bot.py:7053 +#: musicbot/bot.py:7127 msgid "Disconnect from all voice channels and close the MusicBot process." msgstr "すべてのボイスチャンネルから切断し、MusicBotプロセスを閉じます。" -#: musicbot/bot.py:7079 +#: musicbot/bot.py:7153 msgid " Leave the discord server given by name or server ID." msgstr " Discordサーバー名またはサーバーIDを指定したままにしてください。" -#: musicbot/bot.py:7083 +#: musicbot/bot.py:7157 msgid "Force MusicBot to leave the given Discord server.\n" "Names are case-sensitive, so using an ID number is more reliable.\n" msgstr "MusicBotに指定したDiscordサーバーから強制的に退出させます。\n" "名前は大文字と小文字を区別しますので、ID番号を使用する方が信頼性が高くなります。\n" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "IDまたは名前を入力してください。" -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "IDまたは名前のギルドが見つかりませんでした。`%(input)s`" -#: musicbot/bot.py:7121 +#: musicbot/bot.py:7195 msgid "Unknown" msgstr "不明" -#: musicbot/bot.py:7128 +#: musicbot/bot.py:7202 #, python-format msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" msgstr "ギルドを退出: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" -#: musicbot/bot.py:7138 +#: musicbot/bot.py:7212 msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." msgstr "テストに使用されるコマンド。テストスイートで確認できるコマンドの一覧を表示します。" -#: musicbot/bot.py:7162 +#: musicbot/bot.py:7236 msgid "This command issues a log at level CRITICAL, but does nothing else.\n" "Can be used to manually pinpoint events in the MusicBot log file.\n" msgstr "このコマンドはレベルCRITICALでログを発行しますが、それ以外は何もしません。\n" "MusicBotログファイルのイベントを手動で特定するために使用できます。\n" -#: musicbot/bot.py:7173 +#: musicbot/bot.py:7247 #, python-format msgid "Logged breakpoint with ID: %(uuid)s" msgstr "IDでログインしたブレークポイント: %(uuid)s" -#: musicbot/bot.py:7180 +#: musicbot/bot.py:7254 msgid " View most common types reported by objgraph.\n" msgstr " Objgraphによって報告された最も一般的なタイプを表示します。\n" -#: musicbot/bot.py:7183 +#: musicbot/bot.py:7257 msgid " View limited objgraph.show_growth() output.\n" msgstr " 制限付きobjgraph.show_growth() 出力を表示します。\n" -#: musicbot/bot.py:7186 +#: musicbot/bot.py:7260 msgid " View most common types of leaking objects.\n" msgstr " 漏洩オブジェクトの最も一般的なタイプを表示します。\n" -#: musicbot/bot.py:7189 +#: musicbot/bot.py:7263 msgid " View typestats of leaking objects.\n" msgstr " 漏れたオブジェクトの型番を表示します。\n" -#: musicbot/bot.py:7192 +#: musicbot/bot.py:7266 msgid " Evaluate the given function and arguments on objgraph.\n" msgstr " objgraphで与えられた関数と引数を評価します。\n" -#: musicbot/bot.py:7196 +#: musicbot/bot.py:7270 msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" "You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" "Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" msgstr "" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "`objgraph` をインポートできませんでした。インストールされていますか?" -#: musicbot/bot.py:7249 +#: musicbot/bot.py:7323 msgid "This command will execute arbitrary python code in the command scope.\n" "First eval() is attempted, if exceptions are thrown exec() is tried next.\n" "If eval is successful, it's return value is displayed.\n" @@ -1966,7 +2016,7 @@ msgid "This command will execute arbitrary python code in the command scope.\n" "The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" msgstr "" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1979,65 +2029,65 @@ msgstr "デバッグコードの実行に失敗しました:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7320 +#: musicbot/bot.py:7394 msgid "Create 'markdown' for options, permissions, or commands from the code.\n" "The output is used to update GitHub Pages and is thus unsuitable for normal reference use." msgstr "コードからオプション、権限、またはコマンドの 'markdown' を作成します。\n" "出力は GitHub Pages の更新に使用されるため、通常の参照使用には適していません。" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "サブコマンドは次のいずれかでなければなりません: %(options)s" -#: musicbot/bot.py:7387 +#: musicbot/bot.py:7461 msgid "Makes default INI files." msgstr "デフォルトのINIファイルを作成します。" -#: musicbot/bot.py:7410 +#: musicbot/bot.py:7486 msgid "Saved the requested INI file to disk. Go check it" msgstr "要求されたINIファイルをディスクに保存しました。確認してください" -#: musicbot/bot.py:7415 +#: musicbot/bot.py:7491 msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" msgstr "現在のボットバージョンを表示し、MusicBotまたは依存関係の更新を確認します。\n" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "git 実行可能ファイルが見つかりませんでした。" -#: musicbot/bot.py:7473 +#: musicbot/bot.py:7549 #, python-format msgid "No updates in branch `%(branch)s` remote." msgstr "ブランチにアップデートはありません。`%(branch)s`リモコン。" -#: musicbot/bot.py:7478 +#: musicbot/bot.py:7554 #, python-format msgid "New commits are available in `%(branch)s` branch remote." msgstr "新しいコミットは、`%(branch)s`ブランチリモコンで利用できます。" -#: musicbot/bot.py:7484 musicbot/bot.py:7527 +#: musicbot/bot.py:7560 musicbot/bot.py:7603 msgid "Error while checking, see logs for details." msgstr "チェック中にエラーが発生しました。詳細はログを参照してください。" -#: musicbot/bot.py:7518 +#: musicbot/bot.py:7594 #, python-format msgid "Update for `%(name)s` to version: `%(version)s`\n" msgstr "Update for `%(name)s` to version: `%(version)s`\n" -#: musicbot/bot.py:7524 +#: musicbot/bot.py:7600 msgid "No updates for dependencies found." msgstr "依存関係の更新は見つかりません。" -#: musicbot/bot.py:7530 +#: musicbot/bot.py:7606 msgid "There are updates for MusicBot available for download." msgstr "MusicBotのアップデートがダウンロードできます。" -#: musicbot/bot.py:7532 +#: musicbot/bot.py:7608 msgid "MusicBot is totally up-to-date!" msgstr "MusicBotは完全に最新です!" -#: musicbot/bot.py:7536 +#: musicbot/bot.py:7612 #, python-format msgid "%(status)s\n\n" "**Source Code Updates:**\n" @@ -2050,29 +2100,29 @@ msgstr "%(status)s\n\n" "**依存性の更新:**\n" "%(pip_status)s" -#: musicbot/bot.py:7550 +#: musicbot/bot.py:7626 msgid "Displays the MusicBot uptime, or time since last start / restart." msgstr "MusicBotの起動時間、または前回の起動/再起動からの時間を表示します。" -#: musicbot/bot.py:7565 +#: musicbot/bot.py:7641 #, python-format msgid "%(name)s has been online for `%(time)s`" msgstr "%(name)s は `%(time)s` のオンラインになりました" -#: musicbot/bot.py:7572 +#: musicbot/bot.py:7648 msgid "Display latency information for Discord API and all connected voice clients." msgstr "Discord APIと接続しているすべてのボイスクライアントのレイテンシー情報を表示します。" -#: musicbot/bot.py:7594 +#: musicbot/bot.py:7670 #, python-format msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" -#: musicbot/bot.py:7599 +#: musicbot/bot.py:7675 msgid "No voice clients connected.\n" msgstr "音声クライアントが接続されていません。\n" -#: musicbot/bot.py:7604 +#: musicbot/bot.py:7680 #, python-format msgid "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" @@ -2081,47 +2131,47 @@ msgstr "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" "%(voices)s" -#: musicbot/bot.py:7612 +#: musicbot/bot.py:7688 msgid "Display API latency and Voice latency if MusicBot is connected." msgstr "MusicBotが接続されている場合は、APIレイテンシーと音声レイテンシーを表示します。" #. TRANSLATORS: short for automatic, displayed when voice region is not selected. -#: musicbot/bot.py:7628 +#: musicbot/bot.py:7704 msgid "auto" msgstr "自動" -#: musicbot/bot.py:7630 +#: musicbot/bot.py:7706 #, python-format msgid "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" msgstr "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" -#: musicbot/bot.py:7635 +#: musicbot/bot.py:7711 #, python-format msgid "**API Latency:** `%(delay).0f ms`%(voice)s" msgstr "**API Latency:** `%(delay).0f ms`%(voice)s" -#: musicbot/bot.py:7640 +#: musicbot/bot.py:7716 msgid "Display MusicBot version number in the chat." msgstr "チャットで MusicBot のバージョン番号を表示します。" -#: musicbot/bot.py:7648 +#: musicbot/bot.py:7724 #, python-format msgid "https://github.com/Just-Some-Bots/MusicBot\n" "Current version: `%(version)s`" msgstr "https://github.com/Just-Some-Bots/MusicBot\n" "現在のバージョン: `%(version)s`" -#: musicbot/bot.py:7660 +#: musicbot/bot.py:7736 msgid " Update the cookies.txt file using a cookies.txt attachment." msgstr " cookies.txt 添付ファイルを使用して、cookies.txt ファイルを更新します。" -#: musicbot/bot.py:7663 +#: musicbot/bot.py:7739 msgid " Enable or disable cookies.txt file without deleting it." msgstr " cookies.txt ファイルを削除せずに有効または無効にします。" -#: musicbot/bot.py:7667 +#: musicbot/bot.py:7743 msgid "Allows management of the cookies feature in yt-dlp.\n" "When updating cookies, you must upload a file named cookies.txt\n" "If cookies are disabled, uploading will enable the feature.\n" @@ -2133,90 +2183,90 @@ msgid "Allows management of the cookies feature in yt-dlp.\n" " feature if you do not understand how to avoid the risks." msgstr "" -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "クッキーは既に有効になっています。" -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "クッキーを有効にするには、アップロードする必要があります。" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "エラーのためクッキーを有効にできませんでした: %(raw_error)s" -#: musicbot/bot.py:7711 +#: musicbot/bot.py:7787 msgid "Cookies have been enabled." msgstr "クッキーが有効になりました。" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "エラーのためクッキーファイルの名前を変更できませんでした: %(raw_error)s\n" "クッキーは一時的に無効化され、次回の再起動時に再度有効になります。" -#: musicbot/bot.py:7726 +#: musicbot/bot.py:7802 msgid "Cookies have been disabled." msgstr "Cookieは無効になっています。" -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "添付されたアップロードが見つかりませんでした。Cookie ファイルのアップロード中に再試行してください。" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "discordからCookieファイルをダウンロード中にエラーが発生しました: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "ディスクにクッキーを保存できませんでした: %(raw_error)s" -#: musicbot/bot.py:7762 +#: musicbot/bot.py:7838 msgid "Cookies uploaded and enabled." msgstr "Cookieがアップロードされ有効になりました。" -#: musicbot/bot.py:7872 +#: musicbot/bot.py:7948 msgid "You cannot use this bot in private messages." msgstr "このボットはプライベートメッセージでは使用できません。" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "このコマンドは権限グループには許可されていません: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "このコマンドを使用するには、ボイスチャンネルに参加する必要があります。" -#: musicbot/bot.py:8075 +#: musicbot/bot.py:8151 #, python-format msgid "**Command:** %(name)s" msgstr "**コマンド:** %(name)s" -#: musicbot/bot.py:8134 +#: musicbot/bot.py:8210 msgid "Exception Error" msgstr "例外エラー" -#: musicbot/bot.py:8179 +#: musicbot/bot.py:8255 #, python-format msgid "**Example with prefix:**\n" "%(prefix)s`%(command)s ...`\n" msgstr "**接頭辞付き例:**\n" "%(prefix)s`%(command)s ...`\n" -#: musicbot/bot.py:8183 +#: musicbot/bot.py:8259 msgid "No description given.\n" msgstr "説明がありません。\n" -#: musicbot/bot.py:8186 +#: musicbot/bot.py:8262 msgid "No usage given." msgstr "使用されていません。" -#: musicbot/bot.py:8220 +#: musicbot/bot.py:8296 #, python-format msgid "**Example usage:**\n" "```%(usage)s```\n" @@ -2227,12 +2277,12 @@ msgstr "**使用例:**\n" "%(prefix_note)s**説明:**\n" "%(desc)s" -#: musicbot/bot.py:8273 +#: musicbot/bot.py:8349 #, python-format msgid "Leaving voice channel %(channel)s due to inactivity." msgstr "音声チャンネル %(channel)s を離れています。" -#: musicbot/bot.py:8554 +#: musicbot/bot.py:8645 #, python-format msgid "Left `%(guild)s` due to bot owner not being found in it." msgstr "Botの所有者が見つからなかったため、%(guild)sを残しました。" @@ -2402,43 +2452,43 @@ msgid "Enable automatic skip of auto playlist songs when a user plays a new song msgstr "ユーザーが新しい曲を再生したときに自動プレイリストの曲を自動スキップするようにします。\n" "自動プレイリストで追加された場合にのみ、現在再生中の曲に適用されます。" -#: musicbot/config.py:469 +#: musicbot/config.py:468 msgid "Remove songs from the auto playlist if they are found in the song block list." msgstr "曲のブロックリストから曲が見つかった場合は、自動プレイリストから曲を削除します。" -#: musicbot/config.py:488 +#: musicbot/config.py:487 msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" "Delay period is controlled by DeleteDelayShort and DeleteDelayLong." msgstr "Allow MusicBot to automatically delete messages sends, after a delay.\n" "Delay period is control by DeleteDelayShort and DeleteDelayLong." -#: musicbot/config.py:498 +#: musicbot/config.py:497 msgid "Auto delete valid commands after a delay." msgstr "遅延後に有効なコマンドを自動的に削除します。" -#: musicbot/config.py:507 +#: musicbot/config.py:506 msgid "Sets the short period of seconds before deleting messages.\n" "This period is used by messages that require no further interaction." msgstr "メッセージを削除するまでの短い秒数を設定します。\n" "この期間は、それ以上の相互作用を必要としないメッセージで使用されます。" -#: musicbot/config.py:518 +#: musicbot/config.py:517 msgid "Sets the long delay period before deleting messages.\n" "This period is used by interactive or long-winded messages, like search and help." msgstr "メッセージを削除する前の長い遅延期間を設定します。\n" "この期間は、検索やヘルプなどのインタラクティブまたは長巻きのメッセージで使用されます。" -#: musicbot/config.py:530 +#: musicbot/config.py:529 msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." msgstr "MusicBotが曲のキューを保存できるようにします。キューに入った曲は再起動できます。" -#: musicbot/config.py:540 +#: musicbot/config.py:539 msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" "Currently this option does not apply to auto playlist or songs added to an empty queue." msgstr "MusicBotを有効にすると、曲の再生中に次の曲をキューにダウンロードできます。\n" "現在、このオプションは、空のキューに追加された自動プレイリストや曲には適用されません。" -#: musicbot/config.py:550 +#: musicbot/config.py:549 msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" "will display dynamic info about music currently being played in its status instead.\n" "Status messages may also use the following variables:\n" @@ -2452,85 +2502,85 @@ msgid "Specify a custom message to use as the bot's status. If left empty, the b " {p0_url} = The track URL for the currently playing track." msgstr "" -#: musicbot/config.py:571 +#: musicbot/config.py:570 msgid "If enabled, status messages will report info on paused players." msgstr "有効にすると、ステータスメッセージは一時停止中のプレイヤーに情報を報告します。" #. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. -#: musicbot/config.py:582 +#: musicbot/config.py:581 msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" msgstr "有効にすると、MusicBotはトラックタイトルをdata/[Server ID]/current.txt に保存します。" -#: musicbot/config.py:592 +#: musicbot/config.py:591 msgid "Allow the member who requested the song to skip it, bypassing votes." msgstr "投票を無視して曲をスキップするように要求したメンバーを許可します。" -#: musicbot/config.py:602 +#: musicbot/config.py:601 msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" "This option can cause delay between playing songs, as the whole track must be processed." msgstr "ffmpegを使用して、再生時に使用するボリューム正規化オプションを取得しようとします。\n" "トラック全体を処理する必要があるため、このオプションは曲を再生する間の遅延を引き起こす可能性があります。" -#: musicbot/config.py:612 +#: musicbot/config.py:611 msgid "Allow MusicBot to format its messages as embeds." msgstr "MusicBot がメッセージを埋め込み形式にすることを許可します。" -#: musicbot/config.py:621 +#: musicbot/config.py:620 msgid "The number of entries to show per-page when using q command to list the queue." msgstr "キューを一覧表示するために q コマンドを使用するときに、ページごとに表示するエントリ数です。" -#: musicbot/config.py:631 +#: musicbot/config.py:630 msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." msgstr "自動再生リストから再生できないエントリを自動的に削除するには、MusicBotを有効にします。" -#: musicbot/config.py:640 +#: musicbot/config.py:639 msgid "Display MusicBot config settings in the logs at startup." msgstr "起動時にログに MusicBot の設定を表示します。" #. TRANSLATORS: InstaSkip should not be translated. -#: musicbot/config.py:650 +#: musicbot/config.py:649 msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." msgstr "InstaSkip権限を持つユーザーを有効にして、スキップ投票とスキップをバイパスします。" -#: musicbot/config.py:660 +#: musicbot/config.py:659 msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." msgstr "有効にすると、オーナーがメンバーリストに登録されていない場合、MusicBotはサーバーから退出します。" -#: musicbot/config.py:670 +#: musicbot/config.py:669 msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" msgstr "有効にすると、MusicBotはデータを使用して複数の名前を持つコマンドを許可します。config/aliases.json" -#: musicbot/config.py:681 +#: musicbot/config.py:680 msgid "Replace MusicBot name/version in embed footer with custom text.\n" "Only applied when UseEmbeds is enabled and it is not blank." msgstr "埋め込みフッターのMusicBot名/バージョンをカスタムテキストに置き換えます。\n" "UseEmbedsが有効で空白でない場合にのみ適用されます。" -#: musicbot/config.py:691 +#: musicbot/config.py:690 msgid "Completely remove the footer from embeds." msgstr "埋め込みからフッターを完全に削除します。" -#: musicbot/config.py:700 +#: musicbot/config.py:699 msgid "MusicBot will automatically deafen itself when entering a voice channel." msgstr "MusicBot は音声チャンネルに入ると自動的に聴覚障害を発生します。" -#: musicbot/config.py:711 +#: musicbot/config.py:710 msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" "after waiting for a period set in LeaveInactiveVCTimeOut option.\n" "Listeners are channel members, excluding bots, who are not deafened." msgstr "" -#: musicbot/config.py:723 +#: musicbot/config.py:722 msgid "Set a period of time to wait before leaving an inactive voice channel.\n" "You can set this to a number of seconds or phrase like: 4 hours" msgstr "非アクティブなボイスチャンネルを離れる前に待機する期間を設定します。\n" "次のような秒数またはフレーズに設定できます: 4時間" -#: musicbot/config.py:734 +#: musicbot/config.py:733 msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." msgstr "有効にすると、MusicBotは曲のキューが空の場合、すぐにチャンネルから退出します。" -#: musicbot/config.py:744 +#: musicbot/config.py:743 msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" "You can set this to a number of seconds of phrase like: 15 minutes\n" "Set it to 0 to disable leaving in this way." @@ -2538,31 +2588,31 @@ msgstr "一時停止または再生を停止した場合、この時間を待っ "次のようなフレーズの秒数に設定できます: 15 minutes\n" "この方法で残りを無効にするには、0に設定します。" -#: musicbot/config.py:756 +#: musicbot/config.py:755 msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." msgstr "有効にした場合、ユーザーはリアクションを使用する代わりにメッセージを送信することによって検索結果の選択を示す必要があります。" -#: musicbot/config.py:766 +#: musicbot/config.py:765 msgid "Sets the default number of search results to fetch when using the search command without a specific number." msgstr "検索コマンドを特定の番号なしで使用する場合に取得する検索結果のデフォルトの数を設定します。" #. TRANSLATORS: setprefix should not be translated. -#: musicbot/config.py:778 +#: musicbot/config.py:777 msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." msgstr "MusicBot がサーバー毎のコマンドプレフィックスを保存できるようにし、setprefix コマンドを有効にします。" -#: musicbot/config.py:789 +#: musicbot/config.py:788 msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." msgstr "有効にして複数のメンバーが曲を追加している場合、MusicBotはメンバーごとに1曲の再生を整理します。" -#: musicbot/config.py:800 +#: musicbot/config.py:799 msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" "This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" "MusicBot must be restarted to enable network testing.\n" "By default this is disabled." msgstr "" -#: musicbot/config.py:814 +#: musicbot/config.py:813 #, python-format msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" "This will contain all songs from all servers." @@ -2570,22 +2620,22 @@ msgstr "MusicBotで再生されたすべての曲をグローバルプレイリ "すべてのサーバーのすべての曲が含まれます。" #. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. -#: musicbot/config.py:829 +#: musicbot/config.py:828 #, python-format msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" msgstr "" -#: musicbot/config.py:845 +#: musicbot/config.py:844 msgid "Enable playback of local media files using the play command.\n" "When enabled, users can use: `play file://path/to/file.ext`\n" "to play files from the local MediaFileDirectory path." msgstr "" -#: musicbot/config.py:858 +#: musicbot/config.py:857 msgid "Allow MusicBot to automatically unpause when play commands are used." msgstr "再生コマンドを使用すると、MusicBotが自動的に一時停止を解除できるようになります。" -#: musicbot/config.py:877 +#: musicbot/config.py:876 msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" "The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" "Leave blank to disable." @@ -2593,7 +2643,7 @@ msgstr "ytdlp メディアダウンローダーで使用する、HTTP/HTTPS プ "ここで設定された値は `ytdlp --proxy` と aiohttp ヘッダーチェックに渡されます。\n" "無効にするには空白のままにします。" -#: musicbot/config.py:888 +#: musicbot/config.py:887 msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" "It is not typically recommended by yt-dlp to change the UA string.\n" "For examples of what you might put here, check the following two links:\n" @@ -2602,7 +2652,7 @@ msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" "Leave blank to use default, dynamically generated UA strings." msgstr "" -#: musicbot/config.py:903 +#: musicbot/config.py:902 #, python-format msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" "When enabled, you must use the generated URL and code to authorize an account.\n" @@ -2612,38 +2662,38 @@ msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2. "Set yes to enable or no to disable." msgstr "" -#: musicbot/config.py:920 +#: musicbot/config.py:919 msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" "This starts the OAuth2 prompt early, rather than waiting for a song request.\n" "The URL set here should be an accessible YouTube video URL.\n" "Authorization must be completed before start-up will continue when this is set." msgstr "" -#: musicbot/config.py:939 +#: musicbot/config.py:938 msgid "Toggle the user block list feature, without emptying the block list." msgstr "ブロックリストを空にせずに、ユーザーのブロックリスト機能を切り替えます。" -#: musicbot/config.py:949 +#: musicbot/config.py:948 msgid "An optional file path to a text file listing Discord User IDs, one per line." msgstr "DiscordユーザーIDを一行に1つリストするテキストファイルへのオプションのファイルパスです。" -#: musicbot/config.py:961 +#: musicbot/config.py:960 msgid "Enable the song block list feature, without emptying the block list." msgstr "ブロックリストを空にせずに、ソングブロックリスト機能を有効にします。" -#: musicbot/config.py:971 +#: musicbot/config.py:970 msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" "Any song title or URL that contains any line in the list will be blocked." msgstr "URL、単語、またはフレーズを一行に一覧表示するテキストファイルへのオプションのファイルパス。\n" "リスト内の任意の行を含む曲名やURLはブロックされます。" -#: musicbot/config.py:984 +#: musicbot/config.py:983 msgid "An optional path to a directory containing auto playlist files.\n" "Each file should contain a list of playable URLs or terms, one track per line." msgstr "自動プレイリストファイルを含むディレクトリへのオプションのパス。\n" "各ファイルには、プレイ可能な URL または用語のリストが含まれている必要があります。" -#: musicbot/config.py:996 +#: musicbot/config.py:995 #, python-format msgid "An optional directory path where playable media files can be stored.\n" "All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" @@ -2651,31 +2701,31 @@ msgid "An optional directory path where playable media files can be stored.\n" "Maps to: %(path)s/some/folder/name/file.ext" msgstr "" -#: musicbot/config.py:1015 +#: musicbot/config.py:1014 msgid "An optional directory path where MusicBot will store long and short-term cache for playback." msgstr "MusicBotが長く短いキャッシュを保存するオプションのディレクトリパスです。" -#: musicbot/config.py:1026 +#: musicbot/config.py:1025 #, python-format msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" "When disabled, only one log is kept and its contents are replaced each run.\n" "Set to 0 to disable. Maximum allowed number is %(max)s." msgstr "" -#: musicbot/config.py:1039 +#: musicbot/config.py:1038 msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" "If left blank, a warning is logged and the default will be used instead.\n" "Learn more about time format codes from the tables and data here:\n" " https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" msgstr "" -#: musicbot/config.py:1053 +#: musicbot/config.py:1052 msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" "This option will disable UseExperimentalEqualization option as well." msgstr "潜在的にCPU使用率を低下させますが、音量と速度制御を無効にします。\n" "このオプションは、UseExperimentalEqualization オプションも無効にします。" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2689,7 +2739,7 @@ msgid "Error while reading config.\n\n" " Use the example options as a template or copy it from the repository." msgstr "" -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2697,7 +2747,7 @@ msgid "Error while validating config options.\n\n" " Make sure the path you configured is a path to a folder / directory." msgstr "" -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2712,7 +2762,7 @@ msgstr "設定オプションの検証中にエラーが発生しました。\n\ "ソリューション:\n" " 設定が有効であることを再確認してください。 アクセス可能なディレクトリパス" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2721,7 +2771,7 @@ msgid "Error while reading config options.\n\n" " Set the Token config option or set environment variable %(env_var)s with an App token." msgstr "" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2730,7 +2780,7 @@ msgid "Error while fetching 'OwnerID' automatically.\n\n" " Manually set the 'OwnerID' config option or try again later." msgstr "" -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2738,7 +2788,7 @@ msgid "Error validating config options.\n\n" " Do not use the Bot or App ID in the 'OwnerID' field." msgstr "" -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2753,7 +2803,7 @@ msgstr "設定の場所を特定できませんでした。\n\n" "ソリューション:\n" " 設定フォルダとファイルが存在することを確認し、MusicBotによって読み込まれます。" -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2764,7 +2814,7 @@ msgid "Error loading config.\n\n" " Copy the example file from the repo if all else fails." msgstr "" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2773,7 +2823,7 @@ msgid "Error loading config value.\n\n" " Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." msgstr "" -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2782,7 +2832,7 @@ msgid "Error loading config value.\n\n" " Check the path setting and make sure the file exists and is accessible to MusicBot." msgstr "" -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" diff --git a/i18n/pl_PL/LC_MESSAGES/musicbot_logs.mo b/i18n/pl_PL/LC_MESSAGES/musicbot_logs.mo index cc1d7b7260a3c6ad1778a69568250e75f16216d1..489098fa8e33fc295c8f0515793b89d7e8c7d67d 100644 GIT binary patch delta 13894 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 P14&CCx9Re0Zpi-u?<&i2 delta 13558 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�!RJi#9? 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 M-mWrh-A85q4_YB$GXMYp diff --git a/i18n/pl_PL/LC_MESSAGES/musicbot_logs.po b/i18n/pl_PL/LC_MESSAGES/musicbot_logs.po index 68c1314a9..aff693877 100644 --- a/i18n/pl_PL/LC_MESSAGES/musicbot_logs.po +++ b/i18n/pl_PL/LC_MESSAGES/musicbot_logs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 18:12\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:39\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -101,85 +101,85 @@ msgstr "Adres URL jest już na liście odtwarzania %s, ignoruje" msgid "Adding new URL to playlist, %(playlist)s: %(track)s" msgstr "Dodawanie nowego adresu URL do listy odtwarzania, %(playlist)s: %(track)s" -#: musicbot/bot.py:163 +#: musicbot/bot.py:165 #, python-format msgid "Initializing MusicBot %s" msgstr "Inicjowanie MusicBot %s" -#: musicbot/bot.py:243 +#: musicbot/bot.py:245 #, python-format msgid "Loop is closed, cannot create task for: %r" msgstr "Pętla jest zamknięta, nie można utworzyć zadania dla: %r" -#: musicbot/bot.py:259 +#: musicbot/bot.py:261 #, python-format msgid "Unhandled exception for task: %r" msgstr "Nieobsługiwany wyjątek dla zadania: %r" -#: musicbot/bot.py:263 +#: musicbot/bot.py:265 #, python-format msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" msgstr "Nieobsługiwany wyjątek dla zadania: %(task)r -- %(raw_error)s" -#: musicbot/bot.py:308 musicbot/bot.py:330 +#: musicbot/bot.py:310 musicbot/bot.py:332 msgid "Spotify did not provide us with a token. Disabling." msgstr "Spotify nie dostarczył nam tokenu. Wyłączanie." -#: musicbot/bot.py:312 +#: musicbot/bot.py:314 msgid "Authenticated with Spotify successfully using client ID and secret." msgstr "Uwierzytelniono ze Spotify za pomocą identyfikatora klienta i sekretu." -#: musicbot/bot.py:316 +#: musicbot/bot.py:318 #, python-format msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." msgstr "Nie można uruchomić klienta Spotify. Czy Twój identyfikator klienta i tajne dane są poprawne? Szczegóły: %s. Kontynuuj mimo to za 5 sekund..." -#: musicbot/bot.py:324 +#: musicbot/bot.py:326 msgid "The config did not have Spotify app credentials, attempting to use guest mode." msgstr "Konfiguracja nie posiadała poświadczeń aplikacji Spotify, próbując użyć trybu gościa." -#: musicbot/bot.py:334 +#: musicbot/bot.py:336 msgid "Authenticated with Spotify successfully using guest mode." msgstr "Uwierzytelniono ze Spotify za pomocą trybu gościa." -#: musicbot/bot.py:339 +#: musicbot/bot.py:341 #, python-format msgid "Could not start Spotify client using guest mode. Details: %s." msgstr "Nie można uruchomić klienta Spotify w trybie gościa. Szczegóły: %s." -#: musicbot/bot.py:347 +#: musicbot/bot.py:349 msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" msgstr "Eksperymentalna wtyczka Yt-dlp OAuth2 jest włączona. Może się to zepsuć w dowolnym momencie!" -#: musicbot/bot.py:354 +#: musicbot/bot.py:356 msgid "Initialized, now connecting to discord." msgstr "Zainicjowano połączenie, a teraz połączenie z discordem." -#: musicbot/bot.py:365 +#: musicbot/bot.py:367 msgid "Network ping test is disabled via config." msgstr "Test ping sieci jest wyłączony przez konfigurację." -#: musicbot/bot.py:369 +#: musicbot/bot.py:371 msgid "Network ping test is closing down." msgstr "Test ping sieci jest zamknięty." -#: musicbot/bot.py:380 +#: musicbot/bot.py:382 msgid "Could not resolve ping target." msgstr "Nie można rozwiązać celu ping." -#: musicbot/bot.py:410 +#: musicbot/bot.py:412 msgid "Network ping test cancelled." msgstr "Test ping sieci został anulowany." -#: musicbot/bot.py:424 +#: musicbot/bot.py:426 msgid "Network testing via HTTP does not have a session to borrow." msgstr "Testowanie sieci przez HTTP nie ma sesji do pożyczenia." -#: musicbot/bot.py:449 +#: musicbot/bot.py:451 msgid "Could not locate `ping` executable in your environment." msgstr "Nie można zlokalizować pliku wykonywalnego `ping` w twoim środowisku." -#: musicbot/bot.py:475 +#: musicbot/bot.py:477 #, python-format msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -190,7 +190,7 @@ msgstr "MusicBot nie mógł zlokalizować ścieżki komendy `ping`. Zamiast tego "Powinieneś włączyć ping w systemie lub kontenerowce, aby uzyskać najlepsze wyniki.\n" "Alternatywnie wyłącz sprawdzanie sieci przez konfigurację." -#: musicbot/bot.py:485 +#: musicbot/bot.py:487 #, python-format msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -201,7 +201,7 @@ msgstr "MusicBot został pozbawiony uprawnień do wykonania komendy `ping`. Zami "Powinieneś włączyć ping w systemie lub kontenerowce, aby uzyskać najlepsze wyniki.\n" "Alternatywnie wyłącz sprawdzanie sieci przez konfigurację." -#: musicbot/bot.py:495 +#: musicbot/bot.py:497 #, python-format msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -212,554 +212,559 @@ msgstr "Twoje środowisko może nie zezwolić na komendę systemową `ping`. Zam "Powinieneś włączyć ping w systemie lub kontenerowce, aby uzyskać najlepsze wyniki.\n" "Alternatywnie wyłącz sprawdzanie sieci przez konfigurację." -#: musicbot/bot.py:510 +#: musicbot/bot.py:512 msgid "MusicBot detected network is available again." msgstr "Sieć MusicBot jest znów dostępna." -#: musicbot/bot.py:515 +#: musicbot/bot.py:517 msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." msgstr "VoiceClient nie jest połączony, oczekiwanie na wznowienie MusicPlayer..." -#: musicbot/bot.py:519 +#: musicbot/bot.py:521 #, python-format msgid "Resuming playback of player: (%(guild_id)s) %(player)r" msgstr "Wznawianie odtwarzania gracza: (%(guild_id)s) %(player)r" -#: musicbot/bot.py:530 +#: musicbot/bot.py:532 msgid "MusicBot detected a network outage." msgstr "MusicBot wykrył przerwę sieciową." -#: musicbot/bot.py:534 +#: musicbot/bot.py:536 #, python-format msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" msgstr "Wstrzymanie MusicPlayera z powodu dostępności sieci: (%(guild_id)s) %(player)r" -#: musicbot/bot.py:555 +#: musicbot/bot.py:557 #, python-format msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" msgstr "Szukasz właściciela w gildii: %(guild)s (wymagany głos: %(required)s) i otrzymany: %(owner)s" -#: musicbot/bot.py:569 +#: musicbot/bot.py:571 msgid "Checking for channels to auto-join or resume..." msgstr "Sprawdzanie kanału do automatycznego dołączenia lub wznowienia ..." -#: musicbot/bot.py:581 +#: musicbot/bot.py:583 #, python-format msgid "Guild not available, cannot auto join: %(id)s/%(name)s" msgstr "Gildia niedostępna, nie można automatycznie dołączyć: %(id)s/%(name)s" -#: musicbot/bot.py:589 +#: musicbot/bot.py:591 #, python-format msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" msgstr "Znaleziono wznawiany kanał głosowy: %(channel)s w gildii: %(guild)s" -#: musicbot/bot.py:602 +#: musicbot/bot.py:604 #, python-format msgid "Will try resuming voice session instead of Auto-Joining channel: %s" msgstr "Spróbuje wznowić sesję głosową zamiast kanału automatycznego dołączenia: %s" -#: musicbot/bot.py:619 +#: musicbot/bot.py:621 #, python-format msgid "Found owner in voice channel: %s" msgstr "Znaleziono właściciela na kanale głosowym: %s" -#: musicbot/bot.py:624 +#: musicbot/bot.py:626 #, python-format msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" msgstr "Ignorowanie wznawianego kanału, Automatyczne przywoływanie do właściciela na kanale: %s" -#: musicbot/bot.py:629 +#: musicbot/bot.py:631 #, python-format msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" msgstr "Ignorowanie kanału Auto-Dołącz automatycznie, AutoSummon do właściciela na kanale: %s" -#: musicbot/bot.py:641 +#: musicbot/bot.py:643 #, python-format msgid "Already connected to channel: %(channel)s in guild: %(guild)s" msgstr "Już połączono z kanałem: %(channel)s w gildii: %(guild)s" -#: musicbot/bot.py:650 +#: musicbot/bot.py:652 #, python-format msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" msgstr "Próba dołączenia do kanału: %(channel)s w gildii: %(guild)s" -#: musicbot/bot.py:657 +#: musicbot/bot.py:659 msgid "Discarding MusicPlayer and making a new one..." msgstr "Odrzucanie MusicPlayer i tworzenie nowego..." -#: musicbot/bot.py:677 +#: musicbot/bot.py:679 msgid "MusicBot will make a new MusicPlayer now..." msgstr "MusicBot zrobi teraz nowego MusicPlayer" -#: musicbot/bot.py:698 +#: musicbot/bot.py:700 #, python-format msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." msgstr "Nie dołączysz do %(guild)s/%(channel)s, nie jest to obsługiwany kanał głosowy." -#: musicbot/bot.py:701 +#: musicbot/bot.py:703 msgid "Finished joining configured channels." msgstr "Zakończono dołączanie skonfigurowanych kanałów." -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "Użytkownik nie jest włączony głosowo i nie może użyć tego polecenia." -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "Nie możesz użyć tej komendy gdy nie jest na kanale głosowym." -#: musicbot/bot.py:735 +#: musicbot/bot.py:737 msgid "Getting bot Application Info." msgstr "Informacje o aplikacji bota." -#: musicbot/bot.py:760 +#: musicbot/bot.py:762 #, python-format msgid "MusicBot does not have permission to Connect in channel: %s" msgstr "MusicBot nie ma uprawnień do połączenia na kanale: %s" -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "MusicBot nie ma uprawnień do połączenia na kanale: `%(name)s`" -#: musicbot/bot.py:769 +#: musicbot/bot.py:771 #, python-format msgid "MusicBot does not have permission to Speak in channel: %s" msgstr "MusicBot nie ma uprawnień do mówienia na kanale: %s" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "MusicBot nie ma uprawnień do mówienia na kanale: `%(name)s`" -#: musicbot/bot.py:783 +#: musicbot/bot.py:785 #, python-format msgid "Reusing bots VoiceClient from guild: %s" msgstr "Ponowne użycie botów VoiceClient z gildii: %s" -#: musicbot/bot.py:788 +#: musicbot/bot.py:790 #, python-format msgid "Forcing disconnect on stale VoiceClient in guild: %s" msgstr "Wymuszam rozłączenie na Niebieskim VoiceClient w gildii: %s" -#: musicbot/bot.py:794 +#: musicbot/bot.py:796 msgid "Disconnect failed or was cancelled?" msgstr "Rozłączenie nie powiodło się lub zostało anulowane?" -#: musicbot/bot.py:802 +#: musicbot/bot.py:804 #, python-format msgid "MusicBot is unable to connect to the channel right now: %(channel)s" msgstr "MusicBot nie może teraz połączyć się z kanałem: %(channel)s" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "MusicBot nie mógł połączyć się z kanałem.\n" "Spróbuj ponownie później lub zrestartuj bota jeśli to będzie kontynuowane." -#: musicbot/bot.py:817 +#: musicbot/bot.py:819 msgid "MusicBot has a VoiceClient now..." msgstr "MusicBot ma teraz VoiceClient..." -#: musicbot/bot.py:822 +#: musicbot/bot.py:824 #, python-format msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" msgstr "Ponawianie próby połączenia po przekroczeniu limitu czasu (%(attempt)s) podczas próby połączenia z: %(channel)s" -#: musicbot/bot.py:827 +#: musicbot/bot.py:829 msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." msgstr "Próba połączenia MusicBot VoiceClient została anulowana. Bez ponawiania próby." -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "Połączenie MusicBot z głosowaniem zostało anulowane. To jest dziwne. Może zrestartować?" -#: musicbot/bot.py:840 musicbot/bot.py:8386 +#: musicbot/bot.py:838 musicbot/bot.py:8471 +#, python-format +msgid "MusicBot is requesting to speak in channel: %s" +msgstr "MusicBot prosi o mówienie na kanale: %s" + +#: musicbot/bot.py:843 musicbot/bot.py:8477 msgid "MusicBot does not have permission to speak." msgstr "MusicBot nie ma uprawnień do mówienia." -#: musicbot/bot.py:844 musicbot/bot.py:8388 +#: musicbot/bot.py:847 musicbot/bot.py:8479 msgid "MusicBot could not request to speak." msgstr "MusicBot nie mógł prosić o głos." -#: musicbot/bot.py:857 +#: musicbot/bot.py:860 #, python-format msgid "Disconnecting a MusicPlayer in guild: %s" msgstr "Rozłączanie MusicPlayer w gildii: %s" -#: musicbot/bot.py:869 +#: musicbot/bot.py:872 msgid "Disconnecting VoiceClient before we kill the MusicPlayer." msgstr "Rozłączanie VoiceClient zanim zabijemy MusicPlayera." -#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 -#: musicbot/bot.py:931 +#: musicbot/bot.py:880 musicbot/bot.py:899 musicbot/bot.py:911 +#: musicbot/bot.py:934 msgid "The disconnect failed or was cancelled." msgstr "Rozłączenie nie powiodło się lub zostało anulowane." -#: musicbot/bot.py:887 +#: musicbot/bot.py:890 msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." msgstr "MusicBot ma VoiceProtocol który nie jest VoiceClient. Rozłączanie mimo to..." -#: musicbot/bot.py:900 +#: musicbot/bot.py:903 #, python-format msgid "Disconnecting a rogue VoiceClient in guild: %s" msgstr "Rozłączanie rogue VoiceClient w gildii: %s" -#: musicbot/bot.py:924 +#: musicbot/bot.py:927 msgid "Disconnecting a non-guild VoiceClient..." msgstr "Rozłączanie niegildii VoiceClient..." -#: musicbot/bot.py:934 +#: musicbot/bot.py:937 #, python-format msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" "The object is actually of type: %s" msgstr "Lista MusicBot.voice_clients zawiera obiekt niebędący VoiceClient?\n" "Obiekt jest w rzeczywistości typu: %s" -#: musicbot/bot.py:944 +#: musicbot/bot.py:947 #, python-format msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" msgstr "Wciąż mamy ref MusicPlayer w gildii (%(guild_id)s): %(player)r" -#: musicbot/bot.py:957 +#: musicbot/bot.py:960 #, python-format msgid "Guild (%(guild)s) wants a player, optional: %(player)r" msgstr "Gildia (%(guild)s) chce gracza, opcjonalnie: %(player)r" -#: musicbot/bot.py:964 +#: musicbot/bot.py:967 msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." msgstr "[BUG] MusicPlayer brakuje jak. Prawdopodobnie powinieneś zrestartować bota." -#: musicbot/bot.py:969 +#: musicbot/bot.py:972 msgid "MusicPlayer has a VoiceClient that is not connected." msgstr "MusicPlayer ma VoiceClient, który nie jest połączony." -#: musicbot/bot.py:970 +#: musicbot/bot.py:973 #, python-format msgid "MusicPlayer obj: %r" msgstr "MusicPlayer obj: %r" -#: musicbot/bot.py:971 +#: musicbot/bot.py:974 #, python-format msgid "VoiceClient obj: %r" msgstr "VoiceClient obj: %r" -#: musicbot/bot.py:991 +#: musicbot/bot.py:994 #, python-format msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" msgstr "Otrzymywanie MusicPlayer dla gildii: %(guild)s na kanale: %(channel)s Utwórz: %(create)s Deserialize: %(serial)s" -#: musicbot/bot.py:1007 +#: musicbot/bot.py:1010 #, python-format msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" msgstr "Utworzono gracza poprzez deserializację dla gildii %(guild_id)s z wpisami %(number)s" -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "Bot nie jest na kanale głosowym.\n" "Użyj polecenia przywołania, aby przenieść bota do kanału głosowego." -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "Coś jest nie tak. Nie otrzymaliśmy VoiceClient." -#: musicbot/bot.py:1061 +#: musicbot/bot.py:1064 msgid "Running on_player_play" msgstr "Uruchamianie_gracz_gracza" -#: musicbot/bot.py:1136 +#: musicbot/bot.py:1139 #, python-format msgid "Setting URL history guild %(guild_id)s == %(url)s" msgstr "Ustawianie gildii historii URL %(guild_id)s == %(url)s" -#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#: musicbot/bot.py:1175 musicbot/bot.py:4809 #, python-format msgid "No thumbnail set for entry with URL: %s" msgstr "Nie ustawiono miniatury dla wpisu z adresem URL: %s" -#: musicbot/bot.py:1184 +#: musicbot/bot.py:1187 msgid "no channel to put now playing message into" msgstr "brak kanału do umieszczenia wiadomości odtwarzania" -#: musicbot/bot.py:1196 +#: musicbot/bot.py:1199 msgid "ignored now-playing message as it was already posted." msgstr "zignorowano wiadomość, która została już opublikowana." -#: musicbot/bot.py:1220 +#: musicbot/bot.py:1223 msgid "Running on_player_resume" msgstr "Uruchamianie_gracz_wznawianie" -#: musicbot/bot.py:1233 +#: musicbot/bot.py:1236 msgid "Running on_player_pause" msgstr "Uruchamianie_gracz_pauza" -#: musicbot/bot.py:1249 +#: musicbot/bot.py:1252 msgid "Running on_player_stop" msgstr "Uruchamianie_gracz_zatrzymanie" -#: musicbot/bot.py:1259 +#: musicbot/bot.py:1262 msgid "Running on_player_finished_playing" msgstr "Uruchamianie_gracz_zakończone_grania" -#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +#: musicbot/bot.py:1264 musicbot/bot.py:1310 musicbot/bot.py:1381 msgid "Event loop is closed, nothing else to do here." msgstr "Pętla zdarzeń jest zamknięta, nic innego do zrobienia tutaj." -#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +#: musicbot/bot.py:1268 musicbot/bot.py:1314 musicbot/bot.py:1385 msgid "Logout under way, ignoring this event." msgstr "Wyloguj się, ignorując to wydarzenie." -#: musicbot/bot.py:1282 +#: musicbot/bot.py:1285 msgid "VoiceClient says it is not connected, nothing else we can do here." msgstr "VoiceClient mówi, że nie jest połączony, nic innego nie możemy tutaj zrobić." -#: musicbot/bot.py:1289 +#: musicbot/bot.py:1292 msgid "Player finished and queue is empty, leaving voice channel..." msgstr "Gracz gotowy i kolejka jest pusta, pozostawiając kanał głosowy..." -#: musicbot/bot.py:1303 +#: musicbot/bot.py:1306 msgid "Looping over queue to expunge songs with missing author..." msgstr "Pętla nad kolejką do zdejmowania piosenek z brakującym autorem..." -#: musicbot/bot.py:1342 +#: musicbot/bot.py:1345 #, python-format msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" msgstr "Autor `%(user)s` nieobecny, pominięty (usunięty) wpis z kolejki: %(song)s" -#: musicbot/bot.py:1361 +#: musicbot/bot.py:1364 msgid "No playable songs in the Guild autoplaylist, disabling." msgstr "Brak odtwarzanych utworów na liście autoplayerów, wyłączając." -#: musicbot/bot.py:1366 +#: musicbot/bot.py:1369 msgid "No content in current autoplaylist. Filling with new music..." msgstr "Brak zawartości w bieżącej autoplaylist. Wypełnianie nową muzyką..." -#: musicbot/bot.py:1374 +#: musicbot/bot.py:1377 msgid "Looping over player autoplaylist..." msgstr "Pętla nad autoplaylistą graczy..." -#: musicbot/bot.py:1415 +#: musicbot/bot.py:1418 #, python-format msgid "Error while processing song \"%(url)s\": %(raw_error)s" msgstr "Błąd podczas przetwarzania utworu \"%(url)s\": %(raw_error)s" -#: musicbot/bot.py:1426 +#: musicbot/bot.py:1429 #, python-format msgid "Error extracting song \"%(url)s\": %(raw_error)s" msgstr "Błąd podczas rozpakowywania utworu \"%(url)s\": %(raw_error)s" -#: musicbot/bot.py:1441 +#: musicbot/bot.py:1444 msgid "MusicBot needs to stop the auto playlist extraction and bail." msgstr "MusicBot musi zatrzymać automatyczne wydobycie i ratowanie listy odtwarzania." -#: musicbot/bot.py:1446 +#: musicbot/bot.py:1449 msgid "MusicBot got an unhandled exception in player finished event." msgstr "MusicBot otrzymał nieobsługiwany wyjątek w wydarzeniu zakończonym." -#: musicbot/bot.py:1452 +#: musicbot/bot.py:1455 #, python-format msgid "Expanding auto playlist with entries extracted from: %s" msgstr "Rozszerzenie automatycznej listy odtwarzania o wpisy wyciągnięte z: %s" -#: musicbot/bot.py:1476 +#: musicbot/bot.py:1479 #, python-format msgid "Error adding song from autoplaylist: %s" msgstr "Błąd podczas dodawania utworu z autoplaylisty: %s" -#: musicbot/bot.py:1479 +#: musicbot/bot.py:1482 msgid "Exception data for above error:" msgstr "Dane wyjątku dla powyższego błędu:" -#: musicbot/bot.py:1485 +#: musicbot/bot.py:1488 msgid "No playable songs in the autoplaylist, disabling." msgstr "Brak odtwarzanych utworów na liście autoplayerów, wyłączając." -#: musicbot/bot.py:1505 +#: musicbot/bot.py:1508 msgid "Running on_player_entry_added" msgstr "Uruchamianie_gracz_wpis_dodane" -#: musicbot/bot.py:1515 +#: musicbot/bot.py:1518 msgid "Automatically skipping auto-playlist entry for queued entry." msgstr "Automatycznie pomijam wpis auto-listy odtwarzania dla wpisu w kolejce." -#: musicbot/bot.py:1535 +#: musicbot/bot.py:1538 #, python-format msgid "MusicPlayer exception for entry: %r" msgstr "Wyjątek MusicPlayer dla wpisu: %r" -#: musicbot/bot.py:1541 +#: musicbot/bot.py:1544 msgid "MusicPlayer exception." msgstr "Wyjątek MusicPlayer" -#: musicbot/bot.py:1565 +#: musicbot/bot.py:1568 #, python-format msgid "Auto playlist track could not be played: %r" msgstr "Utwór automatycznej listy odtwarzania nie może być odtworzony: %r" -#: musicbot/bot.py:1604 +#: musicbot/bot.py:1607 msgid "Logout under way, ignoring status update event." msgstr "Wyloguj się w toku, ignorując zdarzenie aktualizacji statusu." -#: musicbot/bot.py:1705 +#: musicbot/bot.py:1708 #, python-format msgid "Update bot status: %(status)s -- %(activity)r" msgstr "Aktualizuj status bota: %(status)s -- %(activity)r" -#: musicbot/bot.py:1733 +#: musicbot/bot.py:1736 #, python-format msgid "Serializing queue for %s" msgstr "Serializacja kolejki dla %s" -#: musicbot/bot.py:1759 +#: musicbot/bot.py:1762 #, python-format msgid "Deserializing queue for %s" msgstr "Deserializacja kolejki dla %s" -#: musicbot/bot.py:1777 +#: musicbot/bot.py:1780 #, python-format msgid "Writing current song for %s" msgstr "Zapisywanie aktualnej piosenki dla %s" -#: musicbot/bot.py:1802 +#: musicbot/bot.py:1805 #, python-format msgid "Cannot send non-response object: %r" msgstr "Nie można wysłać obiektu braku odpowiedzi: %r" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "[Dev Bug] Próba wysłania nieprawidłowego obiektu odpowiedzi." -#: musicbot/bot.py:1835 +#: musicbot/bot.py:1838 #, python-format msgid "sending embed to: %s" msgstr "wysyłanie osadzonych do: %s" -#: musicbot/bot.py:1838 +#: musicbot/bot.py:1841 #, python-format msgid "sending text to: %s" msgstr "wysyłanie tekstu do: %s" -#: musicbot/bot.py:1843 +#: musicbot/bot.py:1846 #, python-format msgid "Cannot send message to \"%s\", no permission" msgstr "Nie można wysłać wiadomości do \"%s\", brak uprawnień" -#: musicbot/bot.py:1850 +#: musicbot/bot.py:1853 #, python-format msgid "Cannot send message to \"%s\", invalid or deleted channel" msgstr "Nie można wysłać wiadomości do \"%s\", nieprawidłowy lub usunięty kanał" -#: musicbot/bot.py:1858 +#: musicbot/bot.py:1861 #, python-format msgid "Message is over the message size limit (%s)" msgstr "Wiadomość przekracza limit rozmiaru wiadomości (%s)" -#: musicbot/bot.py:1866 +#: musicbot/bot.py:1869 msgid "Could not send private message, sending in fallback channel instead." msgstr "Nie można wysłać prywatnej wiadomości, zamiast tego wysyłać na kanał awaryjny." -#: musicbot/bot.py:1884 +#: musicbot/bot.py:1887 #, python-format msgid "Rate limited send message, retrying in %s seconds." msgstr "Ograniczono szybkość wysyłania wiadomości, ponowienie próby za %s sekund." -#: musicbot/bot.py:1890 +#: musicbot/bot.py:1893 #, python-format msgid "Cancelled message retry for: %s" msgstr "Anulowano ponowną próbę wiadomości dla: %s" -#: musicbot/bot.py:1895 +#: musicbot/bot.py:1898 msgid "Rate limited send message, but cannot retry!" msgstr "Oceń ograniczoną wiadomość, ale nie można ponowić próby!" -#: musicbot/bot.py:1901 +#: musicbot/bot.py:1904 msgid "Failed to send message in fallback channel." msgstr "Nie udało się wysłać wiadomości na kanale awaryjnym." -#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +#: musicbot/bot.py:1909 musicbot/bot.py:1973 musicbot/bot.py:2043 msgid "Failed to send due to an HTTP error." msgstr "Nie udało się wysłać z powodu błędu HTTP." -#: musicbot/bot.py:1932 +#: musicbot/bot.py:1935 #, python-format msgid "Cannot delete message \"%s\", no permission" msgstr "Nie można usunąć wiadomości \"%s\", brak uprawnień" -#: musicbot/bot.py:1937 +#: musicbot/bot.py:1940 #, python-format msgid "Cannot delete message \"%s\", message not found" msgstr "Nie można usunąć wiadomości \"%s\", nie znaleziono wiadomości" -#: musicbot/bot.py:1955 +#: musicbot/bot.py:1958 #, python-format msgid "Rate limited message delete, retrying in %s seconds." msgstr "Ograniczono szybkość usuwania wiadomości, ponowienie próby za %s sekund." -#: musicbot/bot.py:1960 +#: musicbot/bot.py:1963 msgid "Rate limited message delete, but cannot retry!" msgstr "Oceń ograniczoną wiadomość usuniętą ale nie można ponowić próby!" -#: musicbot/bot.py:1963 +#: musicbot/bot.py:1966 msgid "Failed to delete message" msgstr "Nie udało się usunąć wiadomości" -#: musicbot/bot.py:1965 +#: musicbot/bot.py:1968 #, python-format msgid "Got HTTPException trying to delete message: %s" msgstr "Masz HTTPException próbujący usunąć wiadomość: %s" -#: musicbot/bot.py:2000 +#: musicbot/bot.py:2003 #, python-format msgid "Cannot edit message \"%s\", message not found" msgstr "Nie można edytować wiadomości \"%s\", nie znaleziono wiadomości" -#: musicbot/bot.py:2004 +#: musicbot/bot.py:2007 msgid "Sending message instead" msgstr "Wysyłanie wiadomości" -#: musicbot/bot.py:2021 +#: musicbot/bot.py:2024 #, python-format msgid "Rate limited edit message, retrying in %s seconds." msgstr "Ograniczona szybkość edycji wiadomości, ponowna próba za %s sekund." -#: musicbot/bot.py:2027 +#: musicbot/bot.py:2030 #, python-format msgid "Cancelled message edit for: %s" msgstr "Anulowana edycja wiadomości dla: %s" -#: musicbot/bot.py:2033 +#: musicbot/bot.py:2036 msgid "Failed to edit message" msgstr "Nie udało się edytować wiadomości" -#: musicbot/bot.py:2035 +#: musicbot/bot.py:2038 #, python-format msgid "Got HTTPException trying to edit message %s to: %s" msgstr "Masz HTTPException próbujący edytować wiadomość %s do: %s" -#: musicbot/bot.py:2057 +#: musicbot/bot.py:2060 #, python-format msgid "Cancelled delete for message (ID: %(id)s): %(content)s" msgstr "Anulowano usunięcie wiadomości (ID: %(id)s): %(content)s" -#: musicbot/bot.py:2119 +#: musicbot/bot.py:2122 #, python-format msgid "Caught a signal from the OS: %s" msgstr "Złapano sygnał z OS: %s" -#: musicbot/bot.py:2123 +#: musicbot/bot.py:2126 msgid "Disconnecting and closing down MusicBot..." msgstr "Rozłączanie i zamykanie MusicBot..." -#: musicbot/bot.py:2126 +#: musicbot/bot.py:2129 msgid "Exception thrown while handling interrupt signal!" msgstr "Wyjątek wyrzucony podczas obsługi sygnału!" -#: musicbot/bot.py:2140 +#: musicbot/bot.py:2143 msgid "MusicBot is now doing shutdown steps..." msgstr "MusicBot robi teraz kroki zamykania..." -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -775,103 +780,103 @@ msgstr "Nieudane logowanie API Discorda!\n\n" " Upewnij się, że masz ustawiony odpowiedni token w konfiguracji.\n" " Sprawdź status API na oficjalnej stronie: discordstatus.com" -#: musicbot/bot.py:2161 +#: musicbot/bot.py:2164 msgid "Waiting for download threads to finish up..." msgstr "Oczekiwanie na zakończenie pobierania wątków..." -#: musicbot/bot.py:2187 +#: musicbot/bot.py:2190 #, python-format msgid "Will wait for task: %(name)s (%(func)s)" msgstr "Poczekamy na zadanie: %(name)s (%(func)s)" -#: musicbot/bot.py:2194 +#: musicbot/bot.py:2197 #, python-format msgid "Will try to cancel task: %(name)s (%(func)s)" msgstr "Spróbuje anulować zadanie: %(name)s (%(func)s)" -#: musicbot/bot.py:2202 +#: musicbot/bot.py:2205 msgid "Awaiting pending tasks..." msgstr "Oczekiwanie na zadania..." -#: musicbot/bot.py:2208 +#: musicbot/bot.py:2211 msgid "Closing HTTP Connector." msgstr "Zamykanie konektora HTTP." -#: musicbot/bot.py:2214 +#: musicbot/bot.py:2217 msgid "Closing aiohttp session." msgstr "Zamykanie sesji aiohttp." -#: musicbot/bot.py:2226 +#: musicbot/bot.py:2229 msgid "Logout has been called." msgstr "Wylogowanie zostało wywołane." -#: musicbot/bot.py:2238 +#: musicbot/bot.py:2241 #, python-format msgid "Exception in %(event)s:\n" "%(error)s" msgstr "Wyjątek w %(event)s:\n" "%(error)s" -#: musicbot/bot.py:2254 +#: musicbot/bot.py:2257 #, python-format msgid "Exception in %s" msgstr "Wyjątek w %s" -#: musicbot/bot.py:2261 +#: musicbot/bot.py:2264 msgid "MusicBot resumed a session with discord." msgstr "MusicBot wznowił sesję z discordem." -#: musicbot/bot.py:2278 +#: musicbot/bot.py:2281 msgid "Finish on_ready" msgstr "Zakończ w trybie _gotowym" -#: musicbot/bot.py:2285 +#: musicbot/bot.py:2288 msgid "Logged in, now getting MusicBot ready..." msgstr "Zalogowano. Przygotuj MusicBot..." -#: musicbot/bot.py:2288 +#: musicbot/bot.py:2291 msgid "ClientUser is somehow none, we gotta bail..." msgstr "Klient nie ma nikogo, mamy ratowanie..." -#: musicbot/bot.py:2297 +#: musicbot/bot.py:2300 #, python-format msgid "MusicBot: %(id)s/%(name)s#%(desc)s" msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" -#: musicbot/bot.py:2308 +#: musicbot/bot.py:2311 #, python-format msgid "Owner: %(id)s/%(name)s#%(desc)s\n" msgstr "Właściciel: %(id)s/%(name)s#%(desc)s\n" -#: musicbot/bot.py:2316 musicbot/bot.py:2343 +#: musicbot/bot.py:2319 musicbot/bot.py:2346 msgid "Guild List:" msgstr "Lista gildii:" -#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#: musicbot/bot.py:2323 musicbot/bot.py:2349 musicbot/bot.py:8663 #, python-format msgid " - %s" msgstr " - %s" -#: musicbot/bot.py:2329 +#: musicbot/bot.py:2332 #, python-format msgid "Left %s due to bot owner not found" msgstr "Opuszczono %s z powodu nieznalezionego właściciela bota" -#: musicbot/bot.py:2334 +#: musicbot/bot.py:2337 #, python-format msgid "Not proceeding with checks in %s servers due to unavailability" msgstr "Nie kontynuowano sprawdzania na serwerach %s z powodu niedostępności" -#: musicbot/bot.py:2340 +#: musicbot/bot.py:2343 #, python-format msgid "Owner could not be found on any guild (id: %s)\n" msgstr "Właściciel nie został znaleziony w żadnej gildii (id: %s)\n" -#: musicbot/bot.py:2349 +#: musicbot/bot.py:2352 msgid "Owner unknown, bot is not on any guilds." msgstr "Właściciel nieznany, bot nie ma na żadnej gildii." -#: musicbot/bot.py:2353 +#: musicbot/bot.py:2356 #, python-format msgid "To make the bot join a guild, paste this link in your browser. \n" "Note: You should be logged into your main account and have \n" @@ -882,53 +887,53 @@ msgstr "Aby bot dołączył do gildii, wklej ten link w swojej przeglądarce. \n "zarządzać uprawnieniami serwera do gildii, do której chcesz, aby bot dołączył.\n" " %s" -#: musicbot/bot.py:2370 +#: musicbot/bot.py:2373 #, python-format msgid "Got None for bound channel with ID: %d" msgstr "Nie masz żadnego kanału z ID: %d" -#: musicbot/bot.py:2376 +#: musicbot/bot.py:2379 #, python-format msgid "Cannot bind to non Messageable channel with ID: %d" msgstr "Nie można powiązać z kanałem bez wiadomości o ID: %d" -#: musicbot/bot.py:2390 +#: musicbot/bot.py:2393 msgid "Bound to text channels:" msgstr "Powiąż z kanałami tekstowymi:" -#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#: musicbot/bot.py:2407 musicbot/bot.py:2457 #, python-format msgid " - %(guild)s/%(channel)s" msgstr " - %(guild)s/%(channel)s" -#: musicbot/bot.py:2408 musicbot/bot.py:2410 +#: musicbot/bot.py:2411 musicbot/bot.py:2413 msgid "Not bound to any text channels" msgstr "Nie związane z żadnymi kanałami tekstowymi" -#: musicbot/bot.py:2421 +#: musicbot/bot.py:2424 #, python-format msgid "Got None for auto join channel with ID: %d" msgstr "Brak dla automatycznego dołączenia do kanału z ID: %d" -#: musicbot/bot.py:2427 +#: musicbot/bot.py:2430 #, python-format msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" msgstr "Nie można automatycznie dołączyć do kanału prywatnego/niegildii z ID: %d" -#: musicbot/bot.py:2435 +#: musicbot/bot.py:2438 #, python-format msgid "Cannot auto join to non-connectable channel with ID: %d" msgstr "Nie można automatycznie dołączyć do niepodłączonego kanału z ID: %d" -#: musicbot/bot.py:2451 +#: musicbot/bot.py:2454 msgid "Auto joining voice channels:" msgstr "Automatyczne dołączanie kanałów głosowych:" -#: musicbot/bot.py:2459 musicbot/bot.py:2462 +#: musicbot/bot.py:2462 musicbot/bot.py:2465 msgid "Not auto joining any voice channels" msgstr "Brak automatycznego dołączania do żadnych kanałów głosowych" -#: musicbot/bot.py:2475 +#: musicbot/bot.py:2478 #, python-format msgid "Detected missing config options!\n\n" "Problem:\n" @@ -949,340 +954,340 @@ msgstr "Wykryto brakujące opcje konfiguracji!\n\n" " Skopiuj nowe opcje z przykładowego pliku opcji.\n" " lub użyj komendy konfiguracyjnej do ich ustawiania i zapisywania.\n\n" -#: musicbot/bot.py:2504 +#: musicbot/bot.py:2507 #, python-format msgid "Event on_ready has fired %s times" msgstr "Zdarzenie on_ready zostało wywołane %s razy" -#: musicbot/bot.py:2520 +#: musicbot/bot.py:2523 msgid "Getting application info." msgstr "Otrzymywanie informacji o aplikacji." -#: musicbot/bot.py:2538 +#: musicbot/bot.py:2541 msgid "Ensuring data folders exist" msgstr "Upewnij się, że foldery danych istnieją" -#: musicbot/bot.py:2553 +#: musicbot/bot.py:2556 msgid "Validating config" msgstr "Weryfikowanie konfiguracji" -#: musicbot/bot.py:2556 +#: musicbot/bot.py:2559 msgid "Validating permissions config" msgstr "Sprawdzanie poprawności konfiguracji uprawnień" -#: musicbot/bot.py:2566 +#: musicbot/bot.py:2569 msgid "Disabled" msgstr "Wyłączone" -#: musicbot/bot.py:2566 +#: musicbot/bot.py:2569 msgid "Enabled" msgstr "Włączone" -#: musicbot/bot.py:2569 +#: musicbot/bot.py:2572 msgid "Options:" msgstr "Opcje:" -#: musicbot/bot.py:2571 +#: musicbot/bot.py:2574 #, python-format msgid " Command prefix: %s" msgstr " Prefiks polecenia: %s" -#: musicbot/bot.py:2572 +#: musicbot/bot.py:2575 #, python-format msgid " Default volume: %d%%" msgstr " Domyślna głośność: %d%%" -#: musicbot/bot.py:2574 +#: musicbot/bot.py:2577 #, python-format msgid " Skip threshold: %(num)d votes or %(percent).0f%%" msgstr " Próg pominięcia: %(num)d lub %(percent).0f%%" -#: musicbot/bot.py:2581 +#: musicbot/bot.py:2584 #, python-format msgid " Now Playing @mentions: %s" msgstr " Teraz odtwarzane @wzmianki: %s" -#: musicbot/bot.py:2584 +#: musicbot/bot.py:2587 #, python-format msgid " Auto-Summon: %s" msgstr " Automatyczne przywołanie: %s" -#: musicbot/bot.py:2586 +#: musicbot/bot.py:2589 #, python-format msgid " Auto-Playlist: %(status)s (order: %(order)s)" msgstr " Auto-Playlist: %(status)s (kolejność: %(order)s)" -#: musicbot/bot.py:2589 +#: musicbot/bot.py:2592 msgid "random" msgstr "losowy" -#: musicbot/bot.py:2589 +#: musicbot/bot.py:2592 msgid "sequential" msgstr "sekwencyjny" -#: musicbot/bot.py:2594 +#: musicbot/bot.py:2597 #, python-format msgid " Auto-Pause: %s" msgstr " Automatyczne wstrzymanie: %s" -#: musicbot/bot.py:2596 +#: musicbot/bot.py:2599 #, python-format msgid " Delete Messages: %s" msgstr " Usuń wiadomości: %s" -#: musicbot/bot.py:2601 +#: musicbot/bot.py:2604 #, python-format msgid " Delete Invoking: %s" msgstr " Usuń wywołanie: %s" -#: musicbot/bot.py:2605 +#: musicbot/bot.py:2608 #, python-format msgid " Delete Now Playing: %s" msgstr " Usuń teraz odtwarzanie: %s" -#: musicbot/bot.py:2608 +#: musicbot/bot.py:2611 #, python-format msgid " Debug Mode: %s" msgstr " Tryb debugowania: %s" -#: musicbot/bot.py:2610 +#: musicbot/bot.py:2613 #, python-format msgid " Downloaded songs will be %s" msgstr " Pobrane utwory będą %s" -#: musicbot/bot.py:2614 +#: musicbot/bot.py:2617 #, python-format msgid " Delete if unused for %d days" msgstr " Usuń jeśli nieużywane przez %d dni" -#: musicbot/bot.py:2617 +#: musicbot/bot.py:2620 #, python-format msgid " Delete if size exceeds %s" msgstr " Usuń jeśli rozmiar przekracza %s" -#: musicbot/bot.py:2620 +#: musicbot/bot.py:2623 #, python-format msgid " Status message: %s" msgstr " Komunikat statusu: %s" -#: musicbot/bot.py:2622 +#: musicbot/bot.py:2625 #, python-format msgid " Write current songs to file: %s" msgstr " Zapisz bieżące utwory do pliku: %s" -#: musicbot/bot.py:2626 +#: musicbot/bot.py:2629 #, python-format msgid " Author insta-skip: %s" msgstr " Autor: %s" -#: musicbot/bot.py:2629 +#: musicbot/bot.py:2632 #, python-format msgid " Embeds: %s" msgstr " Embeds: %s" -#: musicbot/bot.py:2631 +#: musicbot/bot.py:2634 #, python-format msgid " Spotify integration: %s" msgstr " Integracja ze Spotify: %s" -#: musicbot/bot.py:2634 +#: musicbot/bot.py:2637 #, python-format msgid " Legacy skip: %s" msgstr " Pominięcie starszego: %s" -#: musicbot/bot.py:2636 +#: musicbot/bot.py:2639 #, python-format msgid " Leave non owners: %s" msgstr " Pozostaw nie-właścicielów: %s" -#: musicbot/bot.py:2640 +#: musicbot/bot.py:2643 #, python-format msgid " Leave inactive VC: %s" msgstr " Opuść nieaktywne VC: %s" -#: musicbot/bot.py:2645 +#: musicbot/bot.py:2648 #, python-format msgid " Timeout: %s seconds" msgstr " Przekroczono czas: %s sekund" -#: musicbot/bot.py:2649 +#: musicbot/bot.py:2652 #, python-format msgid " Leave at song end/empty queue: %s" msgstr " Opuść na koniec/pustą kolejkę: %s" -#: musicbot/bot.py:2653 +#: musicbot/bot.py:2656 #, python-format msgid " Leave when player idles: %s" msgstr " Opuść gdy gracz bezczynny: %s" -#: musicbot/bot.py:2657 +#: musicbot/bot.py:2660 #, python-format msgid " Timeout: %d seconds" msgstr " Przekroczono czas: %d sekund" -#: musicbot/bot.py:2658 +#: musicbot/bot.py:2661 #, python-format msgid " Self Deafen: %s" msgstr " Samodzielny Deafen: %s" -#: musicbot/bot.py:2660 +#: musicbot/bot.py:2663 #, python-format msgid " Per-server command prefix: %s" msgstr " Prefiks polecenia dla serwera: %s" -#: musicbot/bot.py:2663 +#: musicbot/bot.py:2666 #, python-format msgid " Search List: %s" msgstr " Lista wyszukiwania: %s" -#: musicbot/bot.py:2665 +#: musicbot/bot.py:2668 #, python-format msgid " Round Robin Queue: %s" msgstr " Runda Kolejka Robina: %s" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "Żądana piosenka `%(subject)s` jest zablokowana przez listę bloków utworu." -#: musicbot/bot.py:2706 +#: musicbot/bot.py:2709 msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." msgstr "Próba obsługi nieaktywności kanału głosowego, ale bot nie jest w głosowaniu..." -#: musicbot/bot.py:2713 +#: musicbot/bot.py:2716 #, python-format msgid "Channel activity already waiting in guild: %s" msgstr "Aktywność kanału już oczekuje w gildii: %s" -#: musicbot/bot.py:2723 +#: musicbot/bot.py:2726 #, python-format msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" msgstr "Aktywność kanału oczekująca %(time)d sekund na opuszczenie kanału: %(channel)s" -#: musicbot/bot.py:2738 +#: musicbot/bot.py:2741 #, python-format msgid "Channel activity timer for %s has expired. Disconnecting." msgstr "Licznik aktywności kanału dla %s wygasł. Rozłączanie." -#: musicbot/bot.py:2744 +#: musicbot/bot.py:2747 #, python-format msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" msgstr "Timer aktywności kanału anulowany dla: %(channel)s w %(guild)s" -#: musicbot/bot.py:2772 +#: musicbot/bot.py:2775 #, python-format msgid "Ignoring player inactivity in auto-joined channel: %s" msgstr "Ignorowanie nieaktywności gracza na kanale auto-dołączenia: %s" -#: musicbot/bot.py:2779 +#: musicbot/bot.py:2782 #, python-format msgid "Player activity timer already waiting in guild: %s" msgstr "Licznik aktywności gracza już czeka w gildii: %s" -#: musicbot/bot.py:2787 +#: musicbot/bot.py:2790 #, python-format msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" msgstr "Licznik aktywności gracza, oczekujący %(time)d sekund na opuszczenie kanału: %(channel)s" -#: musicbot/bot.py:2799 +#: musicbot/bot.py:2802 #, python-format msgid "Player activity timer for %s has expired. Disconnecting." msgstr "Licznik aktywności gracza dla %s wygasł. Rozłączanie." -#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#: musicbot/bot.py:2808 musicbot/bot.py:2813 #, python-format msgid "Player activity timer canceled for: %(channel)s in %(guild)s" msgstr "Timer aktywności gracza anulowany dla: %(channel)s w %(guild)s" -#: musicbot/bot.py:2827 +#: musicbot/bot.py:2830 msgid "Player activity timer is being reset." msgstr "Czas aktywności gracza jest zresetowany." -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "Nie ma takiej komendy" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "Musisz podać użytkownika lub jego numer identyfikacyjny." -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "Podano nieprawidłowe polecenie. Użyj `help blockuser` dla przykładów użycia." -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBot nie mógł znaleźć podanego użytkownika." -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "Właściciel nie może być dodany do listy bloków." -#: musicbot/bot.py:3043 +#: musicbot/bot.py:3046 #, python-format msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" msgstr "Nie dodano użytkownika do listy, już zablokowano: %(id)s/%(name)s" -#: musicbot/bot.py:3052 +#: musicbot/bot.py:3055 #, python-format msgid "Not removing user from block list, not listed: %(id)s/%(name)s" msgstr "Nie usuwa użytkownika z listy bloków, nie wymieniono: %(id)s/%(name)s" -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "Nie można dodać użytkowników, których wymieniłeś, są już dodane." -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "Musisz podać temat utworu, jeśli nie ma aktualnie odtwarzanej piosenki." -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "Podano nieprawidłowe polecenie. Użyj `help blocksong` dla przykładów użycia." -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "Temat%(subject)s` jest już na liście bloków utworu." -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "Temat nie znajduje się na liście bloków piosenek i nie może zostać usunięty." -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "Podano nieprawidłowe polecenie. Użyj `help autoplaylist` dla przykładów użycia." -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "Podany link do utworu jest nieprawidłowy" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "Kolejka jest pusta. Dodaj kilka piosenek poleceniem odtwarzania!" -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "Ta piosenka jest już na autoplaylist." -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "Ta piosenka nie znajduje się jeszcze na liście autoplay." -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "Musisz podać nazwę pliku listy odtwarzania." -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "Nie masz uprawnień do żądania playlist" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "Playlista ma zbyt wiele wpisów (%(songs)s ale max to %(max)s)" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" @@ -1291,612 +1296,625 @@ msgstr "Wpisy listy odtwarzania przekroczą limit twojej kolejki.\n" "Na liście znajdują się %(songs)s i %(queued)s już w kolejce.\n" "Limit wynosi %(max)s dla twojej grupy." -#: musicbot/bot.py:3471 +#: musicbot/bot.py:3474 msgid "Ignoring auto-pause due to network outage." msgstr "Ignorowanie automatycznej pauzy z powodu przerwy w sieci." -#: musicbot/bot.py:3476 +#: musicbot/bot.py:3479 msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." msgstr "MusicPlayer nie ma VoiceClient lub nie ma żadnych danych kanałowych, nie można przetwarzać automatycznego wstrzymania." -#: musicbot/bot.py:3487 +#: musicbot/bot.py:3490 msgid "Already processing auto-pause, ignoring this event." msgstr "Przetwarzanie automatycznej pauzy, ignorując to wydarzenie." -#: musicbot/bot.py:3495 +#: musicbot/bot.py:3498 #, python-format msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" msgstr "%sVoiceClient nie podłączony, oczekiwanie %s sekund na automatyczne wstrzymanie w gildii: %s" -#: musicbot/bot.py:3503 +#: musicbot/bot.py:3506 msgid "Auto-pause waiting was cancelled." msgstr "Automatyczne wstrzymanie oczekiwania zostało anulowane." -#: musicbot/bot.py:3510 +#: musicbot/bot.py:3513 msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." msgstr "Nowy odtwarzacz muzyki jest podłączony, ignorując stare zdarzenie auto-pauzy." -#: musicbot/bot.py:3526 +#: musicbot/bot.py:3529 #, python-format msgid "Playing in an empty voice channel, running auto pause for guild: %s" msgstr "Odtwarzanie na pustym kanale głosowym, uruchamianie automatycznego pauzy dla gildii: %s" -#: musicbot/bot.py:3533 +#: musicbot/bot.py:3536 #, python-format msgid "Previously auto paused player is unpausing for guild: %s" msgstr "Wcześniej auto-wstrzymany gracz jest niezapłacony dla gildii: %s" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "Nie można użyć szukania, jeśli nic nie gra." -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "Nie można użyć szukania bieżącego utworu, ma nieznany czas trwania." -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "Szukanie nie jest obsługiwane dla strumieni." -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "Nie można użyć wyszukiwania bez czasu na umiejscowienie odtwarzania." -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "Nie można przekonwertować `%(input)s` na poprawny czas w sekundach." -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "Nie można szukać `%(input)s` (`%(seconds)s` sekund) w bieżącym utworze o długości `%(progress)s / %(total)s`" -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "Nieprawidłowe polecenie podrzędne. Użyj polecenia `help repeat` dla przykładów użycia." -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "Odtwarzacz nie jest obecnie w pętli." -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "Pozycje piosenek muszą być liczbą całkowitą!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "Dałeś pozycję poza rozmiarem playlisty!" -#: musicbot/bot.py:4025 +#: musicbot/bot.py:4028 msgid "Could not prompt for playlist playback, no message to add reactions to." msgstr "Nie można poprosić o odtwarzanie playlisty, nie ma wiadomości do dodania reakcji." -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "Lokalne odtwarzanie mediów nie jest włączone." -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "Adres URL Spotify jest nieprawidłowy lub nie jest obecnie obsługiwany." -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "Wykryto adres URL Spotify, ale Spotify nie jest włączony." -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "Osiągnąłeś limit utworów w kolejce (%(max)s)" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "Tryb Karaoke jest włączony, spróbuj ponownie, gdy jest wyłączony!" -#: musicbot/bot.py:4187 +#: musicbot/bot.py:4190 msgid "Issue with extract_info(): " msgstr "Problem z extract_info(): " -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "Nie udało się wyodrębnić informacji z powodu błędu:\n" "%(raw_error)s" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "Nie można odtworzyć tego wideo. Spróbuj użyć komendy streamu." -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "Wyszukiwanie YouTube nie zwróciło żadnych wyników dla: %(url)s" -#: musicbot/bot.py:4238 +#: musicbot/bot.py:4241 #, python-format msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" msgstr "Przetworzono %(number)d z %(total)d utworów w %(time).3f sekund w %(time_per).2f s/spiosenka" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "Nie dodano piosenek, wszystkie piosenki przekroczyły maksymalny czas trwania (%(max)s sekund)" -#: musicbot/bot.py:4265 +#: musicbot/bot.py:4268 msgid "Extracted an entry with 'youtube:playlist' as extractor key" msgstr "Wyróżniono wpis z 'youtube:playlist' jako klucz ekstraktora" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "Czas trwania piosenki przekracza limit (%(length)s > %(max)s)" -#: musicbot/bot.py:4295 +#: musicbot/bot.py:4298 #, python-format msgid "Added song(s) at position %s" msgstr "Dodano utwór na pozycji %s" -#: musicbot/bot.py:4332 +#: musicbot/bot.py:4335 #, python-format msgid "Cannot estimate time until playing for position: %d" msgstr "Nie można oszacować czasu do odtworzenia pozycji: %d" -#: musicbot/bot.py:4393 +#: musicbot/bot.py:4396 #, python-format msgid "Failed to get info from the stream request: %s" msgstr "Nie udało się uzyskać informacji z żądania streamu: %s" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Strumieniowanie list odtwarzania nie jest jeszcze obsługiwane." -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Osiągnąłeś limit przedmiotów na liście odtwarzania (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Proszę określić zapytanie wyszukiwania. Aby uzyskać więcej informacji, użyj `help search`." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "Nie możesz wyszukać więcej niż filmy %(max)s" -#: musicbot/bot.py:4834 +#: musicbot/bot.py:4837 #, python-format msgid "Waiting for summon lock: %s" msgstr "Oczekiwanie na zablokowanie wezwania: %s" -#: musicbot/bot.py:4837 +#: musicbot/bot.py:4840 #, python-format msgid "Summon lock acquired for: %s" msgstr "Przywołanie blokady za: %s" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "Nie jesteś połączony z głosowaniem. Spróbuj dołączyć do kanału głosowego!" -#: musicbot/bot.py:4866 +#: musicbot/bot.py:4869 #, python-format msgid "Joining %(guild)s/%(channel)s" msgstr "Dołączanie do %(guild)s/%(channel)s" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot nie może śledzić użytkownika, który nie jest członkiem serwera." -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Gracz nie gra." -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Nic w kolejce do usunięcia!" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "Nic nie znaleziono w kolejce od użytkownika `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "Nie masz uprawnień do usuwania tego wpisu z kolejki.\n" "Musisz być tym, który ma w kolejce do kolejki lub ma natychmiastowe uprawnienia do pominięcia." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Nieprawidłowy numer wpisu. Użyj polecenia kolejki, aby znaleźć pozycje kolejki." -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Nie można pominąć! Gracz nie gra!" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "Nie masz uprawnień, aby wymusić pominięcie piosenki w pętli." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "Nie masz uprawnień do wymuszania pominięcia." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "Nie masz uprawnień, aby pominąć piosenkę w pętli." -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` nie jest poprawną liczbą" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Nieuzasadniona zmiana głośności: %(old_volume)s%(adjustment)s to %(new_volume)s.\n" "Głośność można ustawić tylko od 1 do 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Podano nieracjonalny wolumen: %(volume)s. Podaj wartość między 1 a 100." -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "Brak odtwarzanego utworu, nie można ustawić prędkości.\n" "Użyj komendy konfiguracyjnej, aby ustawić domyślną prędkość odtwarzania." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "Prędkość nie może być zastosowana do mediów strumieniowych." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Musisz podać szybkość, aby ustawić." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "Podana prędkość jest nieprawidłowa. Użyj liczby od 0,5 do 100." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Nieprawidłowa opcja dla polecenia: `%(option)s`" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Nie udało się zapisać aliasów z powodu błędu:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Musisz podać alias i polecenie do aliasu" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Musisz podać nazwę aliasu aby usunąć." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "Alias `%(alias)s` nie istnieje." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "Konfiguracja nie może używać kanału i wzmianek użytkownika w tym samym czasie." -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Nie można przeładować konfiguracji z powodu następującego błędu:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Nie można ustalić nazwy sekcji z nazwy opcji. Proszę podać poprawną sekcję i nazwę opcji." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "Podana opcja jest niejednoznaczna, proszę podać nazwę sekcji." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Musisz podać nazwę sekcji i nazwę opcji dla tej komendy." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "Sekcja `%(section)s` jest niedostępna.\n" "Dostępne sekcje to: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "Opcja `%(option)s` jest niedostępna." -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zapisać na dysku." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Nie udało się zapisać opcji: `%(option)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "Opcja `%(option)s` nie jest edytowalna, wartość nie może być wyświetlana." -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zaktualizować ustawienia." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Musisz podać sekcję, opcję i wartość dla tej podkomendy." -#: musicbot/bot.py:5810 +#: musicbot/bot.py:5813 #, python-format msgid "Doing set with on %(config)s == %(value)s" msgstr "Ustawiono na %(config)s == %(value)s" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "Opcja `%(option)s` nie została zaktualizowana!" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zresetować do domyślnego." -#: musicbot/bot.py:5845 +#: musicbot/bot.py:5848 #, python-format msgid "Resetting %(config)s to default %(value)s" msgstr "Resetowanie %(config)s do domyślnego %(value)s" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "Opcja `%(option)s` nie została zresetowana do domyślnych!" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "Komenda opcji jest przestarzała, zamiast tego użyj komendy config." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Podano nieprawidłową opcję, użyj: info, update, lub wyczyść" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Nie udało się** usunąć pamięci podręcznej, sprawdź logi aby uzyskać więcej informacji..." -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "Argument strony kolejki musi być liczbą całkowitą." -#: musicbot/bot.py:6004 +#: musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "Brak utworów w kolejce! Kolejka czegoś z poleceniem odtwarzania." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "Żądany numer strony jest poza zakresem.\n" "Istnieją ** strony%(total)s**." -#: musicbot/bot.py:6056 +#: musicbot/bot.py:6057 msgid "Skipped the current playlist entry." msgstr "Pominięto bieżący wpis listy odtwarzania." -#: musicbot/bot.py:6099 +#: musicbot/bot.py:6100 msgid "Not enough entries to paginate the queue." msgstr "Za mało wpisów do stronicowania kolejki." -#: musicbot/bot.py:6103 +#: musicbot/bot.py:6104 msgid "Could not post queue message, no message to add reactions to." msgstr "Nie można opublikować wiadomości kolejki, nie ma wiadomości do dodania reakcji." -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Spróbuj ponownie. MusicBot nie mógł nawiązać do wiadomości kolejki.\n" "Jeśli problem będzie się powtarzał, zgłoś błąd." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Nie można użyć czyszczenia na prywatnym kanale DM." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "Podany adres URL nie jest prawidłowym adresem URL." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Nie można wyodrębnić informacji z wprowadzonego adresu\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "To nie wygląda na playlistę." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "Nieprawidłowy identyfikator użytkownika lub nazwa serwera, sprawdź identyfikator i spróbuj ponownie." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Nie można określić użytkownika Discorda. Spróbuj ponownie." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Uprawnienia nie mogą używać jednocześnie wspomnień kanału i użytkownika." -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Nie można przeładować uprawnień z powodu błędu:\n" "%(raw_error)s" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Musisz podać nazwę grupy lub opcji dla tego polecenia." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Musisz podać grupę, opcję i wartość, aby ustawić to polecenie." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "Podpolecenie %(option)s wymaga nazwy grupy i uprawnień." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "Grupa `%(group)s` jest niedostępna.\n" "Dostępne grupy to: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "Uprawnienia `%(option)s` nie są dostępne." -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Nie można dodać grupy `%(group)s` już istnieje." -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Nie można usunąć wbudowanej grupy." -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "Grupa właścicieli nie jest edytowalna." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Nie udało się zapisać grupy: `%(group)s`" -#: musicbot/bot.py:6736 +#: musicbot/bot.py:6737 #, python-format msgid "Doing set on %(option)s with value: %(value)s" msgstr "Ustawiono %(option)s z wartością: %(value)s" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Uprawnienia `%(option)s` nie zostały zaktualizowane!" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Nie udało się zmienić nazwy użytkownika. Czy zmieniłeś nazwy zbyt wiele razy?\n" "Zapamiętaj zmiany nazwy są ograniczone do dwóch razy na godzinę.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Nie udało się zmienić nazwy użytkownika z powodu błędu: \n" "%(raw_error)s" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Nie można zmienić pseudonimu: brak uprawnień." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Nie udało się ustawić pseudonimu z powodu błędu: \n" "%(raw_error)s" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Niestandardowe emoji muszą być z tego serwera, aby użyć jako prefiks." -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Prefiks na serwer nie jest włączony!\n" "Użyj komendy config aby zaktualizować prefiks." -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Ta komenda może być użyta tylko w gildiach." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Podano nieprawidłowe polecenie. Aby uzyskać więcej informacji, użyj polecenia pomocy." + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Nie można ustawić języka na `%(locale)s` nie jest on dostępny." + +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "Musisz podać adres URL lub załączyć plik." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Nie można zmienić awatara z powodu błędu: \n" "%(raw_error)s" -#: musicbot/bot.py:6940 +#: musicbot/bot.py:7014 #, python-format msgid "MusicBot found a %s with no guild! This could be a problem." msgstr "MusicBot znalazł %s bez gildii! To może być problem." -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Obecnie nie jest połączony z serwerem `%(guild)s`" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Podano nieprawidłową opcję, użyj jednej z: miękkiej, pełnej, aktualizacji, uppip lub upgit" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Musisz podać identyfikator lub nazwę." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "Nie znaleziono gildii o ID lub nazwie `%(input)s`" -#: musicbot/bot.py:7172 +#: musicbot/bot.py:7246 #, python-format msgid "Activating debug breakpoint ID: %(uuid)s" msgstr "Aktywuję ID przerwania debugowania: %(uuid)s" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Nie można zaimportować `objgraf`, czy jest zainstalowany?" -#: musicbot/bot.py:7287 +#: musicbot/bot.py:7361 msgid "Debug code ran with eval()." msgstr "Kod debugowania uruchomiony z eval()." -#: musicbot/bot.py:7297 +#: musicbot/bot.py:7371 msgid "Debug code ran with exec()." msgstr "Kod debugowania uruchomiony z exec()." -#: musicbot/bot.py:7300 +#: musicbot/bot.py:7374 msgid "Debug code failed to execute." msgstr "Nie udało się wykonać kodu debugowania." -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1909,275 +1927,275 @@ msgstr "Nie udało się wykonać kodu debugowania:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "Podpolecenie musi być jednym z: %(options)s" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Nie można zlokalizować pliku wykonywalnego git" -#: musicbot/bot.py:7483 +#: musicbot/bot.py:7559 msgid "Failed while checking for updates via git command." msgstr "Nie powiodło się podczas sprawdzania aktualizacji za pomocą polecenia git" -#: musicbot/bot.py:7512 +#: musicbot/bot.py:7588 msgid "Package missing meta in pip report." msgstr "Pakiet brakuje meta w raporcie pip." -#: musicbot/bot.py:7526 +#: musicbot/bot.py:7602 msgid "Failed to get pip update status due to some error." msgstr "Nie udało się uzyskać statusu aktualizacji pipsa z powodu błędu." -#: musicbot/bot.py:7586 +#: musicbot/bot.py:7662 msgid "Got a strange voice client entry." msgstr "Masz dziwne wejście klienta głosowego." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Pliki cookie są już włączone." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Pliki cookie muszą być przesłane, aby je włączyć. (Przeliczanie pliku cookies.)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Nie można włączyć ciasteczek z powodu błędu: %(raw_error)s" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Nie można zmienić nazwy pliku ciasteczek z powodu błędu: %(raw_error)s\n" "ciasteczka tymczasowo wyłączone i zostaną ponownie włączone przy następnym ponownym uruchomieniu." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "Nie znaleziono załączonych przesyłanych plików, spróbuj ponownie podczas przesyłania pliku cookie." -#: musicbot/bot.py:7740 +#: musicbot/bot.py:7816 #, python-format msgid "Could not remove old, disabled cookies file: %(raw_error)s" msgstr "Nie można usunąć starego, wyłączonego pliku ciasteczek: %(raw_error)s" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Błąd podczas pobierania pliku ciasteczek z dysku: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Nie można zapisać ciasteczek na dysku: %(raw_error)s" -#: musicbot/bot.py:7772 +#: musicbot/bot.py:7848 #, python-format msgid "Got a message with no channel, somehow: %s" msgstr "Masz wiadomość bez kanału, jako: %s" -#: musicbot/bot.py:7800 +#: musicbot/bot.py:7876 #, python-format msgid "Ignoring command from myself (%s)" msgstr "Ignorowanie komendy u mnie (%s)" -#: musicbot/bot.py:7808 +#: musicbot/bot.py:7884 #, python-format msgid "Ignoring command from other bot (%s)" msgstr "Ignorowanie polecenia od innego bota (%s)" -#: musicbot/bot.py:7816 +#: musicbot/bot.py:7892 #, python-format msgid "Ignoring command from channel of type: %s" msgstr "Ignorowanie polecenia z kanału typu: %s" -#: musicbot/bot.py:7900 +#: musicbot/bot.py:7976 #, python-format msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" msgstr "Użytkownik na liście bloków: %(id)s/%(name)s wypróbowano polecenie: %(command)s" -#: musicbot/bot.py:7907 +#: musicbot/bot.py:7983 #, python-format msgid "Message from %(id)s/%(name)s: %(message)s" msgstr "Wiadomość od %(id)s/%(name)s: %(message)s" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Ta komenda nie jest dozwolona dla grupy uprawnień: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Ta komenda wymaga bycia na kanale głosowym." -#: musicbot/bot.py:8060 +#: musicbot/bot.py:8136 #, python-format msgid "Invalid command usage, missing values for params: %(params)r" msgstr "Nieprawidłowe użycie polecenia, brakujące wartości dla parametrów: %(params)r" -#: musicbot/bot.py:8102 +#: musicbot/bot.py:8178 #, python-format msgid "Error in %(command)s: %(err_name)s: %(err_text)s" msgstr "Błąd w %(command)s: %(err_name)s: %(err_text)s" -#: musicbot/bot.py:8126 +#: musicbot/bot.py:8202 #, python-format msgid "Exception while handling command: %(command)s" msgstr "Wyjątek podczas obsługi polecenia: %(command)s" -#: musicbot/bot.py:8158 +#: musicbot/bot.py:8234 #, python-format msgid "Cannot generate help for missing command: %s" msgstr "Nie można wygenerować pomocy dla brakującej komendy: %s" -#: musicbot/bot.py:8162 +#: musicbot/bot.py:8238 #, python-format msgid "Missing help data for command: %s" msgstr "Brak danych pomocy dla komendy: %s" -#: musicbot/bot.py:8279 +#: musicbot/bot.py:8355 #, python-format msgid "Leaving voice channel %s in %s due to inactivity." msgstr "Opuszczanie kanału głosowego %s w %s z powodu braku aktywności." -#: musicbot/bot.py:8288 +#: musicbot/bot.py:8364 msgid "MusicBot has become connected." msgstr "MusicBot został połączony." -#: musicbot/bot.py:8292 +#: musicbot/bot.py:8368 msgid "MusicBot has become disconnected." msgstr "MusicBot został rozłączony." -#: musicbot/bot.py:8297 +#: musicbot/bot.py:8373 #, python-format msgid "Got a Socket Event: %s" msgstr "Masz wydarzenie z gniazdem: %s" -#: musicbot/bot.py:8313 +#: musicbot/bot.py:8389 msgid "VoiceState updated before on_ready finished" msgstr "Stan głosowy zaktualizowany przed na_gotowością" -#: musicbot/bot.py:8326 +#: musicbot/bot.py:8402 #, python-format msgid "Ignoring %s in %s as it is a bound voice channel." msgstr "Ignorowanie %s w %s jako kanał głosowy połączony." -#: musicbot/bot.py:8335 +#: musicbot/bot.py:8411 #, python-format msgid "%s has been detected as empty. Handling timeouts." msgstr "%s został wykryty jako pusty. Upłynął limit czasu." -#: musicbot/bot.py:8346 +#: musicbot/bot.py:8422 #, python-format msgid "A user joined %s, cancelling timer." msgstr "Użytkownik dołączył do %s, anulował czas." -#: musicbot/bot.py:8359 +#: musicbot/bot.py:8435 #, python-format msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." msgstr "Bot został przeniesiony, a kanał głosowy %s jest pusty. Upłynął limit czasu." -#: musicbot/bot.py:8368 +#: musicbot/bot.py:8444 #, python-format msgid "The bot got moved and the voice channel %s is not empty." msgstr "Bot został przeniesiony, a kanał głosowy %s nie jest pusty." -#: musicbot/bot.py:8402 +#: musicbot/bot.py:8493 #, python-format msgid "No longer following user %s" msgstr "Nie obserwuj już użytkownika %s" -#: musicbot/bot.py:8424 +#: musicbot/bot.py:8515 #, python-format msgid "Following user `%(user)s` to channel: %(channel)s" msgstr "Obserwowany użytkownik `%(user)s` do kanału: %(channel)s" -#: musicbot/bot.py:8444 +#: musicbot/bot.py:8535 msgid "VoiceState disconnect before.channel is None." msgstr "Brak statusu głosowego." -#: musicbot/bot.py:8471 +#: musicbot/bot.py:8562 #, python-format msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" msgstr "Odłączono od głosu przez Discorda API w: %(guild)s/%(channel)s (Koda: %(code)s) [S:%(state)s]" -#: musicbot/bot.py:8493 +#: musicbot/bot.py:8584 #, python-format msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" msgstr "Nie można użyć kanału automatycznego dołączenia z typem: %(type)s w gildii: %(guild)s" -#: musicbot/bot.py:8500 +#: musicbot/bot.py:8591 #, python-format msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" msgstr "Nie można znaleźć kanału automatycznego dołączenia, czy został usunięty? Gildia: %s" -#: musicbot/bot.py:8506 +#: musicbot/bot.py:8597 #, python-format msgid "Reconnecting to auto-joined guild on channel: %s" msgstr "Ponowne łączenie z automatycznie dołączoną gildią na kanale: %s" -#: musicbot/bot.py:8519 +#: musicbot/bot.py:8610 #, python-format msgid "Cannot auto join channel: %s" msgstr "Nie można automatycznie dołączyć do kanału: %s" -#: musicbot/bot.py:8535 +#: musicbot/bot.py:8626 #, python-format msgid "Bot has been added to guild: %s" msgstr "Bot został dodany do gildii: %s" -#: musicbot/bot.py:8547 +#: musicbot/bot.py:8638 #, python-format msgid "Left guild '%s' due to bot owner not found." msgstr "Lewa gildia '%s' z powodu nieznalezionego właściciela bota." -#: musicbot/bot.py:8561 +#: musicbot/bot.py:8652 #, python-format msgid "Creating data folder for guild %s" msgstr "Tworzenie folderu danych dla gildii %s" -#: musicbot/bot.py:8569 +#: musicbot/bot.py:8660 #, python-format msgid "Bot has been removed from guild: %s" msgstr "Bot został usunięty z gildii: %s" -#: musicbot/bot.py:8570 +#: musicbot/bot.py:8661 msgid "Updated guild list:" msgstr "Zaktualizowano listę gildii:" -#: musicbot/bot.py:8585 +#: musicbot/bot.py:8676 #, python-format msgid "Guild \"%s\" has become available." msgstr "Gildia \"%s\" stała się dostępna." -#: musicbot/bot.py:8591 +#: musicbot/bot.py:8682 #, python-format msgid "Resuming player in \"%s\" due to availability." msgstr "Wznawianie gracza w \"%s\" ze względu na dostępność." -#: musicbot/bot.py:8608 +#: musicbot/bot.py:8699 #, python-format msgid "Guild \"%s\" has become unavailable." msgstr "Gildia \"%s\" stała się niedostępna." -#: musicbot/bot.py:8614 +#: musicbot/bot.py:8705 #, python-format msgid "Pausing player in \"%s\" due to unavailability." msgstr "Zatrzymanie gracza w \"%s\" z powodu niedostępności." -#: musicbot/bot.py:8630 +#: musicbot/bot.py:8721 #, python-format msgid "Guild update for: %s" msgstr "Aktualizacja Gildii dla: %s" -#: musicbot/bot.py:8636 +#: musicbot/bot.py:8727 #, python-format msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" msgstr "Atrybut gildii %(attr)s jest teraz: %(new)s -- Was: %(old)s" -#: musicbot/bot.py:8668 +#: musicbot/bot.py:8759 #, python-format msgid "Channel update for: %(channel)s -- %(changes)s" msgstr "Aktualizacja kanału dla: %(channel)s -- %(changes)s" @@ -2192,7 +2210,7 @@ msgstr "Tworzenie %s" msgid "Loading config from: %s" msgstr "Ładowanie konfiguracji z: %s" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2215,16 +2233,16 @@ msgstr "Błąd podczas odczytywania konfiguracji.\n\n" " Każda sekcja musi mieć co najmniej jedną opcję.\n" " Użyj opcji przykładowych jako szablonu lub skopiuj je z repozytorium." -#: musicbot/config.py:1113 +#: musicbot/config.py:1112 #, python-format msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." msgstr "Nie można przechowywać więcej niż %s plików dziennika. Opcja LogsMaxKept będzie ograniczona." -#: musicbot/config.py:1121 +#: musicbot/config.py:1120 msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." msgstr "Opcja konfiguracji LogsDateFormat jest pusta i spowoduje to przerwanie rotacji pliku dziennika. Użyj domyślnego." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2236,11 +2254,11 @@ msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" "Rozwiązanie:\n" " Upewnij się, że ścieżka, którą skonfigurowałeś jest ścieżką do folderu / katalogu." -#: musicbot/config.py:1149 +#: musicbot/config.py:1148 msgid "An exception was thrown while validating AudioCachePath." msgstr "Podczas sprawdzania poprawności AudioCachePath, wystąpił wyjątek." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2255,12 +2273,12 @@ msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" "Rozwiązanie:\n" " Sprawdź, czy ustawienia są poprawne, dostępna ścieżka katalogu." -#: musicbot/config.py:1165 +#: musicbot/config.py:1164 #, python-format msgid "Audio Cache will be stored in: %s" msgstr "Pamięć podręczna audio będzie przechowywana w: %s" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2273,16 +2291,16 @@ msgstr "Błąd podczas odczytywania opcji konfiguracji.\n\n" "Rozwiązanie:\n" " Ustaw opcję konfiguracji tokenu lub ustaw zmienną środowiskową %(env_var)s z tokenem aplikacji." -#: musicbot/config.py:1197 +#: musicbot/config.py:1196 msgid "StatusMessage config option is too long, it will be limited to 128 characters." msgstr "Opcja StatusMessage jest zbyt długa, będzie ograniczona do 128 znaków." -#: musicbot/config.py:1206 +#: musicbot/config.py:1205 #, python-format msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." msgstr "Domyślna prędkość odtwarzania musi wynosić od 0,5 do 100.0. Wartość opcji %.3f będzie ograniczona." -#: musicbot/config.py:1216 +#: musicbot/config.py:1215 msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "Cookies are not recommended, may not be supported, and may totally break.\n" "Copying cookies from your web-browser risks exposing personal data and \n" @@ -2294,15 +2312,15 @@ msgstr "Wykryto plik TXT ciasteczka. MusicBot przekaże je do yt-dlp.\n" "w najlepszym przypadku może doprowadzić do zablokowania Twoich kont.\n\n" "Zostałeś ostrzeżony! Powodzenia! \\U0001F596\n" -#: musicbot/config.py:1234 +#: musicbot/config.py:1233 msgid "Validating options with service data..." msgstr "Sprawdzanie opcji z danymi usługi..." -#: musicbot/config.py:1240 +#: musicbot/config.py:1239 msgid "Acquired owner ID via API" msgstr "Nabyty identyfikator właściciela przez API" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2316,11 +2334,11 @@ msgstr "Błąd podczas pobierania \"ID właściciela\".\n\n" "Rozwiązanie:\n" " ręcznie ustaw opcję 'WłaścicielID' lub spróbuj ponownie później." -#: musicbot/config.py:1256 +#: musicbot/config.py:1255 msgid "MusicBot does not have a user instance, cannot proceed." msgstr "MusicBot nie ma instancji użytkownika, nie można kontynuować." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2332,30 +2350,30 @@ msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" "Rozwiązanie:\n" " Nie używaj Bot ani App ID w polu 'OwnerID'." -#: musicbot/config.py:1286 +#: musicbot/config.py:1285 msgid "Config options file not found. Checking for alternatives..." msgstr "Nie znaleziono pliku opcji konfiguracyjnych. Sprawdzanie alternatyw..." -#: musicbot/config.py:1298 +#: musicbot/config.py:1297 #, python-format msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." msgstr "Zmiana nazwy %(ini_file)s na %(option_file)s, prawdopodobnie powinieneś włączyć rozszerzenia plików." -#: musicbot/config.py:1306 +#: musicbot/config.py:1305 #, python-format msgid "Copying existing example options file: %(example_file)s" msgstr "Kopiowanie istniejącego przykładowego pliku opcji: %(example_file)s" -#: musicbot/config.py:1315 +#: musicbot/config.py:1314 #, python-format msgid "Generated a new %(example_file)s and copied it to %(option_file)s" msgstr "Wygenerował nowy %(example_file)s i skopiował go do %(option_file)s" -#: musicbot/config.py:1323 +#: musicbot/config.py:1322 msgid "Something went wrong while trying to find a config option file." msgstr "Coś poszło nie tak podczas próby znalezienia pliku opcji konfiguracji." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2370,7 +2388,7 @@ msgstr "Błąd lokalizacji konfiguracji.\n\n" "Rozwiązanie:\n" " Zweryfikuj folder konfiguracyjny i pliki istnieją i mogą być odczytane przez MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2387,43 +2405,43 @@ msgstr "Błąd ładowania konfiguracji.\n\n" " Upewnij się, że plik jest dostępny i nie ma błędu.\n" " Skopiuj przykładowy plik z repozytorium, jeśli wszystko inne nie powiedzie się." -#: musicbot/config.py:1369 +#: musicbot/config.py:1368 msgid "Dev Bug! Config option has getter that is not available." msgstr "Dev Bug! Opcja konfiguracji ma getter, który jest niedostępny." -#: musicbot/config.py:1374 +#: musicbot/config.py:1373 msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." msgstr "Błąd dev Bug! Opcja konfiguracji ma nieprawidłowy typ, getter i domyślny musi być tym samym typem." -#: musicbot/config.py:1394 +#: musicbot/config.py:1393 msgid "Option was missing previously." msgstr "Wcześniej brakowało wariantu." -#: musicbot/config.py:1409 +#: musicbot/config.py:1408 #, python-format msgid "Config section not in parsed config! Missing: %s" msgstr "Sekcja konfiguracji nie jest w pliku konfiguracyjnym! Brakuje: %s" -#: musicbot/config.py:1414 +#: musicbot/config.py:1413 #, python-format msgid "Saved config option: %(config)s = %(value)s" msgstr "Zapisana opcja konfiguracji: %(config)s = %(value)s" -#: musicbot/config.py:1427 +#: musicbot/config.py:1426 #, python-format msgid "Failed to save config: %s" msgstr "Nie udało się zapisać konfiguracji: %s" -#: musicbot/config.py:1932 +#: musicbot/config.py:1931 msgid "Option names are not unique between INI sections! Resolver is disabled." msgstr "Nazwy opcji nie są unikalne pomiędzy sekcjami INI! Rozpoznawanie jest wyłączone." -#: musicbot/config.py:2094 musicbot/permissions.py:859 +#: musicbot/config.py:2099 musicbot/permissions.py:859 #, python-format msgid "Failed to save default INI file at: %s" msgstr "Nie udało się zapisać domyślnego pliku INI na: %s" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2436,7 +2454,7 @@ msgstr "Błąd ładowania wartości konfiguracji.\n\n" "Rozwiązanie:\n" " Ustaw %(option)s na numeryczny identyfikator lub ustaw go na `auto` lub `0` dla automatycznego powiązania właściciela." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2449,7 +2467,7 @@ msgstr "Błąd ładowania wartości konfiguracji.\n\n" "Rozwiązanie:\n" " Sprawdź ustawienia ścieżki i upewnij się, że plik istnieje i jest dostępny dla MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2462,60 +2480,60 @@ msgstr "Błąd ładowania wartości konfiguracji.\n\n" "Rozwiązanie:\n" " Upewnij się, że wszystkie ID są liczbowe i oddzielone tylko spacjami lub przecinkami." -#: musicbot/config.py:2283 +#: musicbot/config.py:2288 #, python-format msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" msgstr "Podano nieprawidłową opcję DebugLevel \"%(value)s\", spadając z powrotem do poziomu: %(fallback)s" -#: musicbot/config.py:2304 +#: musicbot/config.py:2309 #, python-format msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." msgstr "Opcja [%(section)s] > %(option)s ma nieprawidłową wartość konfiguracji '%(value)s' zamiast domyślnej." -#: musicbot/config.py:2353 +#: musicbot/config.py:2358 #, python-format msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." msgstr "Opcja [%(section)s] > %(option)s ma wartość większą niż 100 %% (%(value)s) i zamiast tego zostanie ustawiona na %(fallback)s." -#: musicbot/config.py:2437 +#: musicbot/config.py:2442 #, python-format msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" msgstr "Zmiana nazwy pliku INI [%(old_s)s] > %(old_o)s na [%(new_s)s] > %(new_o)s" -#: musicbot/config.py:2493 +#: musicbot/config.py:2498 msgid "Upgrading config file with renamed options..." msgstr "Aktualizowanie pliku konfiguracyjnego ze zmienionymi nazwami opcji..." -#: musicbot/config.py:2510 +#: musicbot/config.py:2515 msgid "Failed to upgrade config. You'll need to upgrade it manually." msgstr "Nie udało się zaktualizować konfiguracji. Musisz uaktualnić ją ręcznie." -#: musicbot/config.py:2551 +#: musicbot/config.py:2556 #, python-format msgid "Block list file not found: %s" msgstr "Nie znaleziono pliku listy bloków: %s" -#: musicbot/config.py:2572 +#: musicbot/config.py:2577 #, python-format msgid "Could not load block list from file: %s" msgstr "Nie można załadować listy bloków z pliku: %s" -#: musicbot/config.py:2610 musicbot/config.py:2643 +#: musicbot/config.py:2615 musicbot/config.py:2648 #, python-format msgid "Could not update the block list file: %s" msgstr "Nie można zaktualizować pliku listy bloków: %s" -#: musicbot/config.py:2670 +#: musicbot/config.py:2675 #, python-format msgid "Loaded User Block list with %s entries." msgstr "Załadowano listę bloków użytkowników z wpisami %s." -#: musicbot/config.py:2681 +#: musicbot/config.py:2686 #, python-format msgid "We found a legacy blacklist file, it will be renamed to: %s" msgstr "Znaleźliśmy starszy plik czarnej listy, zostanie on zmieniony na: %s" -#: musicbot/config.py:2727 +#: musicbot/config.py:2732 #, python-format msgid "Loaded a Song Block list with %s entries." msgstr "Załadowano listę bloków piosenek z wpisami %s." @@ -2539,20 +2557,20 @@ msgstr "Ładowanie danych gildii dla gildii z ID: %(id)s/%(name)s" msgid "An OS error prevented reading guild data file: %s" msgstr "Błąd systemu operacyjnego uniemożliwił odczyt pliku danych gildii: %s" -#: musicbot/constructs.py:255 +#: musicbot/constructs.py:257 #, python-format msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" msgstr "Gildia %(id)s/%(name)s ma niestandardowy prefiks poleceń: %(prefix)s" -#: musicbot/constructs.py:275 +#: musicbot/constructs.py:277 msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" msgstr "Nie można zapisać danych dla gildii o ID 0. Jest to prawdopodobnie błąd w kodzie!" -#: musicbot/constructs.py:298 +#: musicbot/constructs.py:301 msgid "Could not save guild specific data due to OS Error." msgstr "Nie można zapisać danych specyficznych dla gildii z powodu błędu systemu operacyjnego." -#: musicbot/constructs.py:301 +#: musicbot/constructs.py:304 msgid "Failed to serialize guild specific data due to invalid data." msgstr "Nie udało się zserializować danych specyficznych dla gildii z powodu nieprawidłowych danych." @@ -3025,10 +3043,10 @@ msgstr "Błąd Argumentu Lang: %s" msgid "Failed to load log translations for any of: [%s] in: %s" msgstr "Nie udało się załadować tłumaczenia dziennika dla dowolnego z: [%s] w: %s" -#: musicbot/i18n.py:333 +#: musicbot/i18n.py:340 #, python-format -msgid "Failed to load discord translations for any of: [%s] in: %s" -msgstr "Nie udało się załadować tłumaczeń dysku dla dowolnego z: [%s] w: %s" +msgid "Failed to load discord translations for any of: [%s] guild: %s in: %s" +msgstr "Nie udało się załadować tłumaczenia dysku dla dowolnego z: [%s] gildii: %s w: %s" #: musicbot/json.py:14 #, python-format diff --git a/i18n/pl_PL/LC_MESSAGES/musicbot_messages.mo b/i18n/pl_PL/LC_MESSAGES/musicbot_messages.mo index f6aedfd1f6f16c984d2098f599708ea429103922..466c8da0b5a5a1d8813f815d11c2a36e15141dc1 100644 GIT binary patch delta 10531 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

    DSMN=Hoa0++S?*-} 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 delta 9452 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 diff --git a/i18n/pl_PL/LC_MESSAGES/musicbot_messages.po b/i18n/pl_PL/LC_MESSAGES/musicbot_messages.po index 9ea2e2b7d..2d1aa2c12 100644 --- a/i18n/pl_PL/LC_MESSAGES/musicbot_messages.po +++ b/i18n/pl_PL/LC_MESSAGES/musicbot_messages.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 18:12\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:39\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -32,78 +32,78 @@ msgstr "Błąd podczas ładowania aliasów.\n\n" " Zastąp plik konfiguracyjny aliasu lub skopiuj go z\n" " https://github.com/Just-Some-Bots/MusicBot/" -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "Użytkownik nie jest włączony głosowo i nie może użyć tego polecenia." -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "Nie możesz użyć tej komendy gdy nie jest na kanale głosowym." -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "MusicBot nie ma uprawnień do połączenia na kanale: `%(name)s`" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "MusicBot nie ma uprawnień do mówienia na kanale: `%(name)s`" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "MusicBot nie mógł połączyć się z kanałem.\n" "Spróbuj ponownie później lub zrestartuj bota jeśli to będzie kontynuowane." -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "Połączenie MusicBot z głosowaniem zostało anulowane. To jest dziwne. Może zrestartować?" -#: musicbot/bot.py:840 +#: musicbot/bot.py:843 msgid "MusicBot does not have permission to speak." msgstr "MusicBot nie ma uprawnień do mówienia." -#: musicbot/bot.py:844 +#: musicbot/bot.py:847 msgid "MusicBot could not request to speak." msgstr "MusicBot nie mógł prosić o głos." -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "Bot nie jest na kanale głosowym.\n" "Użyj polecenia przywołania, aby przenieść bota do kanału głosowego." -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "Coś jest nie tak. Nie otrzymaliśmy VoiceClient." -#: musicbot/bot.py:1084 +#: musicbot/bot.py:1087 #, python-format msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" msgstr "Pominięcie następnej piosenki `%(title)s` jako żądający `%(user)s` nie jest w głosowaniu!" -#: musicbot/bot.py:1102 +#: musicbot/bot.py:1105 #, python-format msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" msgstr "%(mention)s - Twoja piosenka `%(title)s` gra teraz w %(channel)s!" -#: musicbot/bot.py:1111 +#: musicbot/bot.py:1114 #, python-format msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" msgstr "Teraz odtwarzane w %(channel)s: `%(title)s` dodane przez %(author)s!" -#: musicbot/bot.py:1122 +#: musicbot/bot.py:1125 #, python-format msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" msgstr "Teraz odtwarzane automatycznie dodany wpis `%(title)s` w %(channel)s!" -#: musicbot/bot.py:1333 +#: musicbot/bot.py:1336 #, python-format msgid "Skipping songs added by %(user)s as they are not in voice!" msgstr "Pominięto piosenki dodane przez %(user)s , ponieważ nie są one w głosowaniu!" -#: musicbot/bot.py:1555 +#: musicbot/bot.py:1558 #, python-format msgid "Playback failed for song `%(song)s` due to an error:\n" "```\n" @@ -112,11 +112,11 @@ msgstr "Odtwarzanie nie powiodło się dla utworu `%(song)s` z powodu błędu:\n "```\n" "%(error)s```" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "[Dev Bug] Próba wysłania nieprawidłowego obiektu odpowiedzi." -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -132,35 +132,35 @@ msgstr "Nieudane logowanie API Discorda!\n\n" " Upewnij się, że masz ustawiony odpowiedni token w konfiguracji.\n" " Sprawdź status API na oficjalnej stronie: discordstatus.com" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "Żądana piosenka `%(subject)s` jest zablokowana przez listę bloków utworu." -#: musicbot/bot.py:2831 +#: musicbot/bot.py:2834 msgid "Reset the auto playlist queue by copying it back into player memory.\n" "This command will be removed in a future version, replaced by the autoplaylist command(s)." msgstr "Zresetuj kolejkę auto playlisty, kopiując ją z powrotem do pamięci gracza.\n" "Ta komenda zostanie usunięta w przyszłej wersji, zastąpiona poleceniem (poleceniami) autoplaylisty." -#: musicbot/bot.py:2846 +#: musicbot/bot.py:2849 msgid "\\N{OK HAND SIGN}" msgstr "\\N{OK HAND SIGN}" -#: musicbot/bot.py:2853 +#: musicbot/bot.py:2856 msgid "Show usage and description of a command, or list all available commands.\n" msgstr "Pokaż użycie i opis polecenia lub wyświetl listę wszystkich dostępnych poleceń.\n" -#: musicbot/bot.py:2888 +#: musicbot/bot.py:2891 msgid "**Aliases for this command:**\n" msgstr "**Aliasy dla tej komendy:**\n" -#: musicbot/bot.py:2891 +#: musicbot/bot.py:2894 #, python-format msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" msgstr "`%(alias)s` alias `%(command)s %(args)s`\n" -#: musicbot/bot.py:2924 +#: musicbot/bot.py:2927 #, python-format msgid "**Alias of command:**\n" " `%(command)s`\n" @@ -168,7 +168,7 @@ msgstr "**Alias polecenia:**\n" " `%(command)s`\n" #. TRANSLATORS: template string for command-specific help output. -#: musicbot/bot.py:2931 +#: musicbot/bot.py:2934 #, python-format msgid "%(is_alias)s\n" "%(docs)s\n" @@ -177,18 +177,18 @@ msgstr "%(is_alias)s\n" "%(docs)s\n" "%(alias_list)s" -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "Nie ma takiej komendy" -#: musicbot/bot.py:2959 +#: musicbot/bot.py:2962 #, python-format msgid "The list above shows only commands permitted for your use.\n" "For a list of all commands, run: %(example_all)s\n" msgstr "Powyższa lista pokazuje tylko polecenia dozwolone do użycia.\n" "Aby wyświetlić listę wszystkich poleceń, uruchom %(example_all)s\n" -#: musicbot/bot.py:2965 +#: musicbot/bot.py:2968 #, python-format msgid "**Commands by name:** *(without prefix)*\n" "```\n" @@ -205,74 +205,74 @@ msgstr "**Polecenia według nazwy:** *(bez prefiksu)*\n" "Aby uzyskać pomoc z określonym poleceniem, bieg: %(example_command)s\n" "%(all_note)s" -#: musicbot/bot.py:2984 +#: musicbot/bot.py:2987 msgid " Block a mentioned user." msgstr " Zablokuj wspomnianego użytkownika." -#: musicbot/bot.py:2987 +#: musicbot/bot.py:2990 msgid " Unblock a mentioned user." msgstr " Odblokuj wspomnianego użytkownika." -#: musicbot/bot.py:2990 +#: musicbot/bot.py:2993 msgid " Show the block status of a mentioned user." msgstr " Pokaż status bloku wspomnianego użytkownika." -#: musicbot/bot.py:2994 +#: musicbot/bot.py:2997 msgid "Manage the users in the user block list.\n" "Blocked users are forbidden from using all bot commands.\n" msgstr "Zarządzaj użytkownikami na liście zablokowanych użytkowników.\n" "Zablokowanym użytkownikom zabrania się używania wszystkich poleceń bota.\n" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "Musisz podać użytkownika lub jego numer identyfikacyjny." -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "Podano nieprawidłowe polecenie. Użyj `help blockuser` dla przykładów użycia." -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBot nie mógł znaleźć podanego użytkownika." -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "Właściciel nie może być dodany do listy bloków." -#: musicbot/bot.py:3059 +#: musicbot/bot.py:3062 msgid "User block list is currently enabled." msgstr "Lista bloków użytkowników jest obecnie włączona." -#: musicbot/bot.py:3061 +#: musicbot/bot.py:3064 msgid "User block list is currently disabled." msgstr "Lista bloków użytkowników jest obecnie wyłączona." -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "Nie można dodać użytkowników, których wymieniłeś, są już dodane." -#: musicbot/bot.py:3078 +#: musicbot/bot.py:3081 #, python-format msgid "%(number)s user(s) have been added to the block list.\n" "%(status)s" msgstr "%(number)s użytkownicy zostali dodani do listy bloków.\n" "%(status)s" -#: musicbot/bot.py:3089 +#: musicbot/bot.py:3092 msgid "None of those users are in the blacklist." msgstr "Żaden z tych użytkowników nie jest na czarnej liście." -#: musicbot/bot.py:3094 +#: musicbot/bot.py:3097 #, python-format msgid "User: `%(user)s` is not blocked.\n" msgstr "Użytkownik: `%(user)s` nie jest zablokowany.\n" -#: musicbot/bot.py:3096 +#: musicbot/bot.py:3099 #, python-format msgid "User: `%(user)s` is blocked.\n" msgstr "Użytkownik: `%(user)s` jest zablokowany.\n" -#: musicbot/bot.py:3099 +#: musicbot/bot.py:3102 #, python-format msgid "**Block list status:**\n" "%(status)s\n" @@ -281,14 +281,14 @@ msgstr "**Status listy bloków:**\n" "%(status)s\n" "%(users)s" -#: musicbot/bot.py:3109 +#: musicbot/bot.py:3112 #, python-format msgid "%(number)s user(s) have been removed from the block list.\n" "%(status)s" msgstr "Użytkownicy %(number)s zostali usunięci z listy bloków.\n" "%(status)s" -#: musicbot/bot.py:3118 +#: musicbot/bot.py:3121 msgid "Manage a block list applied to song requests and extracted song data.\n" "A subject may be a song URL or a word or phrase found in the track title.\n" "If subject is omitted, any currently playing track URL will be added instead.\n\n" @@ -300,162 +300,162 @@ msgstr "Zarządzaj listą bloków zastosowaną do żądań piosenki i wyodrębni "Lista bloków piosenek pasuje luźnie, ale ma wielkość liter.\n" "To oznacza dodanie 'Pie' będzie pasować do 'wiśni Piechotnej', ale nie 'piekrego' w kontrolach.\n" -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "Musisz podać temat utworu, jeśli nie ma aktualnie odtwarzanej piosenki." -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "Podano nieprawidłowe polecenie. Użyj `help blocksong` dla przykładów użycia." -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "Temat%(subject)s` jest już na liście bloków utworu." -#: musicbot/bot.py:3187 +#: musicbot/bot.py:3190 #, python-format msgid "Added subject `%(subject)s` to the song block list.\n" "%(status)s" msgstr "Dodano temat `%(subject)s` do listy bloków utworu.\n" "%(status)s" -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "Temat nie znajduje się na liście bloków piosenek i nie może zostać usunięty." -#: musicbot/bot.py:3204 +#: musicbot/bot.py:3207 #, python-format msgid "Subject `%(subject)s` has been removed from the block list.\n" "%(status)s" msgstr "Temat `%(subject)s` został usunięty z listy bloków.\n" "%(status)s" -#: musicbot/bot.py:3214 +#: musicbot/bot.py:3217 msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" msgstr " Dodaje lub usuwa określoną piosenkę lub aktualnie odtwarzany utwór do/z bieżącej listy odtwarzania.\n" -#: musicbot/bot.py:3217 +#: musicbot/bot.py:3220 msgid " Adds the entire queue to the guilds playlist.\n" msgstr " Dodaje całą kolejkę do listy odtwarzania gildii.\n" -#: musicbot/bot.py:3220 +#: musicbot/bot.py:3223 msgid " Show a list of existing playlist files.\n" msgstr " Pokaż listę istniejących plików listy odtwarzania.\n" -#: musicbot/bot.py:3223 +#: musicbot/bot.py:3226 msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" msgstr " Zresetuj kolejkę auto playlisty, uruchom ponownie przy pierwszym utworze, chyba że losowo wybrano.\n" -#: musicbot/bot.py:3226 +#: musicbot/bot.py:3229 msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" msgstr " Ustaw listę odtwarzania jako domyślną dla tej gildii i odśwież auto playlistę gildii.\n" -#: musicbot/bot.py:3229 +#: musicbot/bot.py:3232 msgid "Manage auto playlist files and per-guild settings." msgstr "Zarządzaj plikami automatycznej listy odtwarzania i ustawieniami gildii." -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "Podano nieprawidłowe polecenie. Użyj `help autoplaylist` dla przykładów użycia." -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "Podany link do utworu jest nieprawidłowy" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "Kolejka jest pusta. Dodaj kilka piosenek poleceniem odtwarzania!" -#: musicbot/bot.py:3273 +#: musicbot/bot.py:3276 msgid "All songs in the queue are already in the autoplaylist." msgstr "Wszystkie utwory w kolejce są już w autoplaylist." -#: musicbot/bot.py:3277 +#: musicbot/bot.py:3280 #, python-format msgid "Added %(number)d songs to the autoplaylist." msgstr "Dodano utwory %(number)d do listy autoplay." -#: musicbot/bot.py:3287 +#: musicbot/bot.py:3290 #, python-format msgid "Added `%(url)s` to the autoplaylist." msgstr "Dodano `%(url)s` do autoplaylisty." -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "Ta piosenka jest już na autoplaylist." -#: musicbot/bot.py:3304 +#: musicbot/bot.py:3307 #, python-format msgid "Removed `%(url)s` from the autoplaylist." msgstr "Usunięto `%(url)s` z listy autoplay." -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "Ta piosenka nie znajduje się jeszcze na liście autoplay." -#: musicbot/bot.py:3316 +#: musicbot/bot.py:3319 #, python-format msgid "Loaded a fresh copy of the playlist: `%(file)s`" msgstr "Załadowano nową kopię playlisty: `%(file)s`" -#: musicbot/bot.py:3327 +#: musicbot/bot.py:3330 #, python-format msgid "**Available Playlists:**\n" "%(names)s" msgstr "**Dostępne playlisty:**\n" "%(names)s" -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "Musisz podać nazwę pliku listy odtwarzania." -#: musicbot/bot.py:3357 +#: musicbot/bot.py:3360 msgid "\n" "This playlist is new, you must add songs to save it to disk!" msgstr "\n" "Ta lista odtwarzania jest nowa, musisz dodać utwory, aby zapisać je na dysku!" -#: musicbot/bot.py:3362 +#: musicbot/bot.py:3365 #, python-format msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" msgstr "Lista odtwarzania dla tego serwera została zaktualizowana do: `%(name)s`%(note)s" -#: musicbot/bot.py:3373 +#: musicbot/bot.py:3376 msgid "Generate an invite link that can be used to add this bot to another server." msgstr "Wygeneruj link z zaproszeniem, który może być użyty do dodania tego bota do innego serwera." -#: musicbot/bot.py:3385 +#: musicbot/bot.py:3388 #, python-format msgid "Click here to add me to a discord server:\n" "%(url)s" msgstr "Kliknij tutaj, aby dodać mnie do serwera Discord:\n" "%(url)s" -#: musicbot/bot.py:3391 +#: musicbot/bot.py:3394 msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" "Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" msgstr "Włącz lub wyłącz tryb karaoke. Włączając włączone, tylko członkowie karaoke mogą dodawać piosenki.\n" "Grupy z kontrolą uprawnień BypassKaraokeMode które są członkami Karaoke.\n" -#: musicbot/bot.py:3403 +#: musicbot/bot.py:3406 msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." msgstr "\\N{OK HAND SIGN} Tryb Karaoke jest teraz włączony." -#: musicbot/bot.py:3405 +#: musicbot/bot.py:3408 msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." msgstr "\\N{OK HAND SIGN} Tryb karaoke jest teraz wyłączony." -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "Nie masz uprawnień do żądania playlist" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "Playlista ma zbyt wiele wpisów (%(songs)s ale max to %(max)s)" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" @@ -464,11 +464,11 @@ msgstr "Wpisy listy odtwarzania przekroczą limit twojej kolejki.\n" "Na liście znajdują się %(songs)s i %(queued)s już w kolejce.\n" "Limit wynosi %(max)s dla twojej grupy." -#: musicbot/bot.py:3580 +#: musicbot/bot.py:3583 msgid "Bot was previously paused, resuming playback now." msgstr "Bot był wcześniej wstrzymany, wznowiono odtwarzanie." -#: musicbot/bot.py:3589 +#: musicbot/bot.py:3592 msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" "You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" "Playlist links will be extracted into multiple links and added to the queue.\n" @@ -480,28 +480,28 @@ msgstr "Dodaj utwór do odtworzenia w kolejce. Jeśli żaden utwór nie jest odt "Jeśli wprowadzisz nie-adres URL, dane wejściowe będą używane jako kryteria wyszukiwania na YouTube i odtworzony pierwszy wynik.\n" "MusicBot obsługuje również adresy URL Spotify, ale dźwięk jest pobierany z YouTube.\n" -#: musicbot/bot.py:3628 +#: musicbot/bot.py:3631 msgid "Play command that shuffles playlist entries before adding them to the queue.\n" msgstr "Odtwórz polecenie, które losuje wpisy listy odtwarzania przed dodaniem ich do kolejki.\n" -#: musicbot/bot.py:3665 +#: musicbot/bot.py:3668 #, python-format msgid "Shuffled playlist items into the queue from `%(request)s`" msgstr "Odtwarzanie losowe elementów listy odtwarzania z `%(request)s`" -#: musicbot/bot.py:3672 +#: musicbot/bot.py:3675 msgid "A play command that adds the song as the next to play rather than last.\n" "Read help for the play command for information on supported inputs.\n" msgstr "Polecenie odtwarzania, które dodaje utwór jako następny do odtworzenia, a nie jako ostatni.\n" "Przeczytaj pomoc dla komendy odtwarzania dla informacji o obsługiwanych danych wejściowych.\n" -#: musicbot/bot.py:3707 +#: musicbot/bot.py:3710 msgid "A play command which skips any current song and plays immediately.\n" "Read help for the play command for information on supported inputs.\n" msgstr "Komenda odtwarzania, która pomija bieżącą piosenkę i odtwarza natychmiast.\n" "Przeczytaj pomoc dla komendy odtwarzania dla informacji o obsługiwanych danych wejściowych.\n" -#: musicbot/bot.py:3744 +#: musicbot/bot.py:3747 msgid "Restarts the current song at the given time.\n" "If time starts with + or - seek will be relative to current playback time.\n" "Time should be given in seconds, fractional seconds are accepted.\n" @@ -511,38 +511,38 @@ msgstr "Ponownie uruchamia bieżącą piosenkę w danym czasie.\n" "Czas powinien być podany w sekundach, minuty ułamkowe są akceptowane.\n" "Ze względu na specyfikację kodeka w ffmpeg, może to nie być dokładne.\n" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "Nie można użyć szukania, jeśli nic nie gra." -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "Nie można użyć szukania bieżącego utworu, ma nieznany czas trwania." -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "Szukanie nie jest obsługiwane dla strumieni." -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "Nie można użyć wyszukiwania bez czasu na umiejscowienie odtwarzania." -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "Nie można przekonwertować `%(input)s` na poprawny czas w sekundach." -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "Nie można szukać `%(input)s` (`%(seconds)s` sekund) w bieżącym utworze o długości `%(progress)s / %(total)s`" -#: musicbot/bot.py:3840 +#: musicbot/bot.py:3843 #, python-format msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." msgstr "Szukam czasu `%(input)s` (`%(seconds).2f` sekund) w bieżącej piosence." -#: musicbot/bot.py:3852 +#: musicbot/bot.py:3855 msgid "Toggles playlist or song looping.\n" "If no option is provided the current song will be repeated.\n" "If no option is provided and the song is already repeating, repeating will be turned off.\n" @@ -550,74 +550,74 @@ msgstr "Przełącza listę odtwarzania lub pętlę utworu.\n" "Jeśli nie podano żadnej opcji, bieżący utwór zostanie powtórzony.\n" "Jeśli nie podano żadnej opcji i utwór już się powtarza, powtórzenie zostanie wyłączone.\n" -#: musicbot/bot.py:3870 +#: musicbot/bot.py:3873 msgid "No songs are currently playing. Play something with a play command." msgstr "Nie ma aktualnie odtwarzanych utworów. Odtwarzaj coś z poleceniem odtwarzania." -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "Nieprawidłowe polecenie podrzędne. Użyj polecenia `help repeat` dla przykładów użycia." -#: musicbot/bot.py:3883 musicbot/bot.py:3920 +#: musicbot/bot.py:3886 musicbot/bot.py:3923 msgid "Playlist is now repeating." msgstr "Playlista jest teraz powtarzana." -#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +#: musicbot/bot.py:3889 musicbot/bot.py:3916 musicbot/bot.py:3927 msgid "Playlist is no longer repeating." msgstr "Playlista już się nie powtarza." -#: musicbot/bot.py:3892 musicbot/bot.py:3901 +#: musicbot/bot.py:3895 musicbot/bot.py:3904 msgid "Player will now loop the current song." msgstr "Odtwarzacz zapętli teraz bieżącą piosenkę." -#: musicbot/bot.py:3894 musicbot/bot.py:3908 +#: musicbot/bot.py:3897 musicbot/bot.py:3911 msgid "Player will no longer loop the current song." msgstr "Gracz nie będzie już w pętli bieżącej piosenki." -#: musicbot/bot.py:3898 +#: musicbot/bot.py:3901 msgid "Player is already looping a song!" msgstr "Odtwarzacz jest już w pętli utworu!" -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "Odtwarzacz nie jest obecnie w pętli." -#: musicbot/bot.py:3926 +#: musicbot/bot.py:3929 msgid "Song is no longer repeating." msgstr "Utwór już się nie powtarza." -#: musicbot/bot.py:3930 +#: musicbot/bot.py:3933 msgid "Song is now repeating." msgstr "Utwór się powtarza." -#: musicbot/bot.py:3938 +#: musicbot/bot.py:3941 msgid " Move song at position FROM to position TO.\n" msgstr " Przenieś utwór w pozycji FROM do pozycji TO.\n" -#: musicbot/bot.py:3942 +#: musicbot/bot.py:3945 msgid "Swap existing songs in the queue using their position numbers.\n" "Use the queue command to find track position numbers.\n" msgstr "Zamień istniejące utwory w kolejce używając ich numerów pozycji.\n" "Użyj polecenia kolejki do znalezienia numerów pozycji śladów.\n" -#: musicbot/bot.py:3961 +#: musicbot/bot.py:3964 msgid "There are no songs queued. Play something with a play command." msgstr "Nie ma żadnych piosenek w kolejce. Odtwórz coś z poleceniem odtwarzania." -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "Pozycje piosenek muszą być liczbą całkowitą!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "Dałeś pozycję poza rozmiarem playlisty!" -#: musicbot/bot.py:3984 +#: musicbot/bot.py:3987 #, python-format msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" msgstr "Pomyślnie przeniesiono utwór z pozycji %(from)s w kolejce do pozycji %(to)s!" -#: musicbot/bot.py:4072 +#: musicbot/bot.py:4075 #, python-format msgid "This link contains a Playlist ID:\n" "`%(url)s`\n\n" @@ -626,82 +626,82 @@ msgstr "Ten link zawiera ID playlisty:\n" "`%(url)s`\n\n" "Czy chcesz dodać również listę odtwarzania?" -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "Lokalne odtwarzanie mediów nie jest włączone." -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "Adres URL Spotify jest nieprawidłowy lub nie jest obecnie obsługiwany." -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "Wykryto adres URL Spotify, ale Spotify nie jest włączony." -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "Osiągnąłeś limit utworów w kolejce (%(max)s)" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "Tryb Karaoke jest włączony, spróbuj ponownie, gdy jest wyłączony!" -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "Nie udało się wyodrębnić informacji z powodu błędu:\n" "%(raw_error)s" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "Nie można odtworzyć tego wideo. Spróbuj użyć komendy streamu." -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "Wyszukiwanie YouTube nie zwróciło żadnych wyników dla: %(url)s" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "Nie dodano piosenek, wszystkie piosenki przekroczyły maksymalny czas trwania (%(max)s sekund)" -#: musicbot/bot.py:4254 +#: musicbot/bot.py:4257 #, python-format msgid "Enqueued **%(number)s** songs to be played.\n" "Position in queue: %(position)s" msgstr "Utwory w kolejce **%(number)s** do odtworzenia.\n" "Pozycja w kolejce: %(position)s" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "Czas trwania piosenki przekracza limit (%(length)s > %(max)s)" -#: musicbot/bot.py:4289 +#: musicbot/bot.py:4292 #, python-format msgid "Enqueued `%(track)s` to be played.\n" "Position in queue: %(position)s" msgstr "Zamieszczono `%(track)s` do odtworzenia.\n" "Pozycja w kolejce: %(position)s" -#: musicbot/bot.py:4297 musicbot/bot.py:4312 +#: musicbot/bot.py:4300 musicbot/bot.py:4315 msgid "Playing next!" msgstr "Odtwarzanie dalej!" -#: musicbot/bot.py:4320 +#: musicbot/bot.py:4323 #, python-format msgid "%(position)s - estimated time until playing: `%(eta)s`" msgstr "%(position)s - przewidywany czas do odtwarzania: `%(eta)s`" -#: musicbot/bot.py:4328 +#: musicbot/bot.py:4331 #, python-format msgid "%(position)s - cannot estimate time until playing." msgstr "%(position)s - nie można oszacować czasu do gry." -#: musicbot/bot.py:4346 +#: musicbot/bot.py:4349 msgid "Add a media URL to the queue as a Stream.\n" "The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" "You can also use non-streamed media to play it without downloading it.\n" @@ -711,26 +711,26 @@ msgstr "Dodaj adres URL mediów do kolejki jako Stream.\n" "Możesz również użyć niestrumieniowych mediów do odtworzenia bez pobierania.\n" "Uwaga: FFmpeg może upuścić strumień losowo lub jeśli wystąpi czkawka.\n" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Strumieniowanie list odtwarzania nie jest jeszcze obsługiwane." -#: musicbot/bot.py:4419 +#: musicbot/bot.py:4422 #, python-format msgid "Now streaming track `%(track)s`" msgstr "Teraz strumieniowanie utworu `%(track)s`" -#: musicbot/bot.py:4428 +#: musicbot/bot.py:4431 msgid " Search with service for a number of results with the search query.\n" msgstr " Wyszukaj w serwisie kilka wyników z zapytaniem wyszukiwania.\n" -#: musicbot/bot.py:4432 +#: musicbot/bot.py:4435 msgid " Search YouTube for query but get a custom number of results.\n" " Note: the double-quotes are required in this case.\n" msgstr " Szukaj YouTube w poszukiwaniu zapytania, ale uzyskaj niestandardową liczbę wyników.\n" " Uwaga: w tym przypadku wymagane są podwójne cudzysłowy.\n" -#: musicbot/bot.py:4438 +#: musicbot/bot.py:4441 msgid "Search a supported service and select from results to add to queue.\n" "Service and number arguments can be omitted, default number is 3 results.\n" "Select from these services:\n" @@ -744,191 +744,191 @@ msgstr "Wyszukaj obsługiwaną usługę i wybierz spośród wyników do dodania "- sc, soundcloud\n" "- yh, yahoo\n" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Osiągnąłeś limit przedmiotów na liście odtwarzania (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Proszę określić zapytanie wyszukiwania. Aby uzyskać więcej informacji, użyj `help search`." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "Nie możesz wyszukać więcej niż filmy %(max)s" -#: musicbot/bot.py:4532 +#: musicbot/bot.py:4535 msgid "Searching for videos..." msgstr "Wyszukiwanie filmów..." -#: musicbot/bot.py:4554 +#: musicbot/bot.py:4557 #, python-format msgid "Search failed due to an error: %(error)s" msgstr "Wyszukiwanie nie powiodło się z powodu błędu: %(error)s" -#: musicbot/bot.py:4566 +#: musicbot/bot.py:4569 msgid "No videos found." msgstr "Nie znaleziono filmów." -#: musicbot/bot.py:4575 +#: musicbot/bot.py:4578 msgid "To select a song, type the corresponding number." msgstr "Aby wybrać piosenkę, wpisz odpowiedni numer." -#: musicbot/bot.py:4576 +#: musicbot/bot.py:4579 #, python-format msgid "Search results from %(service)s:" msgstr "Wyniki wyszukiwania z %(service)s:" -#: musicbot/bot.py:4585 +#: musicbot/bot.py:4588 #, python-format msgid "**%(index)s**. **%(track)s** | %(length)s" msgstr "**%(index)s**. **%(track)s** | %(length)s" -#: musicbot/bot.py:4594 +#: musicbot/bot.py:4597 msgid "\n" "**0**. Cancel" msgstr "\n" "**0**. Anuluj" -#: musicbot/bot.py:4598 +#: musicbot/bot.py:4601 msgid "Pick a song" msgstr "Wybierz utwór" -#: musicbot/bot.py:4649 +#: musicbot/bot.py:4652 #, python-format msgid "Added song [%(track)s](%(url)s) to the queue." msgstr "Dodano utwór [%(track)s](%(url)s) do kolejki." -#: musicbot/bot.py:4663 +#: musicbot/bot.py:4666 #, python-format msgid "Result %(number)s of %(total)s: %(url)s" msgstr "Wynik %(number)s dla %(total)s: %(url)s" -#: musicbot/bot.py:4713 +#: musicbot/bot.py:4716 msgid "Alright, coming right up!" msgstr "W porządku, nadchodzące!" -#: musicbot/bot.py:4725 +#: musicbot/bot.py:4728 msgid "Show information on what is currently playing." msgstr "Pokaż informacje o tym, co aktualnie gra." -#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +#: musicbot/bot.py:4780 musicbot/bot.py:6028 musicbot/bot.py:6060 msgid "[autoplaylist]" msgstr "[autoplaylist]" -#: musicbot/bot.py:4781 +#: musicbot/bot.py:4784 msgid "Now playing" msgstr "Teraz odtwarzane" -#: musicbot/bot.py:4784 +#: musicbot/bot.py:4787 msgid "Currently streaming:" msgstr "Aktualnie streamowanie:" -#: musicbot/bot.py:4786 +#: musicbot/bot.py:4789 msgid "Currently playing:" msgstr "Aktualnie odtwarzane:" -#: musicbot/bot.py:4792 +#: musicbot/bot.py:4795 msgid "Added By:" msgstr "Dodane przez:" -#: musicbot/bot.py:4793 +#: musicbot/bot.py:4796 #, python-format msgid "`%(user)s`" msgstr "`%(user)s`" -#: musicbot/bot.py:4797 +#: musicbot/bot.py:4800 msgid "Progress:" msgstr "Postęp:" -#: musicbot/bot.py:4815 musicbot/bot.py:6004 +#: musicbot/bot.py:4818 musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "Brak utworów w kolejce! Kolejka czegoś z poleceniem odtwarzania." -#: musicbot/bot.py:4818 +#: musicbot/bot.py:4821 msgid "Tell MusicBot to join the channel you're in." msgstr "Powiedz MusicBot, aby dołączył do kanału, w którym jesteś." -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "Nie jesteś połączony z głosowaniem. Spróbuj dołączyć do kanału głosowego!" -#: musicbot/bot.py:4876 +#: musicbot/bot.py:4879 #, python-format msgid "Connected to `%(channel)s`" msgstr "Połączono z `%(channel)s`" -#: musicbot/bot.py:4882 +#: musicbot/bot.py:4885 msgid "Makes MusicBot follow a user when they change channels in a server.\n" msgstr "Sprawia, że MusicBot obserwuje użytkownika, gdy zmienia kanały na serwerze.\n" -#: musicbot/bot.py:4905 +#: musicbot/bot.py:4908 #, python-format msgid "No longer following user `%(user)s`" msgstr "Nie obserwuj już użytkownika `%(user)s`" -#: musicbot/bot.py:4915 +#: musicbot/bot.py:4918 #, python-format msgid "Now following user `%(user)s` between voice channels." msgstr "Teraz obserwuj użytkownika `%(user)s` pomiędzy kanałami głosowymi." -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot nie może śledzić użytkownika, który nie jest członkiem serwera." -#: musicbot/bot.py:4935 +#: musicbot/bot.py:4938 #, python-format msgid "Will follow user `%(user)s` between voice channels." msgstr "Będzie obserwować użytkownika `%(user)s` pomiędzy kanałami głosowymi." -#: musicbot/bot.py:4941 +#: musicbot/bot.py:4944 msgid "Pause playback if a track is currently playing." msgstr "Wstrzymaj odtwarzanie, jeśli odtwarzany jest utwór." -#: musicbot/bot.py:4952 +#: musicbot/bot.py:4955 #, python-format msgid "Paused music in `%(channel)s`" msgstr "Wstrzymana muzyka w `%(channel)s`" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Gracz nie gra." -#: musicbot/bot.py:4958 +#: musicbot/bot.py:4961 msgid "Resumes playback if the player was previously paused." msgstr "Wznawia odtwarzanie, jeśli gracz był wcześniej wstrzymany." -#: musicbot/bot.py:4969 +#: musicbot/bot.py:4972 #, python-format msgid "Resumed music in `%(channel)s`" msgstr "Wznowiono muzykę w `%(channel)s`" -#: musicbot/bot.py:4975 +#: musicbot/bot.py:4978 msgid "Resumed music queue" msgstr "Wznowiono kolejkę muzyki" -#: musicbot/bot.py:4977 +#: musicbot/bot.py:4980 msgid "Player is not paused." msgstr "Gracz nie jest wstrzymany." -#: musicbot/bot.py:4979 +#: musicbot/bot.py:4982 msgid "Shuffle all current tracks in the queue." msgstr "Losuj wszystkie bieżące utwory w kolejce." -#: musicbot/bot.py:5014 +#: musicbot/bot.py:5017 msgid "Shuffled all songs in the queue." msgstr "Wszystkie piosenki w kolejce." -#: musicbot/bot.py:5016 +#: musicbot/bot.py:5019 msgid "Removes all songs currently in the queue." msgstr "Usuwa wszystkie utwory obecnie w kolejce." -#: musicbot/bot.py:5028 +#: musicbot/bot.py:5031 msgid "Cleared all songs from the queue." msgstr "Wyczyszczono wszystkie piosenki z kolejki." -#: musicbot/bot.py:5033 +#: musicbot/bot.py:5036 msgid "Remove a song from the queue, optionally at the given queue position.\n" "If the position is omitted, the song at the end of the queue is removed.\n" "Use the queue command to find position number of your track.\n" @@ -938,41 +938,41 @@ msgstr "Usuń utwór z kolejki, opcjonalnie w danej pozycji kolejki.\n" "Użyj polecenia kolejki, aby znaleźć numer pozycji swojego utworu.\n" "Jednakże, pozycje wszystkich piosenek są zmieniane, gdy rozpocznie się odtwarzanie.\n" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Nic w kolejce do usunięcia!" -#: musicbot/bot.py:5068 +#: musicbot/bot.py:5071 #, python-format msgid "Removed `%(track)s` added by `%(user)s`" msgstr "Usunięto `%(track)s` dodane przez `%(user)s`" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "Nic nie znaleziono w kolejce od użytkownika `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "Nie masz uprawnień do usuwania tego wpisu z kolejki.\n" "Musisz być tym, który ma w kolejce do kolejki lub ma natychmiastowe uprawnienia do pominięcia." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Nieprawidłowy numer wpisu. Użyj polecenia kolejki, aby znaleźć pozycje kolejki." -#: musicbot/bot.py:5105 +#: musicbot/bot.py:5108 #, python-format msgid "Removed entry `%(track)s` added by `%(user)s`" msgstr "Usunięto wpis `%(track)s` dodany przez `%(user)s`" -#: musicbot/bot.py:5110 +#: musicbot/bot.py:5113 #, python-format msgid "Removed entry `%(track)s`" msgstr "Usunięto wpis `%(track)s`" -#: musicbot/bot.py:5121 +#: musicbot/bot.py:5124 msgid "Skip or vote to skip the current playing song.\n" "Members with InstaSkip permission may use force parameter to bypass voting.\n" "If LegacySkip option is enabled, the force parameter can be ignored.\n" @@ -980,67 +980,67 @@ msgstr "Pomiń lub zagłosuj aby pominąć bieżącą piosenkę odtwarzaną.\n" "Członkowie z uprawnieniami InstaSkip mogą użyć parametru wymuszenia aby ominąć głos.\n" "Jeśli opcja LegacySkip jest włączona, parametr siły można zignorować.\n" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Nie można pominąć! Gracz nie gra!" -#: musicbot/bot.py:5153 +#: musicbot/bot.py:5156 #, python-format msgid "The next song `%(track)s` is downloading, please wait." msgstr "Następna piosenka `%(track)s` jest pobierana, proszę czekać." -#: musicbot/bot.py:5161 +#: musicbot/bot.py:5164 msgid "The next song will be played shortly. Please wait." msgstr "Następny utwór zostanie wkrótce odtworzony. Proszę czekać." -#: musicbot/bot.py:5166 +#: musicbot/bot.py:5169 msgid "Something odd is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Coś nieparzystego.\n" "Może chcesz zrestartować bota, jeśli nie zacznie działać." -#: musicbot/bot.py:5173 +#: musicbot/bot.py:5176 msgid "Something strange is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Coś dziwnego się dzieje.\n" "Być może chcesz ponownie uruchomić bota, jeśli nie zacznie działać." -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "Nie masz uprawnień, aby wymusić pominięcie piosenki w pętli." -#: musicbot/bot.py:5211 +#: musicbot/bot.py:5214 #, python-format msgid "Force skipped `%(track)s`." msgstr "Wymuś pominięcie `%(track)s`." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "Nie masz uprawnień do wymuszania pominięcia." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "Nie masz uprawnień, aby pominąć piosenkę w pętli." -#: musicbot/bot.py:5269 +#: musicbot/bot.py:5272 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "The vote to skip has been passed.%(next_up)s" msgstr "Twój przeskok dla `%(track)s` został potwierdzony.\n" "Głosowanie na pominięcie zostało przekazane.%(next_up)s" -#: musicbot/bot.py:5276 +#: musicbot/bot.py:5279 msgid " Next song coming up!" msgstr " Następny utwór nadchodzi!" -#: musicbot/bot.py:5293 +#: musicbot/bot.py:5296 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "Need **%(votes)s** more vote(s) to skip this song." msgstr "Twoje pominięcie dla `%(track)s` zostało potwierdzone.\n" "Potrzebujesz **%(votes)s** więcej głosów, aby pominąć tę piosenkę." -#: musicbot/bot.py:5306 +#: musicbot/bot.py:5309 msgid "Set the output volume level of MusicBot from 1 to 100.\n" "Volume parameter allows a leading + or - for relative adjustments.\n" "The volume setting is retained until MusicBot is restarted.\n" @@ -1048,34 +1048,34 @@ msgstr "Ustaw poziom głośności wyjściowej MusicBot od 1 do 100.\n" "Parametr głośności pozwala na początkowe + lub - dla względnych korekt.\n" "Ustawienie głośności jest utrzymywane do czasu ponownego uruchomienia MusicBot.\n" -#: musicbot/bot.py:5323 +#: musicbot/bot.py:5326 #, python-format msgid "Current volume: `%(volume)s%%`" msgstr "Bieżąca objętość: `%(volume)s%%`" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` nie jest poprawną liczbą" -#: musicbot/bot.py:5351 +#: musicbot/bot.py:5354 #, python-format msgid "Updated volume from **%(old)d** to **%(new)d**" msgstr "Zaktualizowano głośność z **%(old)d** do **%(new)d**" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Nieuzasadniona zmiana głośności: %(old_volume)s%(adjustment)s to %(new_volume)s.\n" "Głośność można ustawić tylko od 1 do 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Podano nieracjonalny wolumen: %(volume)s. Podaj wartość między 1 a 100." -#: musicbot/bot.py:5374 +#: musicbot/bot.py:5377 msgid "Change the playback speed of the currently playing track only.\n" "The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" "Streaming playback does not support speed adjustments.\n" @@ -1083,133 +1083,133 @@ msgstr "Zmień szybkość odtwarzania tylko dla aktualnie odtwarzanego utworu.\n "musi być pomiędzy 0,5 a 100. z powodu limitów ffmpeg.\n" "odtwarzanie strumieniowe nie obsługuje regulacji prędkości.\n" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "Brak odtwarzanego utworu, nie można ustawić prędkości.\n" "Użyj komendy konfiguracyjnej, aby ustawić domyślną prędkość odtwarzania." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "Prędkość nie może być zastosowana do mediów strumieniowych." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Musisz podać szybkość, aby ustawić." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "Podana prędkość jest nieprawidłowa. Użyj liczby od 0,5 do 100." -#: musicbot/bot.py:5432 +#: musicbot/bot.py:5435 #, python-format msgid "Setting playback speed to `%(speed).3f` for current track." msgstr "Ustawienie prędkości odtwarzania na `%(speed).3f` dla bieżącego utworu." -#: musicbot/bot.py:5441 +#: musicbot/bot.py:5444 msgid " Add an new alias with optional arguments.\n" msgstr " Dodaj nowy alias z opcjonalnymi argumentami.\n" -#: musicbot/bot.py:5444 +#: musicbot/bot.py:5447 msgid " Remove an alias with the given name." msgstr " Usuń alias o podanej nazwie." -#: musicbot/bot.py:5447 +#: musicbot/bot.py:5450 msgid " Reload or save aliases from/to the config file." msgstr " Odśwież lub zapisz aliasy z/do pliku konfiguracyjnego." -#: musicbot/bot.py:5451 +#: musicbot/bot.py:5454 msgid "Allows management of aliases from discord. To see aliases use the help command." msgstr "Pozwala na zarządzanie aliasami z dysku. Aby zobaczyć aliasy, użyj polecenia pomocy." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Nieprawidłowa opcja dla polecenia: `%(option)s`" -#: musicbot/bot.py:5477 +#: musicbot/bot.py:5480 msgid "Aliases reloaded from config file." msgstr "Aliasy przeładowane z pliku konfiguracyjnego." -#: musicbot/bot.py:5482 +#: musicbot/bot.py:5485 msgid "Aliases saved to config file." msgstr "Aliasy zapisane w pliku konfiguracyjnym." -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Nie udało się zapisać aliasów z powodu błędu:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Musisz podać alias i polecenie do aliasu" -#: musicbot/bot.py:5498 +#: musicbot/bot.py:5501 #, python-format msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" msgstr "Nowy alias dodany. `%(alias)s` jest teraz aliasem `%(command)s`" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Musisz podać nazwę aliasu aby usunąć." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "Alias `%(alias)s` nie istnieje." -#: musicbot/bot.py:5518 +#: musicbot/bot.py:5521 #, python-format msgid "Alias `%(alias)s` was removed." msgstr "Alias `%(alias)s` został usunięty." -#: musicbot/bot.py:5528 +#: musicbot/bot.py:5531 msgid " Shows help text about any missing config options.\n" msgstr " Pokazuje tekst pomocy o wszystkich brakujących opcjach konfiguracji.\n" -#: musicbot/bot.py:5531 +#: musicbot/bot.py:5534 msgid " Lists the names of options which have been changed since loading config file.\n" msgstr " Wyświetla nazwy opcji, które zostały zmienione od wczytywania pliku konfiguracyjnego.\n" -#: musicbot/bot.py:5534 +#: musicbot/bot.py:5537 msgid " List the available config options and their sections.\n" msgstr " Lista dostępnych opcji konfiguracji i ich sekcji.\n" -#: musicbot/bot.py:5537 +#: musicbot/bot.py:5540 msgid " Reload the options.ini file from disk.\n" msgstr " Przeładuj plik options.ini z dysku.\n" -#: musicbot/bot.py:5540 +#: musicbot/bot.py:5543 msgid " Shows help text for a specific option.\n" msgstr " Pokazuje tekst pomocy dla konkretnej opcji.\n" -#: musicbot/bot.py:5543 +#: musicbot/bot.py:5546 msgid " Display the current value of the option.\n" msgstr " Wyświetl bieżącą wartość opcji.\n" -#: musicbot/bot.py:5546 +#: musicbot/bot.py:5549 msgid " Saves the current value to the options file.\n" msgstr " Zapisuje bieżącą wartość do pliku opcji.\n" -#: musicbot/bot.py:5549 +#: musicbot/bot.py:5552 msgid " Validates the option and sets the config for the session, but not to file.\n" msgstr " Sprawdza poprawność opcji i ustawia konfigurację dla sesji, ale nie do pliku.\n" -#: musicbot/bot.py:5552 +#: musicbot/bot.py:5555 msgid " Reset the option to its default value.\n" msgstr " Zresetuj opcję do wartości domyślnej.\n" -#: musicbot/bot.py:5555 +#: musicbot/bot.py:5558 msgid "Manage options.ini configuration from within Discord." msgstr "Zarządzaj konfiguracją opcjiini z Discorda." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "Konfiguracja nie może używać kanału i wzmianek użytkownika w tym samym czasie." -#: musicbot/bot.py:5596 +#: musicbot/bot.py:5599 #, python-format msgid "**Missing Option:** `%(config)s`\n" "```\n" @@ -1220,22 +1220,22 @@ msgstr "**Brakująca opcja:** `%(config)s`\n" "%(comment)s\n" "Domyślnie %(default)s```\n" -#: musicbot/bot.py:5609 +#: musicbot/bot.py:5612 msgid "*All config options are present and accounted for!*" msgstr "*Wszystkie opcje konfiguracyjne są obecne i uwzględnione!*" -#: musicbot/bot.py:5625 +#: musicbot/bot.py:5628 msgid "No config options appear to be changed." msgstr "Żadne opcje konfiguracji nie wydają się być zmienione." -#: musicbot/bot.py:5627 +#: musicbot/bot.py:5630 #, python-format msgid "**Changed Options:**\n" "%(changed)s" msgstr "**Zmieniono opcje:**\n" "%(changed)s" -#: musicbot/bot.py:5647 +#: musicbot/bot.py:5650 #, python-format msgid "## Available Options:\n" "**Editable Options:**\n" @@ -1248,51 +1248,51 @@ msgstr "## Dostępne opcje:\n" "**Edycja ręczna tylko:**\n" "%(manual)s" -#: musicbot/bot.py:5669 +#: musicbot/bot.py:5672 msgid "Config options reloaded from file successfully!" msgstr "Opcje konfiguracji zostały pomyślnie przeładowane z pliku!" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Nie można przeładować konfiguracji z powodu następującego błędu:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Nie można ustalić nazwy sekcji z nazwy opcji. Proszę podać poprawną sekcję i nazwę opcji." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "Podana opcja jest niejednoznaczna, proszę podać nazwę sekcji." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Musisz podać nazwę sekcji i nazwę opcji dla tej komendy." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "Sekcja `%(section)s` jest niedostępna.\n" "Dostępne sekcje to: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "Opcja `%(option)s` jest niedostępna." -#: musicbot/bot.py:5733 +#: musicbot/bot.py:5736 msgid "This option can only be set by editing the config file." msgstr "Ta opcja może być ustawiona tylko przez edycję pliku konfiguracyjnego." -#: musicbot/bot.py:5737 +#: musicbot/bot.py:5740 #, python-format msgid "By default this option is set to: %(default)s" msgstr "Domyślnie ta opcja jest ustawiona na: %(default)s" -#: musicbot/bot.py:5742 +#: musicbot/bot.py:5745 #, python-format msgid "**Option:** `%(config)s`\n" "%(comment)s\n\n" @@ -1301,27 +1301,27 @@ msgstr "**Opcja:** `%(config)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zapisać na dysku." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Nie udało się zapisać opcji: `%(option)s`" -#: musicbot/bot.py:5767 +#: musicbot/bot.py:5770 #, python-format msgid "Successfully saved the option: `%(config)s`" msgstr "Pomyślnie zapisano opcję: `%(config)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "Opcja `%(option)s` nie jest edytowalna, wartość nie może być wyświetlana." -#: musicbot/bot.py:5784 +#: musicbot/bot.py:5787 #, python-format msgid "**Option:** `%(config)s`\n" "Current Value: `%(loaded)s`\n" @@ -1330,80 +1330,80 @@ msgstr "**Opcja:** `%(config)s`\n" "Bieżąca wartość: `%(loaded)s`\n" "INI File Value: `%(ini)s`" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zaktualizować ustawienia." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Musisz podać sekcję, opcję i wartość dla tej podkomendy." -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "Opcja `%(option)s` nie została zaktualizowana!" -#: musicbot/bot.py:5822 +#: musicbot/bot.py:5825 #, python-format msgid "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "Opcja `%(config)s` została zaktualizowana dla tej sesji.\n" "Aby zapisać zmianę, użyj `config save %(section)s %(option)s`" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "Opcja `%(option)s` nie jest edytowalna. Nie można zresetować do domyślnego." -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "Opcja `%(option)s` nie została zresetowana do domyślnych!" -#: musicbot/bot.py:5857 +#: musicbot/bot.py:5860 #, python-format msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "Opcja `%(config)s` została zresetowana do wartości domyślnej `%(default)s`.\n" "Aby zapisać zmianę, użyj `config save %(section)s %(option)s`" -#: musicbot/bot.py:5872 +#: musicbot/bot.py:5875 msgid "Deprecated command, use the config command instead." msgstr "Przestarzałe polecenie, zamiast tego użyj polecenia config." -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "Komenda opcji jest przestarzała, zamiast tego użyj komendy config." -#: musicbot/bot.py:5892 +#: musicbot/bot.py:5895 msgid "Display information about cache storage or clear cache according to configured limits.\n" "Using update option will scan the cache for external changes before displaying details." msgstr "Wyświetlaj informacje o pamięci podręcznej lub wyczyść pamięć podręczną zgodnie ze skonfigurowanymi limitami.\n" "Używanie opcji aktualizacji skanuje pamięć podręczną w poszukiwaniu zmian zewnętrznych przed wyświetleniem szczegółów." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Podano nieprawidłową opcję, użyj: info, update, lub wyczyść" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Disabled" msgstr "Wyłączone" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Enabled" msgstr "Włączone" -#: musicbot/bot.py:5919 +#: musicbot/bot.py:5922 #, python-format msgid "%(time)s days" msgstr "%(time)s dni" -#: musicbot/bot.py:5925 musicbot/bot.py:5928 +#: musicbot/bot.py:5928 musicbot/bot.py:5931 msgid "Unlimited" msgstr "Nieograniczona" -#: musicbot/bot.py:5933 +#: musicbot/bot.py:5936 #, python-format msgid "**Video Cache:** *%(state)s*\n" "**Storage Limit:** *%(size)s*\n" @@ -1414,40 +1414,40 @@ msgstr "**Pamięć podręczna wideo:** *%(state)s*\n" "**Limit:** *%(time)s*\n\n" "**Pamięć podręczna Teraz: %(used)s w plikach %(files)s." -#: musicbot/bot.py:5956 +#: musicbot/bot.py:5959 msgid "Cache has been cleared." msgstr "Skrzynka została wyczyszczona." -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Nie udało się** usunąć pamięci podręcznej, sprawdź logi aby uzyskać więcej informacji..." -#: musicbot/bot.py:5965 +#: musicbot/bot.py:5968 msgid "No cache found to clear." msgstr "Nie znaleziono skrzynki do wyczyszczenia." -#: musicbot/bot.py:5973 +#: musicbot/bot.py:5976 msgid "Display information about the current player queue.\n" "Optional page number shows later entries in the queue.\n" msgstr "Wyświetl informacje o bieżącej kolejce gracza.\n" "Fakultatywny numer strony pokazuje późniejsze wpisy w kolejce.\n" -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "Argument strony kolejki musi być liczbą całkowitą." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "Żądany numer strony jest poza zakresem.\n" "Istnieją ** strony%(total)s**." -#: musicbot/bot.py:6025 +#: musicbot/bot.py:6026 msgid "(unknown duration)" msgstr "(nieznany czas trwania)" -#: musicbot/bot.py:6034 +#: musicbot/bot.py:6035 #, python-format msgid "Currently playing: `%(title)s`\n" "Added by: `%(user)s`\n" @@ -1456,14 +1456,14 @@ msgstr "Aktualnie odtwarzane: `%(title)s`\n" "Dodane przez: `%(user)s`\n" "Postęp: `[%(progress)s/%(total)s]`\n" -#: musicbot/bot.py:6064 +#: musicbot/bot.py:6065 #, python-format msgid "**Entry #%(index)s:**Title: `%(title)s`\n" "Added by: `%(user)s\n\n" msgstr "**Wpis #%(index)s:**Tytuł: `%(title)s`\n" "Dodane przez: `%(user)s\n\n" -#: musicbot/bot.py:6072 +#: musicbot/bot.py:6073 #, python-format msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" "Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" @@ -1472,17 +1472,17 @@ msgstr "%(progress)sJest `%(total)s` wpisów w kolejce.\n" "Oto następne piosenki %(per_page)s , zaczynając od piosenki #%(start)s\n\n" "%(tracks)s" -#: musicbot/bot.py:6085 +#: musicbot/bot.py:6086 msgid "Songs in queue" msgstr "Utwory w kolejce" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Spróbuj ponownie. MusicBot nie mógł nawiązać do wiadomości kolejki.\n" "Jeśli problem będzie się powtarzał, zgłoś błąd." -#: musicbot/bot.py:6156 +#: musicbot/bot.py:6157 msgid "Search for and remove bot messages and commands from the calling text channel.\n" "Optionally supply a number of messages to search through, 50 by default 500 max.\n" "This command may be slow if larger ranges are given.\n" @@ -1490,64 +1490,64 @@ msgstr "Wyszukaj i usuń wiadomości i polecenia bota z kanału tekstowego poł "Opcjonalnie podaj liczbę wiadomości do przeszukiwania, 50 domyślnie 500 maks.\n" "Ta komenda może być wolna, jeśli podane są większe zakresy.\n" -#: musicbot/bot.py:6180 +#: musicbot/bot.py:6181 msgid "Invalid parameter. Please provide a number of messages to search." msgstr "Nieprawidłowy parametr. Proszę podać liczbę wiadomości do wyszukiwania." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Nie można użyć czyszczenia na prywatnym kanale DM." -#: musicbot/bot.py:6222 +#: musicbot/bot.py:6223 #, python-format msgid "Cleaned up %(number)s message(s)." msgstr "Wyczyszczono wiadomości %(number)s." -#: musicbot/bot.py:6226 +#: musicbot/bot.py:6227 msgid "Bot does not have permission to manage messages." msgstr "Bot nie ma uprawnień do zarządzania wiadomościami." -#: musicbot/bot.py:6231 +#: musicbot/bot.py:6232 msgid "Dump the individual URLs of a playlist to a file." msgstr "Zrzuć indywidualne adresy URL playlisty do pliku." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "Podany adres URL nie jest prawidłowym adresem URL." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Nie można wyodrębnić informacji z wprowadzonego adresu\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "To nie wygląda na playlistę." -#: musicbot/bot.py:6282 +#: musicbot/bot.py:6283 #, python-format msgid "Here is the playlist dump for: %(url)s" msgstr "Oto zrzut playlisty dla: %(url)s" -#: musicbot/bot.py:6292 +#: musicbot/bot.py:6293 msgid "Display your Discord User ID, or the ID of a mentioned user.\n" "This command is deprecated in favor of Developer Mode in Discord clients.\n" msgstr "Wyświetl ID użytkownika Discorda lub identyfikator wspomnianego użytkownika.\n" "Ta komenda jest przestarzała na korzyść trybu deweloperskiego w klientach Discorda.\n" -#: musicbot/bot.py:6307 +#: musicbot/bot.py:6308 #, python-format msgid "Your user ID is `%(id)s`" msgstr "Twój identyfikator użytkownika to `%(id)s`" -#: musicbot/bot.py:6312 +#: musicbot/bot.py:6313 #, python-format msgid "The user ID for `%(username)s` is `%(id)s`" msgstr "ID użytkownika dla `%(username)s` to `%(id)s`" -#: musicbot/bot.py:6319 +#: musicbot/bot.py:6320 msgid "List the Discord IDs for the selected category.\n" "Returns all ID data by default, but one or more categories may be selected.\n" "This command is deprecated in favor of using Developer mode in Discord clients.\n" @@ -1555,28 +1555,28 @@ msgstr "Lista ID Discorda dla wybranej kategorii.\n" "Zwraca domyślnie wszystkie dane identyfikacyjne, ale można wybrać jedną lub więcej kategorii.\n" "Ta komenda jest przestarzała na korzyść trybu deweloperskiego w klientach Discorda.\n" -#: musicbot/bot.py:6341 +#: musicbot/bot.py:6342 #, python-format msgid "Valid categories: %(cats)s" msgstr "Prawidłowe kategorie: %(cats)s" -#: musicbot/bot.py:6388 +#: musicbot/bot.py:6389 msgid "Here are the IDs you requested:" msgstr "Oto ID, o które prosiłeś:" -#: musicbot/bot.py:6395 +#: musicbot/bot.py:6396 msgid "Get a list of your permissions, or the permissions of the mentioned user." msgstr "Uzyskaj listę uprawnień lub uprawnień wspomnianego użytkownika." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "Nieprawidłowy identyfikator użytkownika lub nazwa serwera, sprawdź identyfikator i spróbuj ponownie." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Nie można określić użytkownika Discorda. Spróbuj ponownie." -#: musicbot/bot.py:6439 +#: musicbot/bot.py:6440 #, python-format msgid "Your command permissions in %(server)s are:\n" "```\n" @@ -1587,7 +1587,7 @@ msgstr "Twoje uprawnienia poleceń w %(server)s to:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6448 +#: musicbot/bot.py:6449 #, python-format msgid "The command permissions for %(username)s in %(server)s are:\n" "```\n" @@ -1598,58 +1598,58 @@ msgstr "Uprawnienia poleceń dla %(username)s w %(server)s to:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6464 +#: musicbot/bot.py:6465 msgid " Show loaded groups and list permission options.\n" msgstr " Pokaż wczytane grupy i opcje uprawnień.\n" -#: musicbot/bot.py:6467 +#: musicbot/bot.py:6468 msgid " Reloads permissions from the permissions.ini file.\n" msgstr " Ponownie ładuje uprawnienia z pliku uprawnień.\n" -#: musicbot/bot.py:6470 +#: musicbot/bot.py:6471 msgid " Add new group with defaults.\n" msgstr " Dodaj nową grupę z domyślnymi.\n" -#: musicbot/bot.py:6473 +#: musicbot/bot.py:6474 msgid " Remove existing group.\n" msgstr " Usuń istniejącą grupę.\n" -#: musicbot/bot.py:6476 +#: musicbot/bot.py:6477 msgid " Show help text for the permission option.\n" msgstr " Pokaż tekst pomocy dla opcji uprawnień.\n" -#: musicbot/bot.py:6479 +#: musicbot/bot.py:6480 msgid " Show permission value for given group and permission.\n" msgstr " Pokaż wartość uprawnień dla danej grupy i uprawnień.\n" -#: musicbot/bot.py:6482 +#: musicbot/bot.py:6483 msgid " Save permissions group to file.\n" msgstr " Zapisz grupę uprawnień do pliku.\n" -#: musicbot/bot.py:6485 +#: musicbot/bot.py:6486 msgid " Set permission value for the group.\n" msgstr " Ustaw wartość uprawnień dla grupy.\n" -#: musicbot/bot.py:6488 +#: musicbot/bot.py:6489 msgid "Manage permissions.ini configuration from within discord." msgstr "Zarządzaj konfiguracją uprawnieńini z dysku." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Uprawnienia nie mogą używać jednocześnie wspomnień kanału i użytkownika." -#: musicbot/bot.py:6534 +#: musicbot/bot.py:6535 msgid "Permissions reloaded from file successfully!" msgstr "Uprawnienia ponownie załadowane z pliku!" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Nie można przeładować uprawnień z powodu błędu:\n" "%(raw_error)s" -#: musicbot/bot.py:6558 +#: musicbot/bot.py:6559 #, python-format msgid "## Available Groups:\n" "%(groups)s\n" @@ -1660,41 +1660,41 @@ msgstr "## Dostępne grupy:\n" "## Dostępne opcje:\n" "%(options)s\n" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Musisz podać nazwę grupy lub opcji dla tego polecenia." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Musisz podać grupę, opcję i wartość, aby ustawić to polecenie." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "Podpolecenie %(option)s wymaga nazwy grupy i uprawnień." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "Grupa `%(group)s` jest niedostępna.\n" "Dostępne grupy to: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "Uprawnienia `%(option)s` nie są dostępne." -#: musicbot/bot.py:6624 +#: musicbot/bot.py:6625 msgid "This permission can only be set by editing the permissions file." msgstr "To uprawnienie może być ustawione tylko przez edycję pliku uprawnień." -#: musicbot/bot.py:6633 +#: musicbot/bot.py:6634 #, python-format msgid "By default this permission is set to: `%(value)s`" msgstr "Domyślnie to uprawnienie jest ustawione na: `%(value)s`" -#: musicbot/bot.py:6638 +#: musicbot/bot.py:6639 #, python-format msgid "**Permission:** `%(option)s`\n" "%(comment)s\n\n" @@ -1703,12 +1703,12 @@ msgstr "**Uprawnienie:** `%(option)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Nie można dodać grupy `%(group)s` już istnieje." -#: musicbot/bot.py:6660 +#: musicbot/bot.py:6661 #, python-format msgid "Successfully added new group: `%(group)s`\n" "You can now customize the permissions with: `setperms set %(group)s`\n" @@ -1717,32 +1717,32 @@ msgstr "Pomyślnie dodano nową grupę: `%(group)s`\n" "Możesz teraz dostosować uprawnienia w: `setperms set %(group)s`\n" "Upewnij się, że zapisz nową grupę w: `setperms save %(group)s`" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Nie można usunąć wbudowanej grupy." -#: musicbot/bot.py:6677 +#: musicbot/bot.py:6678 #, python-format msgid "Successfully removed group: `%(group)s`\n" "Make sure to save this change with: `setperms save %(group)s`" msgstr "Pomyślnie usunięto grupę: `%(group)s`\n" "Upewnij się, że zapisać tę zmianę w: `setperms save %(group)s`" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "Grupa właścicieli nie jest edytowalna." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Nie udało się zapisać grupy: `%(group)s`" -#: musicbot/bot.py:6700 +#: musicbot/bot.py:6701 #, python-format msgid "Successfully saved the group: `%(group)s`" msgstr "Pomyślnie zapisano grupę: `%(group)s`" -#: musicbot/bot.py:6711 +#: musicbot/bot.py:6712 #, python-format msgid "**Permission:** `%(permission)s`\n" "Current Value: `%(loaded)s`\n" @@ -1751,155 +1751,205 @@ msgstr "**Uprawnienie:** `%(permission)s`\n" "Bieżąca wartość: `%(loaded)s`\n" "INI File Value: `%(ini)s`" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Uprawnienia `%(option)s` nie zostały zaktualizowane!" -#: musicbot/bot.py:6748 +#: musicbot/bot.py:6749 #, python-format msgid "Permission `%(permission)s` was updated for this session.\n" "To save the change use `setperms save %(section)s %(option)s`" msgstr "Uprawnienia `%(permission)s` zostały zaktualizowane dla tej sesji.\n" "Aby zapisać zmianę, użyj `setperms save %(section)s %(option)s`" -#: musicbot/bot.py:6765 +#: musicbot/bot.py:6766 msgid "Change the bot's username on discord.\n" "Note: The API may limit name changes to twice per hour." msgstr "Zmień nazwę użytkownika bota na dysku.\n" "Uwaga: API może ograniczyć zmianę nazwy do dwóch razy na godzinę." -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Nie udało się zmienić nazwy użytkownika. Czy zmieniłeś nazwy zbyt wiele razy?\n" "Zapamiętaj zmiany nazwy są ograniczone do dwóch razy na godzinę.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Nie udało się zmienić nazwy użytkownika z powodu błędu: \n" "%(raw_error)s" -#: musicbot/bot.py:6795 +#: musicbot/bot.py:6796 #, python-format msgid "Set the bot's username to `%(name)s`" msgstr "Ustaw nazwę użytkownika bota na `%(name)s`" -#: musicbot/bot.py:6798 +#: musicbot/bot.py:6799 msgid "Change the MusicBot's nickname." msgstr "Zmień nick MusicBot." -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Nie można zmienić pseudonimu: brak uprawnień." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Nie udało się ustawić pseudonimu z powodu błędu: \n" "%(raw_error)s" -#: musicbot/bot.py:6825 +#: musicbot/bot.py:6826 #, python-format msgid "Set the bot's nickname to `%(nick)s`" msgstr "Ustawiono pseudonim bota na `%(nick)s`" -#: musicbot/bot.py:6832 +#: musicbot/bot.py:6833 msgid " Set a per-server command prefix." msgstr " Ustaw prefiks komendy na serwer." -#: musicbot/bot.py:6834 +#: musicbot/bot.py:6835 msgid " Clear the per-server command prefix." msgstr " Wyczyść prefiks komend na serwer." -#: musicbot/bot.py:6838 +#: musicbot/bot.py:6839 msgid "Override the default command prefix in the server.\n" "The option EnablePrefixPerGuild must be enabled first." msgstr "Zastąp domyślny prefiks poleceń na serwerze.\n" "Opcja Włączony PrefixPerGuild musi być włączona w pierwszej kolejności." -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Niestandardowe emoji muszą być z tego serwera, aby użyć jako prefiks." -#: musicbot/bot.py:6866 +#: musicbot/bot.py:6867 msgid "Server command prefix is cleared." msgstr "Prefiks komend serwera został wyczyszczony." -#: musicbot/bot.py:6871 +#: musicbot/bot.py:6872 #, python-format msgid "Server command prefix is now: %(prefix)s" msgstr "Prefiks polecenia serwera jest teraz: %(prefix)s" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Prefiks na serwer nie jest włączony!\n" "Użyj komendy config aby zaktualizować prefiks." -#: musicbot/bot.py:6885 +#: musicbot/bot.py:6886 +msgid " Show language codes available to use.\n" +msgstr " Pokaż kody językowe dostępne do użycia.\n" + +#: musicbot/bot.py:6889 +msgid " Set the desired language for this server.\n" +msgstr " Ustaw żądany język dla tego serwera.\n" + +#: musicbot/bot.py:6892 +msgid " Reset the server language to bot's default language.\n" +msgstr " Zresetuj język serwera do domyślnego języka bota.\n" + +#: musicbot/bot.py:6895 +msgid "Manage the language used for messages in the calling server." +msgstr "Zarządzaj językiem używanym do wiadomości na serwerze połączeń." + +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Ta komenda może być użyta tylko w gildiach." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Podano nieprawidłowe polecenie. Aby uzyskać więcej informacji, użyj polecenia pomocy." + +#: musicbot/bot.py:6924 +#, python-format +msgid "**Current Language:** `%(locale)s`\n" +"**Available Languages:**\n" +"```\n" +"%(languages)s```" +msgstr "**Bieżący język:** `%(locale)s`\n" +"**Dostępne języki:**\n" +"```\n" +"%(languages)s```" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Nie można ustawić języka na `%(locale)s` nie jest on dostępny." + +#: musicbot/bot.py:6939 +#, python-format +msgid "Language for this server now set to: `%(locale)s`" +msgstr "Język dla tego serwera ustawiony jest: `%(locale)s`" + +#: musicbot/bot.py:6947 +#, python-format +msgid "Language for this server has been reset to: `%(locale)s`" +msgstr "Język dla tego serwera został zresetowany do: `%(locale)s`" + +#: musicbot/bot.py:6959 msgid "Change MusicBot's avatar.\n" "Attaching a file and omitting the url parameter also works.\n" msgstr "Zmień awatar MusicBota.\n" "Dołączanie pliku i pominięcie parametru url również działa.\n" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "Musisz podać adres URL lub załączyć plik." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Nie można zmienić awatara z powodu błędu: \n" "%(raw_error)s" -#: musicbot/bot.py:6919 +#: musicbot/bot.py:6993 msgid "Changed the bot's avatar." msgstr "Zmieniono awatar bota." -#: musicbot/bot.py:6922 +#: musicbot/bot.py:6996 msgid "Force MusicBot to disconnect from the discord server." msgstr "Wymuś rozłączenie MusicBot z serwerem Discord." -#: musicbot/bot.py:6933 +#: musicbot/bot.py:7007 #, python-format msgid "Disconnected from server `%(guild)s`" msgstr "Rozłączono z serwerem `%(guild)s`" -#: musicbot/bot.py:6948 +#: musicbot/bot.py:7022 msgid "Disconnected a playerless voice client? [BUG]" msgstr "Odłączono klienta głosowego bez odtwarzacza? [BUG]" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Obecnie nie jest połączony z serwerem `%(guild)s`" -#: musicbot/bot.py:6960 +#: musicbot/bot.py:7034 msgid " Attempt to reload without process restart. The default option.\n" msgstr " Próba odświeżenia bez ponownego uruchomienia procesu. Opcja domyślna.\n" -#: musicbot/bot.py:6962 +#: musicbot/bot.py:7036 msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" msgstr " Próba ponownego uruchomienia całego procesu MusicBot, przeładowanie wszystkiego.\n" -#: musicbot/bot.py:6964 +#: musicbot/bot.py:7038 msgid " Full restart, but attempt to update pip packages before restart.\n" msgstr " Pełne ponowne uruchomienie, ale próba aktualizacji pakietów pip przed ponownym uruchomieniem.\n" -#: musicbot/bot.py:6966 +#: musicbot/bot.py:7040 msgid " Full restart, but update MusicBot source code with git first.\n" msgstr " Pełne ponowne uruchomienie, ale najpierw zaktualizuj kod źródłowy MusicBot git.\n" -#: musicbot/bot.py:6968 +#: musicbot/bot.py:7042 msgid " Attempt to update all dependency and source code before fully restarting.\n" msgstr " Próba zaktualizowania wszystkich zależności i kodu źródłowego przed całkowitym ponownym uruchomieniem.\n" -#: musicbot/bot.py:6972 +#: musicbot/bot.py:7046 msgid "Attempts to restart the MusicBot in a number of different ways.\n" "With no option supplied, a `soft` restart is implied.\n" "It can be used to remotely update a MusicBot installation, but should be used with care.\n" @@ -1909,103 +1959,103 @@ msgstr "Próbuje zrestartować MusicBot na kilka różnych sposobów.\n" "Może być używany do zdalnego aktualizowania instalacji MusicBot, ale powinien być używany z ostrożnością.\n" "Jeśli masz menedżera usług, zalecamy użycie go zamiast tej komendy do ponownego uruchomienia.\n" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Podano nieprawidłową opcję, użyj jednej z: miękkiej, pełnej, aktualizacji, uppip lub upgit" -#: musicbot/bot.py:6999 +#: musicbot/bot.py:7073 #, python-format msgid "%(emoji)s Restarting current instance..." msgstr "%(emoji)s Restartowanie bieżącej instancji..." -#: musicbot/bot.py:7004 +#: musicbot/bot.py:7078 #, python-format msgid "%(emoji)s Restarting bot process..." msgstr "%(emoji)s Restartowanie procesu bota..." -#: musicbot/bot.py:7009 +#: musicbot/bot.py:7083 #, python-format msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." msgstr "%(emoji)s spróbuje ulepszyć wymagane pakiety pip i zrestartować bot..." -#: musicbot/bot.py:7014 +#: musicbot/bot.py:7088 #, python-format msgid "%(emoji)s Will try to update bot code with git and restart the bot..." msgstr "%(emoji)s spróbuje zaktualizować kod bota z git i zrestartować bota..." -#: musicbot/bot.py:7019 +#: musicbot/bot.py:7093 #, python-format msgid "%(emoji)s Will try to upgrade everything and restart the bot..." msgstr "%(emoji)s spróbuje ulepszyć wszystko i zrestartować bot..." -#: musicbot/bot.py:7053 +#: musicbot/bot.py:7127 msgid "Disconnect from all voice channels and close the MusicBot process." msgstr "Odłącz od wszystkich kanałów głosowych i zamknij proces MusicBot." -#: musicbot/bot.py:7079 +#: musicbot/bot.py:7153 msgid " Leave the discord server given by name or server ID." msgstr " Pozostaw serwer discorda podany przez nazwę lub ID serwera." -#: musicbot/bot.py:7083 +#: musicbot/bot.py:7157 msgid "Force MusicBot to leave the given Discord server.\n" "Names are case-sensitive, so using an ID number is more reliable.\n" msgstr "Wymuś MusicBot aby opuścił dany serwer Discord.\n" "Nazwy mają znaczenie dla liter, więc użycie numeru ID jest bardziej wiarygodne.\n" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Musisz podać identyfikator lub nazwę." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "Nie znaleziono gildii o ID lub nazwie `%(input)s`" -#: musicbot/bot.py:7121 +#: musicbot/bot.py:7195 msgid "Unknown" msgstr "Nieznane" -#: musicbot/bot.py:7128 +#: musicbot/bot.py:7202 #, python-format msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" msgstr "Opuszczono gildię: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" -#: musicbot/bot.py:7138 +#: musicbot/bot.py:7212 msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." msgstr "Polecenie używane do testowania. Drukuje listę poleceń, które mogą być zweryfikowane przez zestaw testowy." -#: musicbot/bot.py:7162 +#: musicbot/bot.py:7236 msgid "This command issues a log at level CRITICAL, but does nothing else.\n" "Can be used to manually pinpoint events in the MusicBot log file.\n" msgstr "To polecenie wydaje dziennik na poziomie CRITICAL, ale nie robi nic innego.\n" "Może być użyty do ręcznego wskazywania wydarzeń w pliku dziennika MusicBot.\n" -#: musicbot/bot.py:7173 +#: musicbot/bot.py:7247 #, python-format msgid "Logged breakpoint with ID: %(uuid)s" msgstr "Zgłoszono punkt wstrzymania z ID: %(uuid)s" -#: musicbot/bot.py:7180 +#: musicbot/bot.py:7254 msgid " View most common types reported by objgraph.\n" msgstr " Zobacz najczęstsze typy zgłoszone przez objgraf.\n" -#: musicbot/bot.py:7183 +#: musicbot/bot.py:7257 msgid " View limited objgraph.show_growth() output.\n" msgstr " Zobacz ograniczone wyjście objgraph.show_growth().\n" -#: musicbot/bot.py:7186 +#: musicbot/bot.py:7260 msgid " View most common types of leaking objects.\n" msgstr " Zobacz najpopularniejsze typy wyciekających obiektów.\n" -#: musicbot/bot.py:7189 +#: musicbot/bot.py:7263 msgid " View typestats of leaking objects.\n" msgstr " Zobacz statystyki typów wyciekających obiektów.\n" -#: musicbot/bot.py:7192 +#: musicbot/bot.py:7266 msgid " Evaluate the given function and arguments on objgraph.\n" msgstr " Oceń daną funkcję i argumenty na objgrafie.\n" -#: musicbot/bot.py:7196 +#: musicbot/bot.py:7270 msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" "You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" "Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" @@ -2013,11 +2063,11 @@ msgstr "Współpracuj z objgrafem, jeśli jest zainstalowany, aby uzyskać wglą "Możesz przekazać dowolną metodę z argumentami (ale bez spacji!), która jest członkiem objgrafu.\n" "Ponieważ ta metoda ocenia dowolny kod, jest uważany za niebezpieczny jak polecenie debugowania.\n" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Nie można zaimportować `objgraf`, czy jest zainstalowany?" -#: musicbot/bot.py:7249 +#: musicbot/bot.py:7323 msgid "This command will execute arbitrary python code in the command scope.\n" "First eval() is attempted, if exceptions are thrown exec() is tried next.\n" "If eval is successful, it's return value is displayed.\n" @@ -2035,7 +2085,7 @@ msgstr "Ta komenda wykona dowolny kod Pythona w zakresie poleceń.\n" "Ta komenda może zostać usunięta w przyszłej wersji i jest używana przez deweloperów do debugowania zachowania MusicBot.\n" "Zagrożenie związane z tym poleceniem nie może być zaniżone. Nie używaj go ani nie daj mu dostępu, jeśli nie rozumiesz ryzyka!\n" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -2048,65 +2098,65 @@ msgstr "Nie udało się wykonać kodu debugowania:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7320 +#: musicbot/bot.py:7394 msgid "Create 'markdown' for options, permissions, or commands from the code.\n" "The output is used to update GitHub Pages and is thus unsuitable for normal reference use." msgstr "Utwórz 'markdown' dla opcji, uprawnień lub poleceń z kodu.\n" "Wyjście jest używane do aktualizacji stron GitHub i dlatego nie nadaje się do normalnego użycia odniesienia." -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "Podpolecenie musi być jednym z: %(options)s" -#: musicbot/bot.py:7387 +#: musicbot/bot.py:7461 msgid "Makes default INI files." msgstr "Tworzy domyślne pliki INI." -#: musicbot/bot.py:7410 +#: musicbot/bot.py:7486 msgid "Saved the requested INI file to disk. Go check it" msgstr "Zapisano żądany plik INI na dysku. Sprawdź go" -#: musicbot/bot.py:7415 +#: musicbot/bot.py:7491 msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" msgstr "Wyświetl aktualną wersję bota i sprawdź dostępność aktualizacji MusicBot lub zależności.\n" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Nie można zlokalizować pliku wykonywalnego git" -#: musicbot/bot.py:7473 +#: musicbot/bot.py:7549 #, python-format msgid "No updates in branch `%(branch)s` remote." msgstr "Brak aktualizacji w gałęzi `%(branch)s`." -#: musicbot/bot.py:7478 +#: musicbot/bot.py:7554 #, python-format msgid "New commits are available in `%(branch)s` branch remote." msgstr "Nowe commity są dostępne w oddziale `%(branch)s`." -#: musicbot/bot.py:7484 musicbot/bot.py:7527 +#: musicbot/bot.py:7560 musicbot/bot.py:7603 msgid "Error while checking, see logs for details." msgstr "Błąd podczas sprawdzania, zobacz logi w celu uzyskania szczegółów." -#: musicbot/bot.py:7518 +#: musicbot/bot.py:7594 #, python-format msgid "Update for `%(name)s` to version: `%(version)s`\n" msgstr "Aktualizacja dla `%(name)s` do wersji: `%(version)s`\n" -#: musicbot/bot.py:7524 +#: musicbot/bot.py:7600 msgid "No updates for dependencies found." msgstr "Nie znaleziono aktualizacji dla zależności." -#: musicbot/bot.py:7530 +#: musicbot/bot.py:7606 msgid "There are updates for MusicBot available for download." msgstr "Istnieją aktualizacje dla MusicBot dostępne do pobrania." -#: musicbot/bot.py:7532 +#: musicbot/bot.py:7608 msgid "MusicBot is totally up-to-date!" msgstr "MusicBot jest całkowicie aktualny!" -#: musicbot/bot.py:7536 +#: musicbot/bot.py:7612 #, python-format msgid "%(status)s\n\n" "**Source Code Updates:**\n" @@ -2119,29 +2169,29 @@ msgstr "%(status)s\n\n" "**Aktualizacje zależności:**\n" "%(pip_status)s" -#: musicbot/bot.py:7550 +#: musicbot/bot.py:7626 msgid "Displays the MusicBot uptime, or time since last start / restart." msgstr "Wyświetla czas uptime MusicBot lub czas od ostatniego rozpoczęcia / restartu." -#: musicbot/bot.py:7565 +#: musicbot/bot.py:7641 #, python-format msgid "%(name)s has been online for `%(time)s`" msgstr "%(name)s jest online dla `%(time)s`" -#: musicbot/bot.py:7572 +#: musicbot/bot.py:7648 msgid "Display latency information for Discord API and all connected voice clients." msgstr "Wyświetlaj informacje o opóźnieniu dla Discorda API i wszystkich podłączonych klientów głosowych." -#: musicbot/bot.py:7594 +#: musicbot/bot.py:7670 #, python-format msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) w regionie: `%(region)s`\n" -#: musicbot/bot.py:7599 +#: musicbot/bot.py:7675 msgid "No voice clients connected.\n" msgstr "Brak podłączonych klientów głosowych.\n" -#: musicbot/bot.py:7604 +#: musicbot/bot.py:7680 #, python-format msgid "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" @@ -2150,47 +2200,47 @@ msgstr "**Opóźnienie API:** `%(delay).0f ms`\n" "**Opóźnienie VoiceClient:**\n" "%(voices)s" -#: musicbot/bot.py:7612 +#: musicbot/bot.py:7688 msgid "Display API latency and Voice latency if MusicBot is connected." msgstr "Wyświetlaj opóźnienie API i opóźnienie głosowe, jeśli MusicBot jest podłączony." #. TRANSLATORS: short for automatic, displayed when voice region is not selected. -#: musicbot/bot.py:7628 +#: musicbot/bot.py:7704 msgid "auto" msgstr "auto" -#: musicbot/bot.py:7630 +#: musicbot/bot.py:7706 #, python-format msgid "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" msgstr "\n" "**Opóźnienie głosowe:** `%(delay).0f ms` (`%(average).0f ms` Avg.) w regionie `%(region)s`" -#: musicbot/bot.py:7635 +#: musicbot/bot.py:7711 #, python-format msgid "**API Latency:** `%(delay).0f ms`%(voice)s" msgstr "**Opóźnienie API:** `%(delay).0f ms`%(voice)s" -#: musicbot/bot.py:7640 +#: musicbot/bot.py:7716 msgid "Display MusicBot version number in the chat." msgstr "Wyświetlaj numer wersji MusicBot na czacie." -#: musicbot/bot.py:7648 +#: musicbot/bot.py:7724 #, python-format msgid "https://github.com/Just-Some-Bots/MusicBot\n" "Current version: `%(version)s`" msgstr "https://github.com/Just-Some-Bots/MusicBot\n" "Obecna wersja: `%(version)s`" -#: musicbot/bot.py:7660 +#: musicbot/bot.py:7736 msgid " Update the cookies.txt file using a cookies.txt attachment." msgstr " Aktualizuj plik cookies.txt za pomocą załącznika cookies.txt." -#: musicbot/bot.py:7663 +#: musicbot/bot.py:7739 msgid " Enable or disable cookies.txt file without deleting it." msgstr " Włącz lub wyłącz plik cookies.txt bez usuwania go." -#: musicbot/bot.py:7667 +#: musicbot/bot.py:7743 msgid "Allows management of the cookies feature in yt-dlp.\n" "When updating cookies, you must upload a file named cookies.txt\n" "If cookies are disabled, uploading will enable the feature.\n" @@ -2210,90 +2260,90 @@ msgstr "Pozwala na zarządzanie funkcją ciasteczek w yt-dlp.\n" " Nie zaleca się jej ze względu na te zagrożenia, i nie powinieneś używać tej funkcji\n" " , jeśli nie rozumiesz jak unikać ryzyka." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Pliki cookie są już włączone." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Pliki cookie muszą być przesłane, aby je włączyć. (Przeliczanie pliku cookies.)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Nie można włączyć ciasteczek z powodu błędu: %(raw_error)s" -#: musicbot/bot.py:7711 +#: musicbot/bot.py:7787 msgid "Cookies have been enabled." msgstr "Pliki cookie zostały włączone." -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Nie można zmienić nazwy pliku ciasteczek z powodu błędu: %(raw_error)s\n" "ciasteczka tymczasowo wyłączone i zostaną ponownie włączone przy następnym ponownym uruchomieniu." -#: musicbot/bot.py:7726 +#: musicbot/bot.py:7802 msgid "Cookies have been disabled." msgstr "Pliki cookie zostały wyłączone." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "Nie znaleziono załączonych przesyłanych plików, spróbuj ponownie podczas przesyłania pliku cookie." -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Błąd podczas pobierania pliku ciasteczek z dysku: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Nie można zapisać ciasteczek na dysku: %(raw_error)s" -#: musicbot/bot.py:7762 +#: musicbot/bot.py:7838 msgid "Cookies uploaded and enabled." msgstr "Pliki cookie przesłane i włączone." -#: musicbot/bot.py:7872 +#: musicbot/bot.py:7948 msgid "You cannot use this bot in private messages." msgstr "Nie możesz użyć tego bota w prywatnych wiadomościach." -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Ta komenda nie jest dozwolona dla grupy uprawnień: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Ta komenda wymaga bycia na kanale głosowym." -#: musicbot/bot.py:8075 +#: musicbot/bot.py:8151 #, python-format msgid "**Command:** %(name)s" msgstr "**Polecenie:** %(name)s" -#: musicbot/bot.py:8134 +#: musicbot/bot.py:8210 msgid "Exception Error" msgstr "Błąd wyjątku" -#: musicbot/bot.py:8179 +#: musicbot/bot.py:8255 #, python-format msgid "**Example with prefix:**\n" "%(prefix)s`%(command)s ...`\n" msgstr "**Przykład z prefiksem:**\n" "%(prefix)s`%(command)s ...`\n" -#: musicbot/bot.py:8183 +#: musicbot/bot.py:8259 msgid "No description given.\n" msgstr "Nie podano opisu.\n" -#: musicbot/bot.py:8186 +#: musicbot/bot.py:8262 msgid "No usage given." msgstr "Nie podano użycia." -#: musicbot/bot.py:8220 +#: musicbot/bot.py:8296 #, python-format msgid "**Example usage:**\n" "```%(usage)s```\n" @@ -2304,12 +2354,12 @@ msgstr "**Przykładowe użycie:**\n" "%(prefix_note)s**Opis:**\n" "%(desc)s" -#: musicbot/bot.py:8273 +#: musicbot/bot.py:8349 #, python-format msgid "Leaving voice channel %(channel)s due to inactivity." msgstr "Opuszczanie kanału głosowego %(channel)s z powodu braku aktywności." -#: musicbot/bot.py:8554 +#: musicbot/bot.py:8645 #, python-format msgid "Left `%(guild)s` due to bot owner not being found in it." msgstr "Pozostało `%(guild)s` z powodu nieznalezionego w nim właściciela bota." @@ -2493,43 +2543,43 @@ msgid "Enable automatic skip of auto playlist songs when a user plays a new song msgstr "Włącz automatyczne pomijanie utworów, gdy użytkownik odtwarza nową piosenkę.\n" "Dotyczy to tylko bieżącego utworu odtwarzanego jeśli został dodany przez auto playlistę." -#: musicbot/config.py:469 +#: musicbot/config.py:468 msgid "Remove songs from the auto playlist if they are found in the song block list." msgstr "Usuń utwory z automatycznej listy odtwarzania, jeśli znajdują się na liście bloków utworów." -#: musicbot/config.py:488 +#: musicbot/config.py:487 msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" "Delay period is controlled by DeleteDelayShort and DeleteDelayLong." msgstr "Zezwól MusicBotowi na automatyczne usuwanie wysyłanych wiadomości po opóźnieniu.\n" "Okres opóźnienia jest kontrolowany przez DeleteDelayShort i DeleteDelayLong." -#: musicbot/config.py:498 +#: musicbot/config.py:497 msgid "Auto delete valid commands after a delay." msgstr "Automatyczne usuwanie prawidłowych poleceń po opóźnieniu." -#: musicbot/config.py:507 +#: musicbot/config.py:506 msgid "Sets the short period of seconds before deleting messages.\n" "This period is used by messages that require no further interaction." msgstr "Ustawia krótki okres sekund przed usunięciem wiadomości.\n" "Ten okres jest używany przez wiadomości, które nie wymagają dalszej interakcji." -#: musicbot/config.py:518 +#: musicbot/config.py:517 msgid "Sets the long delay period before deleting messages.\n" "This period is used by interactive or long-winded messages, like search and help." msgstr "Ustawia długi okres opóźnienia przed usunięciem wiadomości.\n" "Ten okres jest używany przez interaktywne lub długotrwałe wiadomości, takie jak wyszukiwanie i pomoc." -#: musicbot/config.py:530 +#: musicbot/config.py:529 msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." msgstr "Pozwól MusicBot zapisać kolejkę piosenek, więc piosenki w kolejce przetrwają restarty." -#: musicbot/config.py:540 +#: musicbot/config.py:539 msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" "Currently this option does not apply to auto playlist or songs added to an empty queue." msgstr "Włącz MusicBot, aby pobrać następny utwór w kolejce, gdy odtwarzany jest utwór.\n" "Obecnie ta opcja nie ma zastosowania do automatycznej listy odtwarzania lub piosenek dodanych do pustej kolejki." -#: musicbot/config.py:550 +#: musicbot/config.py:549 msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" "will display dynamic info about music currently being played in its status instead.\n" "Status messages may also use the following variables:\n" @@ -2553,69 +2603,69 @@ msgstr "Określ niestandardową wiadomość jako status bota. Jeśli pozostanie " {p0_title} = Tytuł utworu dla aktualnie odtwarzanej ścieżki.\n" " {p0_url} = Adres URL dla aktualnie odtwarzanej ścieżki." -#: musicbot/config.py:571 +#: musicbot/config.py:570 msgid "If enabled, status messages will report info on paused players." msgstr "Jeśli opcja jest włączona, komunikaty o statusie będą zgłaszać informacje o wstrzymanych odtwarzaczach." #. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. -#: musicbot/config.py:582 +#: musicbot/config.py:581 msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" msgstr "Jeśli włączone, MusicBot zapisze tytuł utworu na: data/[ID serwera]/current.txt" -#: musicbot/config.py:592 +#: musicbot/config.py:591 msgid "Allow the member who requested the song to skip it, bypassing votes." msgstr "Pozwól członkom, który poprosił o utwór pominąć go, pomijając głosy." -#: musicbot/config.py:602 +#: musicbot/config.py:601 msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" "This option can cause delay between playing songs, as the whole track must be processed." msgstr "Próbuje użyć ffmpeg aby uzyskać opcje normalizacji głośności do użycia w odtwarzaniu.\n" "Ta opcja może spowodować opóźnienie pomiędzy odtwarzaniem utworów, ponieważ cały utwór musi być przetworzony." -#: musicbot/config.py:612 +#: musicbot/config.py:611 msgid "Allow MusicBot to format its messages as embeds." msgstr "Pozwól MusicBot sformatować swoje wiadomości jako osadzone." -#: musicbot/config.py:621 +#: musicbot/config.py:620 msgid "The number of entries to show per-page when using q command to list the queue." msgstr "Liczba wpisów do wyświetlenia na stronę podczas używania polecenia q aby wyświetlić listę kolejki." -#: musicbot/config.py:631 +#: musicbot/config.py:630 msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." msgstr "Włącz MusicBot, aby automatycznie usuwać nieodtwarzalne wpisy z listy automatycznego odtwarzania." -#: musicbot/config.py:640 +#: musicbot/config.py:639 msgid "Display MusicBot config settings in the logs at startup." msgstr "Wyświetlaj ustawienia konfiguracji MusicBot w logach podczas uruchamiania." #. TRANSLATORS: InstaSkip should not be translated. -#: musicbot/config.py:650 +#: musicbot/config.py:649 msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." msgstr "Włącz użytkowników z uprawnieniami InstaSkip aby ominąć głosowanie i wymusić pominięcie." -#: musicbot/config.py:660 +#: musicbot/config.py:659 msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." msgstr "Jeśli opcja jest włączona, MusicBot opuści serwery, jeśli właściciel nie jest na liście użytkowników." -#: musicbot/config.py:670 +#: musicbot/config.py:669 msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" msgstr "Jeśli włączone, MusicBot umożliwi komendom posiadanie wielu nazw za pomocą danych w: config/aliases.json" -#: musicbot/config.py:681 +#: musicbot/config.py:680 msgid "Replace MusicBot name/version in embed footer with custom text.\n" "Only applied when UseEmbeds is enabled and it is not blank." msgstr "Zastąp nazwę/wersję MusicBot w osadzonej stopce niestandardowym tekstem.\n" "Stosowane tylko gdy UseEmbeds jest włączone i nie jest puste." -#: musicbot/config.py:691 +#: musicbot/config.py:690 msgid "Completely remove the footer from embeds." msgstr "Całkowicie usuń stopkę z osadników." -#: musicbot/config.py:700 +#: musicbot/config.py:699 msgid "MusicBot will automatically deafen itself when entering a voice channel." msgstr "MusicBot automatycznie wyłączy się przy wchodzeniu na kanał głosowy." -#: musicbot/config.py:711 +#: musicbot/config.py:710 msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" "after waiting for a period set in LeaveInactiveVCTimeOut option.\n" "Listeners are channel members, excluding bots, who are not deafened." @@ -2623,17 +2673,17 @@ msgstr "Jeśli opcja jest włączona, MusicBot opuści kanał głosowy, gdy żad "po oczekiwaniu na okres ustawiony w opcji LeaveInactiveVCTimeOout.\n" "Słuchacze są członkami kanałów, z wyjątkiem botów, którzy nie są deafenowani." -#: musicbot/config.py:723 +#: musicbot/config.py:722 msgid "Set a period of time to wait before leaving an inactive voice channel.\n" "You can set this to a number of seconds or phrase like: 4 hours" msgstr "Ustaw czas oczekiwania przed opuszczeniem nieaktywnego kanału głosowego.\n" "Możesz to ustawić na kilka sekund lub frazę jako: 4 godziny" -#: musicbot/config.py:734 +#: musicbot/config.py:733 msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." msgstr "Jeśli włączone, MusicBot opuści kanał natychmiast po opróżnieniu kolejki utworu." -#: musicbot/config.py:744 +#: musicbot/config.py:743 msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" "You can set this to a number of seconds of phrase like: 15 minutes\n" "Set it to 0 to disable leaving in this way." @@ -2641,24 +2691,24 @@ msgstr "Kiedy wstrzymuje się lub przestaje grać, poczekaj na ten czas, a nast "Możesz to ustawić na kilka sekund frazy, takich jak: 15 minut\n" "Ustaw 0 aby wyłączyć wyjście w ten sposób." -#: musicbot/config.py:756 +#: musicbot/config.py:755 msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." msgstr "Jeśli opcja jest włączona, użytkownicy muszą wskazywać wyniki wyszukiwania, wysyłając wiadomość zamiast używać reakcji." -#: musicbot/config.py:766 +#: musicbot/config.py:765 msgid "Sets the default number of search results to fetch when using the search command without a specific number." msgstr "Ustawia domyślną liczbę wyników wyszukiwania do pobrania podczas używania polecenia wyszukiwania bez określonej liczby." #. TRANSLATORS: setprefix should not be translated. -#: musicbot/config.py:778 +#: musicbot/config.py:777 msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." msgstr "Zezwalaj MusicBot na zapisywanie prefiksu komend dla każdego serwera i włącza komendę setprefiksa." -#: musicbot/config.py:789 +#: musicbot/config.py:788 msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." msgstr "Jeśli włączone, a wielu użytkowników dodaje utwory, MusicBot zorganizuje odtwarzanie dla jednego utworu na użytkownika." -#: musicbot/config.py:800 +#: musicbot/config.py:799 msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" "This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" "MusicBot must be restarted to enable network testing.\n" @@ -2668,7 +2718,7 @@ msgstr "Pozwól MusicBot na używanie pingów czasowych do wykrywania przerw w s "MusicBot musi zostać uruchomiony ponownie, aby włączyć testowanie sieci.\n" "Domyślnie jest to wyłączone." -#: musicbot/config.py:814 +#: musicbot/config.py:813 #, python-format msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" "This will contain all songs from all servers." @@ -2676,12 +2726,12 @@ msgstr "Włącz zapisywanie wszystkich utworów odtwarzanych przez MusicBot w gl "Będzie to zawierać wszystkie utwory ze wszystkich serwerów." #. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. -#: musicbot/config.py:829 +#: musicbot/config.py:828 #, python-format msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" msgstr "Włącz zapisywanie utworów odtwarzanych na serwerze do pliku playlisty: %(basename)s[ID serwera]%(ext)s" -#: musicbot/config.py:845 +#: musicbot/config.py:844 msgid "Enable playback of local media files using the play command.\n" "When enabled, users can use: `play file://path/to/file.ext`\n" "to play files from the local MediaFileDirectory path." @@ -2689,11 +2739,11 @@ msgstr "Włącz odtwarzanie lokalnych plików multimedialnych przy użyciu polec "Gdy włączone, użytkownicy mogą użyć: `play file://path/to/file. xt`\n" "do odtwarzania plików z lokalnej ścieżki MediaFileDirectory" -#: musicbot/config.py:858 +#: musicbot/config.py:857 msgid "Allow MusicBot to automatically unpause when play commands are used." msgstr "Pozwól MusicBot na automatyczne odparowanie po użyciu poleceń odtwarzania." -#: musicbot/config.py:877 +#: musicbot/config.py:876 msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" "The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" "Leave blank to disable." @@ -2701,7 +2751,7 @@ msgstr "Eksperymentalne, ustawienia HTTP/HTTPS proxy do pobierania multimediów "Zestaw wartości tutaj jest przekazywany do sprawdzania nagłówków `ytdlp --proxy` i aiohttp.\n" "Pozostaw puste, aby wyłączyć." -#: musicbot/config.py:888 +#: musicbot/config.py:887 msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" "It is not typically recommended by yt-dlp to change the UA string.\n" "For examples of what you might put here, check the following two links:\n" @@ -2715,7 +2765,7 @@ msgstr "Opcja eksperymentalna, aby ustawić statyczny nagłówek User-Agent w yt " https://www.useragents.me/ \n" "Pozostaw puste, aby używać domyślnych, dynamicznie generowanych ciągów UA." -#: musicbot/config.py:903 +#: musicbot/config.py:902 #, python-format msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" "When enabled, you must use the generated URL and code to authorize an account.\n" @@ -2730,7 +2780,7 @@ msgstr "Opcja eksperymentalna, aby umożliwić yt-dlp korzystanie z konta YouTub "Korzystanie z konta osobistego może nie być zalecane.\n" "Ustaw tak, aby włączyć lub nie, aby wyłączyć." -#: musicbot/config.py:920 +#: musicbot/config.py:919 msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" "This starts the OAuth2 prompt early, rather than waiting for a song request.\n" "The URL set here should be an accessible YouTube video URL.\n" @@ -2740,31 +2790,31 @@ msgstr "Opcjonalny adres URL wideo YouTube używany na starcie do wyzwalania aut "Adres URL ustawiony tutaj powinien być dostępnym adresem URL wideo YouTube.\n" "Autoryzacja musi zostać zakończona przed uruchomieniem systemu, gdy jest ustawiona." -#: musicbot/config.py:939 +#: musicbot/config.py:938 msgid "Toggle the user block list feature, without emptying the block list." msgstr "Przełącz funkcję listy bloków użytkowników bez opróżniania listy bloków." -#: musicbot/config.py:949 +#: musicbot/config.py:948 msgid "An optional file path to a text file listing Discord User IDs, one per line." msgstr "Opcjonalna ścieżka pliku do pliku tekstowego zawierającego ID użytkownika Discorda, po jednym na wiersz." -#: musicbot/config.py:961 +#: musicbot/config.py:960 msgid "Enable the song block list feature, without emptying the block list." msgstr "Włącz funkcję listy bloków utworów, bez opróżniania listy bloków." -#: musicbot/config.py:971 +#: musicbot/config.py:970 msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" "Any song title or URL that contains any line in the list will be blocked." msgstr "Opcjonalna ścieżka pliku do pliku tekstowego, który zawiera adresy URL, słowa lub frazy jeden w linii.\n" "Wszelkie tytuły piosenki lub adresy URL zawierające dowolną linię na liście zostaną zablokowane." -#: musicbot/config.py:984 +#: musicbot/config.py:983 msgid "An optional path to a directory containing auto playlist files.\n" "Each file should contain a list of playable URLs or terms, one track per line." msgstr "Opcjonalna ścieżka do katalogu zawierającego pliki automatycznej playlisty.\n" "Każdy plik powinien zawierać listę adresów lub terminów odtwarzania, po jednym utworze na linię." -#: musicbot/config.py:996 +#: musicbot/config.py:995 #, python-format msgid "An optional directory path where playable media files can be stored.\n" "All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" @@ -2775,11 +2825,11 @@ msgstr "Opcjonalna ścieżka katalogu do przechowywania plików multimedialnych "Przykład: file://some/folder/name/file.ext\n" "Maps to: %(path)s/some/folder/name/file.ext" -#: musicbot/config.py:1015 +#: musicbot/config.py:1014 msgid "An optional directory path where MusicBot will store long and short-term cache for playback." msgstr "Opcjonalna ścieżka katalogu, w której MusicBot będzie przechowywać długą i krótkoterminową pamięć podręczną do odtwarzania." -#: musicbot/config.py:1026 +#: musicbot/config.py:1025 #, python-format msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" "When disabled, only one log is kept and its contents are replaced each run.\n" @@ -2788,7 +2838,7 @@ msgstr "Skonfiguruj automatyczną rotację plików dziennika przy ponownym uruch "Gdy wyłączone, zachowany jest tylko jeden log, a jego zawartość wymieniana jest po każdym uruchomieniu.\n" "Ustaw na 0 aby wyłączyć. Maksymalna dozwolona liczba to %(max)s." -#: musicbot/config.py:1039 +#: musicbot/config.py:1038 msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" "If left blank, a warning is logged and the default will be used instead.\n" "Learn more about time format codes from the tables and data here:\n" @@ -2798,13 +2848,13 @@ msgstr "Skonfiguruj format daty pliku dziennika używany gdy LogsMaxKept jest w "Dowiedz się więcej o kodach formatów czasu z tabel i danych tutaj:\n" " https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" -#: musicbot/config.py:1053 +#: musicbot/config.py:1052 msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" "This option will disable UseExperimentalEqualization option as well." msgstr "Potencjalnie zmniejsza użycie procesora, ale wyłącza regulację głośności i prędkości.\n" "Ta opcja również wyłączy opcję \"UseExperimentalEqualization\"." -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2827,7 +2877,7 @@ msgstr "Błąd podczas odczytywania konfiguracji.\n\n" " Każda sekcja musi mieć co najmniej jedną opcję.\n" " Użyj opcji przykładowych jako szablonu lub skopiuj je z repozytorium." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2839,7 +2889,7 @@ msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" "Rozwiązanie:\n" " Upewnij się, że ścieżka, którą skonfigurowałeś jest ścieżką do folderu / katalogu." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2854,7 +2904,7 @@ msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" "Rozwiązanie:\n" " Sprawdź, czy ustawienia są poprawne, dostępna ścieżka katalogu." -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2867,7 +2917,7 @@ msgstr "Błąd podczas odczytywania opcji konfiguracji.\n\n" "Rozwiązanie:\n" " Ustaw opcję konfiguracji tokenu lub ustaw zmienną środowiskową %(env_var)s z tokenem aplikacji." -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2881,7 +2931,7 @@ msgstr "Błąd podczas pobierania \"ID właściciela\".\n\n" "Rozwiązanie:\n" " ręcznie ustaw opcję 'WłaścicielID' lub spróbuj ponownie później." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2893,7 +2943,7 @@ msgstr "Błąd podczas sprawdzania opcji konfiguracji.\n\n" "Rozwiązanie:\n" " Nie używaj Bot ani App ID w polu 'OwnerID'." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2908,7 +2958,7 @@ msgstr "Błąd lokalizacji konfiguracji.\n\n" "Rozwiązanie:\n" " Zweryfikuj folder konfiguracyjny i pliki istnieją i mogą być odczytane przez MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2925,7 +2975,7 @@ msgstr "Błąd ładowania konfiguracji.\n\n" " Upewnij się, że plik jest dostępny i nie ma błędu.\n" " Skopiuj przykładowy plik z repozytorium, jeśli wszystko inne nie powiedzie się." -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2938,7 +2988,7 @@ msgstr "Błąd ładowania wartości konfiguracji.\n\n" "Rozwiązanie:\n" " Ustaw %(option)s na numeryczny identyfikator lub ustaw go na `auto` lub `0` dla automatycznego powiązania właściciela." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2951,7 +3001,7 @@ msgstr "Błąd ładowania wartości konfiguracji.\n\n" "Rozwiązanie:\n" " Sprawdź ustawienia ścieżki i upewnij się, że plik istnieje i jest dostępny dla MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" diff --git a/i18n/ru_RU/LC_MESSAGES/musicbot_logs.mo b/i18n/ru_RU/LC_MESSAGES/musicbot_logs.mo index b6afc8d2503bf9c0b178b92e4c67bc1d2aea4301..8ed69b8b215eed76f5283e6a1b31896656660642 100644 GIT binary patch delta 13490 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 Sjy+rFc}?5x>3rR55%qroa*%ES diff --git a/i18n/ru_RU/LC_MESSAGES/musicbot_logs.po b/i18n/ru_RU/LC_MESSAGES/musicbot_logs.po index 3391f8b30..d77a34e04 100644 --- a/i18n/ru_RU/LC_MESSAGES/musicbot_logs.po +++ b/i18n/ru_RU/LC_MESSAGES/musicbot_logs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 18:12\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:39\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -96,85 +96,85 @@ msgstr "URL-адрес уже в плейлисте %s, игнорируется msgid "Adding new URL to playlist, %(playlist)s: %(track)s" msgstr "Добавление нового URL в плейлист, %(playlist)s: %(track)s" -#: musicbot/bot.py:163 +#: musicbot/bot.py:165 #, python-format msgid "Initializing MusicBot %s" msgstr "Инициализация MusicBot %s" -#: musicbot/bot.py:243 +#: musicbot/bot.py:245 #, python-format msgid "Loop is closed, cannot create task for: %r" msgstr "Цикл закрыт, невозможно создать задачу для: %r" -#: musicbot/bot.py:259 +#: musicbot/bot.py:261 #, python-format msgid "Unhandled exception for task: %r" msgstr "Необработанное исключение для задачи: %r" -#: musicbot/bot.py:263 +#: musicbot/bot.py:265 #, python-format msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" msgstr "Необработанное исключение для задачи: %(task)r -- %(raw_error)s" -#: musicbot/bot.py:308 musicbot/bot.py:330 +#: musicbot/bot.py:310 musicbot/bot.py:332 msgid "Spotify did not provide us with a token. Disabling." msgstr "Spotify не предоставил нам токен. Отключен." -#: musicbot/bot.py:312 +#: musicbot/bot.py:314 msgid "Authenticated with Spotify successfully using client ID and secret." msgstr "Аутентификация в Spotify прошла успешно с использованием ID клиента и секрета." -#: musicbot/bot.py:316 +#: musicbot/bot.py:318 #, python-format msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." msgstr "Не удалось запустить клиент Spotify. ID вашего клиента и секретные данные? Подробности: %s. Продолжиться все равно через 5 секунд..." -#: musicbot/bot.py:324 +#: musicbot/bot.py:326 msgid "The config did not have Spotify app credentials, attempting to use guest mode." msgstr "В конфигурации нет учетных данных приложения Spotify, пытаясь использовать гостевой режим." -#: musicbot/bot.py:334 +#: musicbot/bot.py:336 msgid "Authenticated with Spotify successfully using guest mode." msgstr "Аутентификация в Spotify прошла успешно в гостевом режиме." -#: musicbot/bot.py:339 +#: musicbot/bot.py:341 #, python-format msgid "Could not start Spotify client using guest mode. Details: %s." msgstr "Невозможно запустить клиент Spotify в гостевом режиме. Подробности: %s." -#: musicbot/bot.py:347 +#: musicbot/bot.py:349 msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" msgstr "Экспериментальный Yt-dlp OAuth2 плагин включен. Это может сломать в любой точке!" -#: musicbot/bot.py:354 +#: musicbot/bot.py:356 msgid "Initialized, now connecting to discord." msgstr "Инициализирован, теперь подключаемся к discord." -#: musicbot/bot.py:365 +#: musicbot/bot.py:367 msgid "Network ping test is disabled via config." msgstr "Тест сетевого пинга отключён через config." -#: musicbot/bot.py:369 +#: musicbot/bot.py:371 msgid "Network ping test is closing down." msgstr "Тест сетевого пинга закрывается вниз." -#: musicbot/bot.py:380 +#: musicbot/bot.py:382 msgid "Could not resolve ping target." msgstr "Не удалось определить цель" -#: musicbot/bot.py:410 +#: musicbot/bot.py:412 msgid "Network ping test cancelled." msgstr "Тест сетевого пинга отменен." -#: musicbot/bot.py:424 +#: musicbot/bot.py:426 msgid "Network testing via HTTP does not have a session to borrow." msgstr "Сетевое тестирование через HTTP не имеет сеанса для заимствования." -#: musicbot/bot.py:449 +#: musicbot/bot.py:451 msgid "Could not locate `ping` executable in your environment." msgstr "Не удалось найти исполняемый файл `ping` в вашей среде." -#: musicbot/bot.py:475 +#: musicbot/bot.py:477 #, python-format msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -185,7 +185,7 @@ msgstr "MusicBot не может найти путь к команде `ping`. "Вы должны включить ping в системе или контейнерном окружении для получения наилучшего результата.\n" "Или отключите проверку сети через конфигурацию." -#: musicbot/bot.py:485 +#: musicbot/bot.py:487 #, python-format msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -196,7 +196,7 @@ msgstr "MusicBot отказано в разрешении на выполнен "Вы должны включить ping в системе или контейнерном окружении для получения наилучшего результата.\n" "Или отключите проверку сети через конфигурацию." -#: musicbot/bot.py:495 +#: musicbot/bot.py:497 #, python-format msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -207,552 +207,557 @@ msgstr "Ваша среда может не разрешать системну "Вы должны включить ping в системе или контейнерном окружении для получения наилучшего результата.\n" "Или отключите проверку сети через конфигурацию." -#: musicbot/bot.py:510 +#: musicbot/bot.py:512 msgid "MusicBot detected network is available again." msgstr "Обнаруженная сеть MusicBot снова доступна." -#: musicbot/bot.py:515 +#: musicbot/bot.py:517 msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." msgstr "VoiceClient не подключен, ожидается возобновление MusicPlayer..." -#: musicbot/bot.py:519 +#: musicbot/bot.py:521 #, python-format msgid "Resuming playback of player: (%(guild_id)s) %(player)r" msgstr "Возобновление воспроизведения игрока: (%(guild_id)s) %(player)r" -#: musicbot/bot.py:530 +#: musicbot/bot.py:532 msgid "MusicBot detected a network outage." msgstr "MusicBot обнаружил ошибки в сети." -#: musicbot/bot.py:534 +#: musicbot/bot.py:536 #, python-format msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" msgstr "Пауза MusicPlayer из-за доступности сети: (%(guild_id)s) %(player)r" -#: musicbot/bot.py:555 +#: musicbot/bot.py:557 #, python-format msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" msgstr "Ищете владельца в гильдии: %(guild)s (требуется голос: %(required)s) и получили: %(owner)s" -#: musicbot/bot.py:569 +#: musicbot/bot.py:571 msgid "Checking for channels to auto-join or resume..." msgstr "Проверка каналов для автоматического подключения или возобновления доступа..." -#: musicbot/bot.py:581 +#: musicbot/bot.py:583 #, python-format msgid "Guild not available, cannot auto join: %(id)s/%(name)s" msgstr "Гильдия недоступна, невозможно автоматически присоединиться: %(id)s/%(name)s" -#: musicbot/bot.py:589 +#: musicbot/bot.py:591 #, python-format msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" msgstr "Найден восходящий голосовой канал: %(channel)s в гильдии: %(guild)s" -#: musicbot/bot.py:602 +#: musicbot/bot.py:604 #, python-format msgid "Will try resuming voice session instead of Auto-Joining channel: %s" msgstr "Попробует возобновить голосовую сессию вместо автоподключения к каналу: %s" -#: musicbot/bot.py:619 +#: musicbot/bot.py:621 #, python-format msgid "Found owner in voice channel: %s" msgstr "Найден владелец в голосовом канале: %s" -#: musicbot/bot.py:624 +#: musicbot/bot.py:626 #, python-format msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" msgstr "Игнорирование восходящего канала, автодайвинг владельцу в канале: %s" -#: musicbot/bot.py:629 +#: musicbot/bot.py:631 #, python-format msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" msgstr "Игнорирование автоподключения канала AutoSummon для владельца канала: %s" -#: musicbot/bot.py:641 +#: musicbot/bot.py:643 #, python-format msgid "Already connected to channel: %(channel)s in guild: %(guild)s" msgstr "Уже подключен к каналу: %(channel)s в гильдии: %(guild)s" -#: musicbot/bot.py:650 +#: musicbot/bot.py:652 #, python-format msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" msgstr "Попытка присоединиться к каналу: %(channel)s в гильдии: %(guild)s" -#: musicbot/bot.py:657 +#: musicbot/bot.py:659 msgid "Discarding MusicPlayer and making a new one..." msgstr "Отмена Музыкального Игрока и создание нового..." -#: musicbot/bot.py:677 +#: musicbot/bot.py:679 msgid "MusicBot will make a new MusicPlayer now..." msgstr "MusicBot теперь создаст новый музыкальный плеер..." -#: musicbot/bot.py:698 +#: musicbot/bot.py:700 #, python-format msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." msgstr "Не присоединяйтесь к %(guild)s/%(channel)s, это не поддерживаемый голосовой канал." -#: musicbot/bot.py:701 +#: musicbot/bot.py:703 msgid "Finished joining configured channels." msgstr "Подключение к настроенным каналам завершено." -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "Участник не включен голосовым путем и не может использовать эту команду." -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "Вы не можете использовать эту команду, если не в голосовом канале." -#: musicbot/bot.py:735 +#: musicbot/bot.py:737 msgid "Getting bot Application Info." msgstr "Получение информации о приложении бота." -#: musicbot/bot.py:760 +#: musicbot/bot.py:762 #, python-format msgid "MusicBot does not have permission to Connect in channel: %s" msgstr "Музыкабот не имеет разрешения на подключение в канале: %s" -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "У Музыкабота нет прав подключаться в канале: `%(name)s`" -#: musicbot/bot.py:769 +#: musicbot/bot.py:771 #, python-format msgid "MusicBot does not have permission to Speak in channel: %s" msgstr "У Музыкабота нет прав говорить в канале: %s" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "У Музыкабота нет прав говорить в канале: `%(name)s`" -#: musicbot/bot.py:783 +#: musicbot/bot.py:785 #, python-format msgid "Reusing bots VoiceClient from guild: %s" msgstr "Повторное использование ботов VoiceClient от гильдии: %s" -#: musicbot/bot.py:788 +#: musicbot/bot.py:790 #, python-format msgid "Forcing disconnect on stale VoiceClient in guild: %s" msgstr "Принудительное отключение от устаревшего VoiceClient в гильдии: %s" -#: musicbot/bot.py:794 +#: musicbot/bot.py:796 msgid "Disconnect failed or was cancelled?" msgstr "Отключение не удалось или было отменено?" -#: musicbot/bot.py:802 +#: musicbot/bot.py:804 #, python-format msgid "MusicBot is unable to connect to the channel right now: %(channel)s" msgstr "Музыкабот не может подключиться к каналу прямо сейчас: %(channel)s" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "" -#: musicbot/bot.py:817 +#: musicbot/bot.py:819 msgid "MusicBot has a VoiceClient now..." msgstr "У MusicBot есть VoiceClient сейчас..." -#: musicbot/bot.py:822 +#: musicbot/bot.py:824 #, python-format msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" msgstr "Повторная попытка подключения после ошибки таймаута (%(attempt)s) при попытке подключиться к %(channel)s" -#: musicbot/bot.py:827 +#: musicbot/bot.py:829 msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." msgstr "Попытка соединения с MusicBot VoiceClient отменена. Повторите попытку." -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "Подключение MusicBot к голосу было отменено. Это странно. Может быть перезапустить?" -#: musicbot/bot.py:840 musicbot/bot.py:8386 +#: musicbot/bot.py:838 musicbot/bot.py:8471 +#, python-format +msgid "MusicBot is requesting to speak in channel: %s" +msgstr "Музыкальный робот просит говорить в канале: %s" + +#: musicbot/bot.py:843 musicbot/bot.py:8477 msgid "MusicBot does not have permission to speak." msgstr "У MusicBot нет разрешения на чтение." -#: musicbot/bot.py:844 musicbot/bot.py:8388 +#: musicbot/bot.py:847 musicbot/bot.py:8479 msgid "MusicBot could not request to speak." msgstr "MusicBot не может просить говорить." -#: musicbot/bot.py:857 +#: musicbot/bot.py:860 #, python-format msgid "Disconnecting a MusicPlayer in guild: %s" msgstr "Отключение MusicPlayer в гильдии: %s" -#: musicbot/bot.py:869 +#: musicbot/bot.py:872 msgid "Disconnecting VoiceClient before we kill the MusicPlayer." msgstr "Отключение VoiceClient до того, как мы убьем MusicPlayer." -#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 -#: musicbot/bot.py:931 +#: musicbot/bot.py:880 musicbot/bot.py:899 musicbot/bot.py:911 +#: musicbot/bot.py:934 msgid "The disconnect failed or was cancelled." msgstr "Отключение не удалось или было отменено." -#: musicbot/bot.py:887 +#: musicbot/bot.py:890 msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." msgstr "У MusicBot есть VoiceProtocol который не является VoiceClient." -#: musicbot/bot.py:900 +#: musicbot/bot.py:903 #, python-format msgid "Disconnecting a rogue VoiceClient in guild: %s" msgstr "Отключение неточного VoiceClient в гильдии: %s" -#: musicbot/bot.py:924 +#: musicbot/bot.py:927 msgid "Disconnecting a non-guild VoiceClient..." msgstr "Отключение VoiceClient, не являющийся гильдией..." -#: musicbot/bot.py:934 +#: musicbot/bot.py:937 #, python-format msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" "The object is actually of type: %s" msgstr "Список MusicBot.voice_clients содержит объект, отличный от VoiceClient?\n" "На самом деле тип объекта: %s" -#: musicbot/bot.py:944 +#: musicbot/bot.py:947 #, python-format msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" msgstr "У нас все еще есть отзыв MusicPlayer в гильдии (%(guild_id)s): %(player)r" -#: musicbot/bot.py:957 +#: musicbot/bot.py:960 #, python-format msgid "Guild (%(guild)s) wants a player, optional: %(player)r" msgstr "Гильдия (%(guild)s) хочет игрока, опционально: %(player)r" -#: musicbot/bot.py:964 +#: musicbot/bot.py:967 msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." msgstr "[BUG] В MusicPlayer отсутствует VoiceClient, скорее всего вам следует перезапустить бота." -#: musicbot/bot.py:969 +#: musicbot/bot.py:972 msgid "MusicPlayer has a VoiceClient that is not connected." msgstr "У MusicPlayer есть VoiceClient который не подключен." -#: musicbot/bot.py:970 +#: musicbot/bot.py:973 #, python-format msgid "MusicPlayer obj: %r" msgstr "Музыкальный проигрыватель: %r" -#: musicbot/bot.py:971 +#: musicbot/bot.py:974 #, python-format msgid "VoiceClient obj: %r" msgstr "VoiceClient obj: %r" -#: musicbot/bot.py:991 +#: musicbot/bot.py:994 #, python-format msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" msgstr "Получение Музыкального Игрока для гильдии: %(guild)s В Канале: %(channel)s Создать: %(create)s Дестрализация: %(serial)s" -#: musicbot/bot.py:1007 +#: musicbot/bot.py:1010 #, python-format msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" msgstr "Создан игрок посредством десериализации для гильдии %(guild_id)s с записями %(number)s" -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "" -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "Что-то не так, мы не получили VoiceClient." -#: musicbot/bot.py:1061 +#: musicbot/bot.py:1064 msgid "Running on_player_play" msgstr "Выполняется на _плеере" -#: musicbot/bot.py:1136 +#: musicbot/bot.py:1139 #, python-format msgid "Setting URL history guild %(guild_id)s == %(url)s" msgstr "Установка истории URL гильдии %(guild_id)s == %(url)s" -#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#: musicbot/bot.py:1175 musicbot/bot.py:4809 #, python-format msgid "No thumbnail set for entry with URL: %s" msgstr "Нет миниатюры для записи с URL: %s" -#: musicbot/bot.py:1184 +#: musicbot/bot.py:1187 msgid "no channel to put now playing message into" msgstr "нет канала для воспроизведения сообщения" -#: musicbot/bot.py:1196 +#: musicbot/bot.py:1199 msgid "ignored now-playing message as it was already posted." msgstr "проигнорировал сейчас воспроизводимое сообщение, поскольку оно уже было опубликовано." -#: musicbot/bot.py:1220 +#: musicbot/bot.py:1223 msgid "Running on_player_resume" msgstr "Выполняется на плеер_возобновление" -#: musicbot/bot.py:1233 +#: musicbot/bot.py:1236 msgid "Running on_player_pause" msgstr "Пауза" -#: musicbot/bot.py:1249 +#: musicbot/bot.py:1252 msgid "Running on_player_stop" msgstr "Выполняется по игроку_стопу" -#: musicbot/bot.py:1259 +#: musicbot/bot.py:1262 msgid "Running on_player_finished_playing" msgstr "Выполняется на игровом автомате" -#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +#: musicbot/bot.py:1264 musicbot/bot.py:1310 musicbot/bot.py:1381 msgid "Event loop is closed, nothing else to do here." msgstr "Цикл события закрыт, здесь нет ничего другого." -#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +#: musicbot/bot.py:1268 musicbot/bot.py:1314 musicbot/bot.py:1385 msgid "Logout under way, ignoring this event." msgstr "Выход из системы, игнорирует это событие." -#: musicbot/bot.py:1282 +#: musicbot/bot.py:1285 msgid "VoiceClient says it is not connected, nothing else we can do here." msgstr "VoiceClient говорит, что он не подключен, ничего другого мы можем сделать здесь." -#: musicbot/bot.py:1289 +#: musicbot/bot.py:1292 msgid "Player finished and queue is empty, leaving voice channel..." msgstr "Плеер завершён и очередь пуста, покидая голосовой канал..." -#: musicbot/bot.py:1303 +#: musicbot/bot.py:1306 msgid "Looping over queue to expunge songs with missing author..." msgstr "Зацикливание над очередью для исключения песен с недостающим автором..." -#: musicbot/bot.py:1342 +#: musicbot/bot.py:1345 #, python-format msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" msgstr "Автор `%(user)s` отсутствует, пропущен (удален) запись из очереди: %(song)s" -#: musicbot/bot.py:1361 +#: musicbot/bot.py:1364 msgid "No playable songs in the Guild autoplaylist, disabling." msgstr "Нет воспроизводимых песен в автомате гильдии, отключается." -#: musicbot/bot.py:1366 +#: musicbot/bot.py:1369 msgid "No content in current autoplaylist. Filling with new music..." msgstr "Нет содержимого в текущем автомате. Заполнение новой музыкой..." -#: musicbot/bot.py:1374 +#: musicbot/bot.py:1377 msgid "Looping over player autoplaylist..." msgstr "Зацикливание автоматов игрока..." -#: musicbot/bot.py:1415 +#: musicbot/bot.py:1418 #, python-format msgid "Error while processing song \"%(url)s\": %(raw_error)s" msgstr "Ошибка при обработке песни \"%(url)s\": %(raw_error)s" -#: musicbot/bot.py:1426 +#: musicbot/bot.py:1429 #, python-format msgid "Error extracting song \"%(url)s\": %(raw_error)s" msgstr "Ошибка распаковки песни \"%(url)s\": %(raw_error)s" -#: musicbot/bot.py:1441 +#: musicbot/bot.py:1444 msgid "MusicBot needs to stop the auto playlist extraction and bail." msgstr "MusicBot должен остановить извлечение автоплейлиста и залог." -#: musicbot/bot.py:1446 +#: musicbot/bot.py:1449 msgid "MusicBot got an unhandled exception in player finished event." msgstr "MusicBot получил необработанное исключение в игроке законченное событие." -#: musicbot/bot.py:1452 +#: musicbot/bot.py:1455 #, python-format msgid "Expanding auto playlist with entries extracted from: %s" msgstr "Развертывание автоплейлиста с записями, извлеченными из: %s" -#: musicbot/bot.py:1476 +#: musicbot/bot.py:1479 #, python-format msgid "Error adding song from autoplaylist: %s" msgstr "Ошибка добавления трека из автомата: %s" -#: musicbot/bot.py:1479 +#: musicbot/bot.py:1482 msgid "Exception data for above error:" msgstr "Данные об исключении для вышеописанной ошибки:" -#: musicbot/bot.py:1485 +#: musicbot/bot.py:1488 msgid "No playable songs in the autoplaylist, disabling." msgstr "Нет воспроизводимых песен в автомате, отключается." -#: musicbot/bot.py:1505 +#: musicbot/bot.py:1508 msgid "Running on_player_entry_added" msgstr "Выполняется по игроку_entry_added" -#: musicbot/bot.py:1515 +#: musicbot/bot.py:1518 msgid "Automatically skipping auto-playlist entry for queued entry." msgstr "Автоматически пропускать запись в список автовоспроизведения для записи в очереди." -#: musicbot/bot.py:1535 +#: musicbot/bot.py:1538 #, python-format msgid "MusicPlayer exception for entry: %r" msgstr "Исключение из музыкального плеера для записи: %r" -#: musicbot/bot.py:1541 +#: musicbot/bot.py:1544 msgid "MusicPlayer exception." msgstr "Исключение из музыкального плеера." -#: musicbot/bot.py:1565 +#: musicbot/bot.py:1568 #, python-format msgid "Auto playlist track could not be played: %r" msgstr "Не удалось воспроизвести трек автоплейлиста: %r" -#: musicbot/bot.py:1604 +#: musicbot/bot.py:1607 msgid "Logout under way, ignoring status update event." msgstr "Идет выход из системы, проигнорировано событие обновления статуса." -#: musicbot/bot.py:1705 +#: musicbot/bot.py:1708 #, python-format msgid "Update bot status: %(status)s -- %(activity)r" msgstr "Статус бота: %(status)s -- %(activity)r" -#: musicbot/bot.py:1733 +#: musicbot/bot.py:1736 #, python-format msgid "Serializing queue for %s" msgstr "Сериализация очереди для %s" -#: musicbot/bot.py:1759 +#: musicbot/bot.py:1762 #, python-format msgid "Deserializing queue for %s" msgstr "Десериализация очереди для %s" -#: musicbot/bot.py:1777 +#: musicbot/bot.py:1780 #, python-format msgid "Writing current song for %s" msgstr "Запись текущей песни для %s" -#: musicbot/bot.py:1802 +#: musicbot/bot.py:1805 #, python-format msgid "Cannot send non-response object: %r" msgstr "Не удается отправить объект без ответа: %r" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "[Dev Bug] Попытка отправить некорректный объект ответа." -#: musicbot/bot.py:1835 +#: musicbot/bot.py:1838 #, python-format msgid "sending embed to: %s" msgstr "отправка вставки на: %s" -#: musicbot/bot.py:1838 +#: musicbot/bot.py:1841 #, python-format msgid "sending text to: %s" msgstr "отправка текста в: %s" -#: musicbot/bot.py:1843 +#: musicbot/bot.py:1846 #, python-format msgid "Cannot send message to \"%s\", no permission" msgstr "Не удается отправить сообщение \"%s\", нет разрешения" -#: musicbot/bot.py:1850 +#: musicbot/bot.py:1853 #, python-format msgid "Cannot send message to \"%s\", invalid or deleted channel" msgstr "Не удается отправить сообщение \"%s\", недопустимый или удаленный канал" -#: musicbot/bot.py:1858 +#: musicbot/bot.py:1861 #, python-format msgid "Message is over the message size limit (%s)" msgstr "Сообщение превышает предел размера сообщения (%s)" -#: musicbot/bot.py:1866 +#: musicbot/bot.py:1869 msgid "Could not send private message, sending in fallback channel instead." msgstr "Не удалось отправить личное сообщение, вместо этого отправка в резервный канал." -#: musicbot/bot.py:1884 +#: musicbot/bot.py:1887 #, python-format msgid "Rate limited send message, retrying in %s seconds." msgstr "Оценить ограниченное количество отправленных сообщений, повторить попытку через %s секунд." -#: musicbot/bot.py:1890 +#: musicbot/bot.py:1893 #, python-format msgid "Cancelled message retry for: %s" msgstr "Отменено сообщение повторно: %s" -#: musicbot/bot.py:1895 +#: musicbot/bot.py:1898 msgid "Rate limited send message, but cannot retry!" msgstr "Оцените ограниченное количество отправленных сообщений, но не удается повторить попытку!" -#: musicbot/bot.py:1901 +#: musicbot/bot.py:1904 msgid "Failed to send message in fallback channel." msgstr "Не удалось отправить сообщение в запасном канале." -#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +#: musicbot/bot.py:1909 musicbot/bot.py:1973 musicbot/bot.py:2043 msgid "Failed to send due to an HTTP error." msgstr "Не удалось отправить из-за ошибки HTTP." -#: musicbot/bot.py:1932 +#: musicbot/bot.py:1935 #, python-format msgid "Cannot delete message \"%s\", no permission" msgstr "Невозможно удалить сообщение \"%s\", нет разрешения" -#: musicbot/bot.py:1937 +#: musicbot/bot.py:1940 #, python-format msgid "Cannot delete message \"%s\", message not found" msgstr "Невозможно удалить сообщение \"%s\", сообщение не найдено" -#: musicbot/bot.py:1955 +#: musicbot/bot.py:1958 #, python-format msgid "Rate limited message delete, retrying in %s seconds." msgstr "Оцените ограниченное удаление сообщения, повторная попытка через %s секунд." -#: musicbot/bot.py:1960 +#: musicbot/bot.py:1963 msgid "Rate limited message delete, but cannot retry!" msgstr "Оцените ограниченное сообщение удаления, но не могу повторить попытку!" -#: musicbot/bot.py:1963 +#: musicbot/bot.py:1966 msgid "Failed to delete message" msgstr "Не удалось удалить сообщение" -#: musicbot/bot.py:1965 +#: musicbot/bot.py:1968 #, python-format msgid "Got HTTPException trying to delete message: %s" msgstr "Получено HTTPException пытается удалить сообщение: %s" -#: musicbot/bot.py:2000 +#: musicbot/bot.py:2003 #, python-format msgid "Cannot edit message \"%s\", message not found" msgstr "Невозможно изменить сообщение \"%s\", сообщение не найдено" -#: musicbot/bot.py:2004 +#: musicbot/bot.py:2007 msgid "Sending message instead" msgstr "Отправка сообщения" -#: musicbot/bot.py:2021 +#: musicbot/bot.py:2024 #, python-format msgid "Rate limited edit message, retrying in %s seconds." msgstr "Оценить ограниченное сообщение редактирования, повторная попытка через %s секунд." -#: musicbot/bot.py:2027 +#: musicbot/bot.py:2030 #, python-format msgid "Cancelled message edit for: %s" msgstr "Отменено изменение сообщения для: %s" -#: musicbot/bot.py:2033 +#: musicbot/bot.py:2036 msgid "Failed to edit message" msgstr "Не удалось изменить сообщение" -#: musicbot/bot.py:2035 +#: musicbot/bot.py:2038 #, python-format msgid "Got HTTPException trying to edit message %s to: %s" msgstr "Принято HTTPException, пытающееся редактировать сообщение %s в: %s" -#: musicbot/bot.py:2057 +#: musicbot/bot.py:2060 #, python-format msgid "Cancelled delete for message (ID: %(id)s): %(content)s" msgstr "Отменено удаление сообщения (ID: %(id)s): %(content)s" -#: musicbot/bot.py:2119 +#: musicbot/bot.py:2122 #, python-format msgid "Caught a signal from the OS: %s" msgstr "Получен сигнал от ОС: %s" -#: musicbot/bot.py:2123 +#: musicbot/bot.py:2126 msgid "Disconnecting and closing down MusicBot..." msgstr "Отключение и включение MusicBot..." -#: musicbot/bot.py:2126 +#: musicbot/bot.py:2129 msgid "Exception thrown while handling interrupt signal!" msgstr "Исключение выбрасывается при обработке сигнала прерывания!" -#: musicbot/bot.py:2140 +#: musicbot/bot.py:2143 msgid "MusicBot is now doing shutdown steps..." msgstr "MusicBot теперь делает шаги выключения..." -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -768,103 +773,103 @@ msgstr "Ошибка входа в Discord API!\n\n" " Убедитесь, что в конфигурации установлен правильный токен.\n" " Проверка статуса API на официальном сайте: discordstatus.com" -#: musicbot/bot.py:2161 +#: musicbot/bot.py:2164 msgid "Waiting for download threads to finish up..." msgstr "Ожидание окончания потоков загрузки..." -#: musicbot/bot.py:2187 +#: musicbot/bot.py:2190 #, python-format msgid "Will wait for task: %(name)s (%(func)s)" msgstr "Подождите задачи: %(name)s (%(func)s)" -#: musicbot/bot.py:2194 +#: musicbot/bot.py:2197 #, python-format msgid "Will try to cancel task: %(name)s (%(func)s)" msgstr "Попробует отменить задачу: %(name)s (%(func)s)" -#: musicbot/bot.py:2202 +#: musicbot/bot.py:2205 msgid "Awaiting pending tasks..." msgstr "Ожидается ожидание задач..." -#: musicbot/bot.py:2208 +#: musicbot/bot.py:2211 msgid "Closing HTTP Connector." msgstr "Закрытие HTTP-коннектора." -#: musicbot/bot.py:2214 +#: musicbot/bot.py:2217 msgid "Closing aiohttp session." msgstr "Завершение сеанса aiohttp." -#: musicbot/bot.py:2226 +#: musicbot/bot.py:2229 msgid "Logout has been called." msgstr "Выход был вызван." -#: musicbot/bot.py:2238 +#: musicbot/bot.py:2241 #, python-format msgid "Exception in %(event)s:\n" "%(error)s" msgstr "Исключение в %(event)s:\n" "%(error)s" -#: musicbot/bot.py:2254 +#: musicbot/bot.py:2257 #, python-format msgid "Exception in %s" msgstr "Исключение в %s" -#: musicbot/bot.py:2261 +#: musicbot/bot.py:2264 msgid "MusicBot resumed a session with discord." msgstr "Музыкальный робот возобновил сессию с дискордом." -#: musicbot/bot.py:2278 +#: musicbot/bot.py:2281 msgid "Finish on_ready" msgstr "Завершить _готовое" -#: musicbot/bot.py:2285 +#: musicbot/bot.py:2288 msgid "Logged in, now getting MusicBot ready..." msgstr "Вход выполнен, теперь MusicBot готов..." -#: musicbot/bot.py:2288 +#: musicbot/bot.py:2291 msgid "ClientUser is somehow none, we gotta bail..." msgstr "Клиент как-то нет, мы должны забрать гвозд..." -#: musicbot/bot.py:2297 +#: musicbot/bot.py:2300 #, python-format msgid "MusicBot: %(id)s/%(name)s#%(desc)s" msgstr "Музыкабот: %(id)s/%(name)s#%(desc)s" -#: musicbot/bot.py:2308 +#: musicbot/bot.py:2311 #, python-format msgid "Owner: %(id)s/%(name)s#%(desc)s\n" msgstr "Владелец: %(id)s/%(name)s#%(desc)s\n" -#: musicbot/bot.py:2316 musicbot/bot.py:2343 +#: musicbot/bot.py:2319 musicbot/bot.py:2346 msgid "Guild List:" msgstr "Список гильдий:" -#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#: musicbot/bot.py:2323 musicbot/bot.py:2349 musicbot/bot.py:8663 #, python-format msgid " - %s" msgstr " - %s" -#: musicbot/bot.py:2329 +#: musicbot/bot.py:2332 #, python-format msgid "Left %s due to bot owner not found" msgstr "Лев. %s из-за того, что владелец бота не найден" -#: musicbot/bot.py:2334 +#: musicbot/bot.py:2337 #, python-format msgid "Not proceeding with checks in %s servers due to unavailability" msgstr "Не выполняется проверка на серверах %s из-за недоступности" -#: musicbot/bot.py:2340 +#: musicbot/bot.py:2343 #, python-format msgid "Owner could not be found on any guild (id: %s)\n" msgstr "Владелец не найден ни в одной гильдии (id: %s)\n" -#: musicbot/bot.py:2349 +#: musicbot/bot.py:2352 msgid "Owner unknown, bot is not on any guilds." msgstr "Владелец неизвестен, бот не на гильдиях." -#: musicbot/bot.py:2353 +#: musicbot/bot.py:2356 #, python-format msgid "To make the bot join a guild, paste this link in your browser. \n" "Note: You should be logged into your main account and have \n" @@ -875,53 +880,53 @@ msgstr "Чтобы сделать бота присоединится к гил "управлять разрешениями сервера в гильдии, которую вы хотите, чтобы бот присоединился.\n" " %s" -#: musicbot/bot.py:2370 +#: musicbot/bot.py:2373 #, python-format msgid "Got None for bound channel with ID: %d" msgstr "Нет привязки канала с ID: %d" -#: musicbot/bot.py:2376 +#: musicbot/bot.py:2379 #, python-format msgid "Cannot bind to non Messageable channel with ID: %d" msgstr "Не удается привязать к каналу без сообщения с ID: %d" -#: musicbot/bot.py:2390 +#: musicbot/bot.py:2393 msgid "Bound to text channels:" msgstr "Привязано к текстовым каналам:" -#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#: musicbot/bot.py:2407 musicbot/bot.py:2457 #, python-format msgid " - %(guild)s/%(channel)s" msgstr " - %(guild)s/%(channel)s" -#: musicbot/bot.py:2408 musicbot/bot.py:2410 +#: musicbot/bot.py:2411 musicbot/bot.py:2413 msgid "Not bound to any text channels" msgstr "Нет привязки к текстовым каналам" -#: musicbot/bot.py:2421 +#: musicbot/bot.py:2424 #, python-format msgid "Got None for auto join channel with ID: %d" msgstr "Нет для автоподключения к каналу с ID: %d" -#: musicbot/bot.py:2427 +#: musicbot/bot.py:2430 #, python-format msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" msgstr "Невозможно автоматически присоединиться к частному каналу негильдии с ID: %d" -#: musicbot/bot.py:2435 +#: musicbot/bot.py:2438 #, python-format msgid "Cannot auto join to non-connectable channel with ID: %d" msgstr "Невозможно автоматически подключиться к каналу без подключения с ID: %d" -#: musicbot/bot.py:2451 +#: musicbot/bot.py:2454 msgid "Auto joining voice channels:" msgstr "Автоподсоединение к голосовым каналам:" -#: musicbot/bot.py:2459 musicbot/bot.py:2462 +#: musicbot/bot.py:2462 musicbot/bot.py:2465 msgid "Not auto joining any voice channels" msgstr "Не подключаться к голосовым каналам" -#: musicbot/bot.py:2475 +#: musicbot/bot.py:2478 #, python-format msgid "Detected missing config options!\n\n" "Problem:\n" @@ -934,949 +939,962 @@ msgid "Detected missing config options!\n\n" " Or use the config command to set and save them.\n\n" msgstr "" -#: musicbot/bot.py:2504 +#: musicbot/bot.py:2507 #, python-format msgid "Event on_ready has fired %s times" msgstr "" -#: musicbot/bot.py:2520 +#: musicbot/bot.py:2523 msgid "Getting application info." msgstr "Получение информации о приложении." -#: musicbot/bot.py:2538 +#: musicbot/bot.py:2541 msgid "Ensuring data folders exist" msgstr "Обеспечение наличия папок данных существует" -#: musicbot/bot.py:2553 +#: musicbot/bot.py:2556 msgid "Validating config" msgstr "Проверка конфигурации" -#: musicbot/bot.py:2556 +#: musicbot/bot.py:2559 msgid "Validating permissions config" msgstr "Проверка конфигурации прав доступа" -#: musicbot/bot.py:2566 +#: musicbot/bot.py:2569 msgid "Disabled" msgstr "Отключено" -#: musicbot/bot.py:2566 +#: musicbot/bot.py:2569 msgid "Enabled" msgstr "Включено" -#: musicbot/bot.py:2569 +#: musicbot/bot.py:2572 msgid "Options:" msgstr "Параметры:" -#: musicbot/bot.py:2571 +#: musicbot/bot.py:2574 #, python-format msgid " Command prefix: %s" msgstr " Префикс команды: %s" -#: musicbot/bot.py:2572 +#: musicbot/bot.py:2575 #, python-format msgid " Default volume: %d%%" msgstr " По умолчанию: %d%%" -#: musicbot/bot.py:2574 +#: musicbot/bot.py:2577 #, python-format msgid " Skip threshold: %(num)d votes or %(percent).0f%%" msgstr " Пропустить порог: %(num)d голосов или %(percent).0f%%" -#: musicbot/bot.py:2581 +#: musicbot/bot.py:2584 #, python-format msgid " Now Playing @mentions: %s" msgstr " Играет в @mentions: %s" -#: musicbot/bot.py:2584 +#: musicbot/bot.py:2587 #, python-format msgid " Auto-Summon: %s" msgstr " Автовызов: %s" -#: musicbot/bot.py:2586 +#: musicbot/bot.py:2589 #, python-format msgid " Auto-Playlist: %(status)s (order: %(order)s)" msgstr " Автоплейлист: %(status)s (заказ: %(order)s)" -#: musicbot/bot.py:2589 +#: musicbot/bot.py:2592 msgid "random" msgstr "случайный" -#: musicbot/bot.py:2589 +#: musicbot/bot.py:2592 msgid "sequential" msgstr "последовательный" -#: musicbot/bot.py:2594 +#: musicbot/bot.py:2597 #, python-format msgid " Auto-Pause: %s" msgstr " Автопауза: %s" -#: musicbot/bot.py:2596 +#: musicbot/bot.py:2599 #, python-format msgid " Delete Messages: %s" msgstr " Удалить сообщения: %s" -#: musicbot/bot.py:2601 +#: musicbot/bot.py:2604 #, python-format msgid " Delete Invoking: %s" msgstr " Удалить вызов: %s" -#: musicbot/bot.py:2605 +#: musicbot/bot.py:2608 #, python-format msgid " Delete Now Playing: %s" msgstr " Удалить сейчас Играет: %s" -#: musicbot/bot.py:2608 +#: musicbot/bot.py:2611 #, python-format msgid " Debug Mode: %s" msgstr " Режим отладки: %s" -#: musicbot/bot.py:2610 +#: musicbot/bot.py:2613 #, python-format msgid " Downloaded songs will be %s" msgstr " Загруженные песни будут %s" -#: musicbot/bot.py:2614 +#: musicbot/bot.py:2617 #, python-format msgid " Delete if unused for %d days" msgstr " Удалить если не использовано для %d дней" -#: musicbot/bot.py:2617 +#: musicbot/bot.py:2620 #, python-format msgid " Delete if size exceeds %s" msgstr " Удалять, если размер превышает %s" -#: musicbot/bot.py:2620 +#: musicbot/bot.py:2623 #, python-format msgid " Status message: %s" msgstr " Сообщение статуса: %s" -#: musicbot/bot.py:2622 +#: musicbot/bot.py:2625 #, python-format msgid " Write current songs to file: %s" msgstr " Записать текущие песни в файл: %s" -#: musicbot/bot.py:2626 +#: musicbot/bot.py:2629 #, python-format msgid " Author insta-skip: %s" msgstr " Автор Insta-skip: %s" -#: musicbot/bot.py:2629 +#: musicbot/bot.py:2632 #, python-format msgid " Embeds: %s" msgstr " Embeds: %s" -#: musicbot/bot.py:2631 +#: musicbot/bot.py:2634 #, python-format msgid " Spotify integration: %s" msgstr " Интеграция Spotify: %s" -#: musicbot/bot.py:2634 +#: musicbot/bot.py:2637 #, python-format msgid " Legacy skip: %s" msgstr " Пропуск старого: %s" -#: musicbot/bot.py:2636 +#: musicbot/bot.py:2639 #, python-format msgid " Leave non owners: %s" msgstr " Оставить невладельцев: %s" -#: musicbot/bot.py:2640 +#: musicbot/bot.py:2643 #, python-format msgid " Leave inactive VC: %s" msgstr " Оставить неактивный VC: %s" -#: musicbot/bot.py:2645 +#: musicbot/bot.py:2648 #, python-format msgid " Timeout: %s seconds" msgstr " Таймаут: %s секунд" -#: musicbot/bot.py:2649 +#: musicbot/bot.py:2652 #, python-format msgid " Leave at song end/empty queue: %s" msgstr " Оставить на конец и пустую очередь: %s" -#: musicbot/bot.py:2653 +#: musicbot/bot.py:2656 #, python-format msgid " Leave when player idles: %s" msgstr " Оставь, когда игрок фармит: %s" -#: musicbot/bot.py:2657 +#: musicbot/bot.py:2660 #, python-format msgid " Timeout: %d seconds" msgstr " Таймаут: %d секунд" -#: musicbot/bot.py:2658 +#: musicbot/bot.py:2661 #, python-format msgid " Self Deafen: %s" msgstr " Самоглушено: %s" -#: musicbot/bot.py:2660 +#: musicbot/bot.py:2663 #, python-format msgid " Per-server command prefix: %s" msgstr " Префикс команды на сервер: %s" -#: musicbot/bot.py:2663 +#: musicbot/bot.py:2666 #, python-format msgid " Search List: %s" msgstr " Список поиска: %s" -#: musicbot/bot.py:2665 +#: musicbot/bot.py:2668 #, python-format msgid " Round Robin Queue: %s" msgstr " Очередь грабинов: %s" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "Запрошенная песня `%(subject)s` заблокирована списком блоков песен." -#: musicbot/bot.py:2706 +#: musicbot/bot.py:2709 msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." msgstr "Пытался работать с 'Голосовым каналом', но бот не в голосе..." -#: musicbot/bot.py:2713 +#: musicbot/bot.py:2716 #, python-format msgid "Channel activity already waiting in guild: %s" msgstr "Активность канала уже ожидается в гильдии: %s" -#: musicbot/bot.py:2723 +#: musicbot/bot.py:2726 #, python-format msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" msgstr "Действия канала ожидают %(time)d секунд, чтобы покинуть канал: %(channel)s" -#: musicbot/bot.py:2738 +#: musicbot/bot.py:2741 #, python-format msgid "Channel activity timer for %s has expired. Disconnecting." msgstr "Таймер активности канала для %s истек. Отсоединение." -#: musicbot/bot.py:2744 +#: musicbot/bot.py:2747 #, python-format msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" msgstr "Таймер активности канала отменен для: %(channel)s в %(guild)s" -#: musicbot/bot.py:2772 +#: musicbot/bot.py:2775 #, python-format msgid "Ignoring player inactivity in auto-joined channel: %s" msgstr "Игнорирование бездействия игрока в автоподключенном канале: %s" -#: musicbot/bot.py:2779 +#: musicbot/bot.py:2782 #, python-format msgid "Player activity timer already waiting in guild: %s" msgstr "Таймер активности игрока уже ждет гильдии: %s" -#: musicbot/bot.py:2787 +#: musicbot/bot.py:2790 #, python-format msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" msgstr "Таймер активности игрока, ожидающий %(time)d секунд, чтобы покинуть канал: %(channel)s" -#: musicbot/bot.py:2799 +#: musicbot/bot.py:2802 #, python-format msgid "Player activity timer for %s has expired. Disconnecting." msgstr "Таймер активности игрока %s истек. Отсоединение." -#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#: musicbot/bot.py:2808 musicbot/bot.py:2813 #, python-format msgid "Player activity timer canceled for: %(channel)s in %(guild)s" msgstr "Таймер активности игрока отменен для: %(channel)s в %(guild)s" -#: musicbot/bot.py:2827 +#: musicbot/bot.py:2830 msgid "Player activity timer is being reset." msgstr "Таймер активности игрока восстанавливается." -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "Нет такой команды" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "Вы должны указать пользователя или указать его идентификационный номер." -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "Неверная субкоманда. Для примеров использования используйте `help blockuser`." -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBot не может найти указанного пользователя." -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "Владелец не может быть добавлен в заблокированный список." -#: musicbot/bot.py:3043 +#: musicbot/bot.py:3046 #, python-format msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" msgstr "Не добавляет пользователя в чёрный список, уже заблокирован: %(id)s/%(name)s" -#: musicbot/bot.py:3052 +#: musicbot/bot.py:3055 #, python-format msgid "Not removing user from block list, not listed: %(id)s/%(name)s" msgstr "Не удаляется пользователь из черного списка, не в списке: %(id)s/%(name)s" -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "Не удается добавить пользователей, которые вы указали, они уже добавлены." -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "Вы должны предоставить тему песни, если песня в настоящее время не воспроизводится." -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "Неверная субкоманда. Используйте `help blocksong` для примеров использования." -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "Тема `%(subject)s` уже находится в списке блоков песен." -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "Тема отсутствует в списке блоков песни и не может быть удалена." -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "Неверная субкоманда. Используйте `help autoplaylist` для примеров использования." -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "Недействительная ссылка на песню" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "Очередь пуста. Добавьте несколько песен с помощью команды воспроизведения!" -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "Эта песня уже есть в автомате." -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "Эта песня еще не находится в автомате." -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "Вы должны указать имя файла плейлиста." -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "Вам не разрешено запрашивать плейлисты" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "Плейлист имеет слишком много записей (%(songs)s , но максимум %(max)s)" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" "The limit is %(max)s for your group." msgstr "" -#: musicbot/bot.py:3471 +#: musicbot/bot.py:3474 msgid "Ignoring auto-pause due to network outage." msgstr "Игнорирование автопаузы из-за отключения сети." -#: musicbot/bot.py:3476 +#: musicbot/bot.py:3479 msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." msgstr "У MusicPlayer нет VoiceClient или нет данных о каналах, не может работать с автопаузами." -#: musicbot/bot.py:3487 +#: musicbot/bot.py:3490 msgid "Already processing auto-pause, ignoring this event." msgstr "Уже обрабатывается автопауза, игнорируется это событие." -#: musicbot/bot.py:3495 +#: musicbot/bot.py:3498 #, python-format msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" msgstr "%sVoiceClient не подключен, ожидание %s секунд для обработки автопаузы в гильдии: %s" -#: musicbot/bot.py:3503 +#: musicbot/bot.py:3506 msgid "Auto-pause waiting was cancelled." msgstr "Ожидание автопаузы было отменено." -#: musicbot/bot.py:3510 +#: musicbot/bot.py:3513 msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." msgstr "Подключается новый музыкальный плеер, игнорируя старое событие автопаузы." -#: musicbot/bot.py:3526 +#: musicbot/bot.py:3529 #, python-format msgid "Playing in an empty voice channel, running auto pause for guild: %s" msgstr "Проигрывание в пустом голосовом канале, запуск автопаузы для гильдии: %s" -#: musicbot/bot.py:3533 +#: musicbot/bot.py:3536 #, python-format msgid "Previously auto paused player is unpausing for guild: %s" msgstr "Ранее автопауза игрока не приостанавливается для гильдии: %s" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "Невозможно использовать поиск, если нет проигрывания." -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "Невозможно использовать поиск по текущему треку, он имеет неизвестную длительность." -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "Поиск не поддерживается для потоков." -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "Невозможно использовать переключение без времени для размещения воспроизведения." -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "Не удалось преобразовать `%(input)s` в допустимое время в секундах." -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "Не удается переключиться в `%(input)s` (`%(seconds)s` секунд) в текущем треке длиной `%(progress)s / %(total)s`" -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "Неверная субкоманда. Используйте команду `help repeat` для примеров использования." -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "Игрок в данный момент не зацикливается." -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "Позиции песни должны быть целыми!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "Вы поставили позицию за пределами плейлиста!" -#: musicbot/bot.py:4025 +#: musicbot/bot.py:4028 msgid "Could not prompt for playlist playback, no message to add reactions to." msgstr "Не удалось запросить воспроизведение плейлиста, нет сообщений для добавления реакций." -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "Воспроизведение локального медиа не включено." -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "URL-адрес Spotify недействителен или в настоящее время не поддерживается." -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "Обнаружен URL-адрес Spotify, но Spotify не включен." -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "Вы достигли лимита на добавленные песни (%(max)s)" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "Караоке-режим включен, попробуйте еще раз, когда он отключен!" -#: musicbot/bot.py:4187 +#: musicbot/bot.py:4190 msgid "Issue with extract_info(): " msgstr "Проблема с extract_info(): " -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "Не удалось извлечь информацию из-за ошибки:\n" "%(raw_error)s" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "Это видео не может быть воспроизведено. Попробуйте использовать команду трансляции." -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "Поиск YouTube не дал результатов по запросу: %(url)s" -#: musicbot/bot.py:4238 +#: musicbot/bot.py:4241 #, python-format msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" msgstr "Обработано %(number)d из %(total)d песен в %(time).3f секунд на %(time_per).2f / песню" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "Не было добавлено треков, все песни были больше длительности (%(max)s секунд)" -#: musicbot/bot.py:4265 +#: musicbot/bot.py:4268 msgid "Extracted an entry with 'youtube:playlist' as extractor key" msgstr "Извлечь запись с помощью клавиши 'youtube:playlist'" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "Длительность песни превышает предел (%(length)s > %(max)s)" -#: musicbot/bot.py:4295 +#: musicbot/bot.py:4298 #, python-format msgid "Added song(s) at position %s" msgstr "Добавлена песня(и) на позиции %s" -#: musicbot/bot.py:4332 +#: musicbot/bot.py:4335 #, python-format msgid "Cannot estimate time until playing for position: %d" msgstr "Не удается оценить время до игры за позицию: %d" -#: musicbot/bot.py:4393 +#: musicbot/bot.py:4396 #, python-format msgid "Failed to get info from the stream request: %s" msgstr "Не удалось получить информацию из запроса потока: %s" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Потоковые плейлисты еще не поддерживаются." -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Вы достигли предела в плейлисте (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Пожалуйста, укажите поисковый запрос. Используйте `help search` для получения дополнительной информации." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "Вы не можете искать более чем %(max)s видео" -#: musicbot/bot.py:4834 +#: musicbot/bot.py:4837 #, python-format msgid "Waiting for summon lock: %s" msgstr "Ожидание вызова: %s" -#: musicbot/bot.py:4837 +#: musicbot/bot.py:4840 #, python-format msgid "Summon lock acquired for: %s" msgstr "Призвать замок для: %s" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "Вы не подключены к голосу. Попробуйте подключиться к голосовому каналу!" -#: musicbot/bot.py:4866 +#: musicbot/bot.py:4869 #, python-format msgid "Joining %(guild)s/%(channel)s" msgstr "Присоединение к %(guild)s/%(channel)s" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot не может следить за пользователем, не являющимся членом сервера." -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Плеер не играет." -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Нечего удалять в очереди!" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "В очереди у пользователя `%(user)s ничего не найдено" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "У вас недостаточно прав для удаления этой записи из очереди.\n" "Вы должны быть тот, кто поставил его в очередь или имеет мгновенные пропуска." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Неверный номер записи. Используйте команду очереди для поиска позиций." -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Нельзя пропустить! Игрок не играет!" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "У вас недостаточно прав для принудительного пропуска циклической песни." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "У вас нет разрешения на принудительный пропуск." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "У вас нет разрешения на пропуск зацикливаемой песни." -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` не является допустимым числом" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Неприемлемое изменение объема предусматривается: %(old_volume)s%(adjustment)s является %(new_volume)s.\n" "Том может быть установлен только от 1 до 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Неприемлемый объём: %(volume)s. Предоставьте значение от 1 до 100." -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "" -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "Скорость не может быть применена к потоковым носителям." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Вы должны предоставить скорость для установки." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "Предоставленная вами скорость является недопустимой. Используйте число в диапазоне от 0.5 до 100." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Недопустимый параметр для команды: `%(option)s`" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Не удалось сохранить псевдонимы из-за ошибки:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Вы должны указать псевдоним и команду для псевдонима" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Вы должны указать имя псевдонима для удаления." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "Псевдоним `%(alias)s` не существует." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "Конфигурация не может использовать канал и упоминания пользователя одновременно." -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Не удалось перезагрузить конфигурацию из-за следующей ошибки:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Не удалось определить название секции с названием опции. Пожалуйста, укажите корректный раздел и название опции." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "Указанная опция является неоднозначной, укажите название раздела." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Вы должны указать название раздела и название параметра для этой команды." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "Раздел `%(section)s` недоступен.\n" "Доступные разделы: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "Опция `%(option)s` недоступна." -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "Параметр `%(option)s` не редактируется. Невозможно сохранить на диск." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Не удалось сохранить опцию: `%(option)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "Параметр `%(option)s` не может быть отредактирован, значение не отображается." -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "Параметр `%(option)s` не редактируется. Не удается обновить параметр." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Вы должны указать раздел, параметр и значение для этой подкоманды." -#: musicbot/bot.py:5810 +#: musicbot/bot.py:5813 #, python-format msgid "Doing set with on %(config)s == %(value)s" msgstr "Выполнение установлено с помощью %(config)s == %(value)s" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "Опция `%(option)s` не была обновлена!" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "Параметр `%(option)s` не является редактируемым. Невозможно сбросить к значению по умолчанию." -#: musicbot/bot.py:5845 +#: musicbot/bot.py:5848 #, python-format msgid "Resetting %(config)s to default %(value)s" msgstr "Сброс %(config)s на стандартный %(value)s" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "Параметр `%(option)s` не был сброшен до значения по умолчанию!" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "Команда опции является устаревшим, используйте команду config." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Указан неверный параметр, используйте информацию: info, update, or clear" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Не удалось** удалить кэш, проверьте журналы для получения дополнительной информации..." -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "Аргумент очереди страницы должен быть целым числом." -#: musicbot/bot.py:6004 +#: musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "Нет песен в очереди! Очередь что-то с помощью команды воспроизведения." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "" -#: musicbot/bot.py:6056 +#: musicbot/bot.py:6057 msgid "Skipped the current playlist entry." msgstr "Текущий элемент плейлиста пропущен." -#: musicbot/bot.py:6099 +#: musicbot/bot.py:6100 msgid "Not enough entries to paginate the queue." msgstr "Недостаточно записей для создания нужной очереди." -#: musicbot/bot.py:6103 +#: musicbot/bot.py:6104 msgid "Could not post queue message, no message to add reactions to." msgstr "Не удалось отправить сообщение в очередь. Нет сообщений для добавления реакций." -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "" -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Нельзя использовать очистку в приватном ЛС канале." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "Указанный URL не является допустимым URL." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Не удалось извлечь информацию из входного url\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "Похоже, что это не плейлист." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "Неверный ID пользователя или имя сервера, проверьте ID и повторите попытку." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Не удалось определить пользователя discord. Попробуйте еще раз." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Права доступа не могут использовать каналы и упоминания пользователей одновременно." -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Не удается перезагрузить разрешения из-за ошибки:\n" "%(raw_error)s" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Вы должны указать название группы или опции для этой команды." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Вы должны указать группу, опцию и значение для этой команды." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "Субкоманда %(option)s требует имя группы и прав доступа." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "Группа `%(group)s` недоступна.\n" "Доступные группы: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "Разрешение `%(option)s` недоступно." -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Невозможно добавить группу `%(group)s`, она уже существует." -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Невозможно удалить встроенную группу." -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "Группа владельцев не редактируется." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Не удалось сохранить группу: `%(group)s`" -#: musicbot/bot.py:6736 +#: musicbot/bot.py:6737 #, python-format msgid "Doing set on %(option)s with value: %(value)s" msgstr "Выполнение установлено на %(option)s со значением: %(value)s" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Разрешение `%(option)s` не было обновлено!" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Не удалось изменить имя пользователя. Вы изменили имена слишком много раз?\n" "Запомнить, что изменения имени ограничены дважды в час.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Не удалось изменить имя пользователя из-за ошибки: \n" "%(raw_error)s" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Невозможно изменить никнейм: нет разрешения." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Не удалось задать псевдоним из-за ошибки: \n" "%(raw_error)s" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Пользовательские эмодзи должны быть с этого сервера, чтобы использовать в качестве префикса." -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Префикс на сервер не включен!\n" "Используйте команду конфигурации для обновления префикса." -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Эта команда может быть использована только в гильдиях." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Неверная субкоманда. Используйте команду справки для получения дополнительной информации." + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Не удается установить язык в `%(locale)s`, он недоступен." + +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "Вы должны указать URL или прикрепить файл." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Невозможно изменить аватар из-за ошибки: \n" "%(raw_error)s" -#: musicbot/bot.py:6940 +#: musicbot/bot.py:7014 #, python-format msgid "MusicBot found a %s with no guild! This could be a problem." msgstr "MusicBot обнаружил %s без гильдии! Это может быть проблемой." -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Сейчас не подключен к серверу`%(guild)s`" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Недопустимый параметр, используйте один из: мягкий, полный, обновление, uppip, или upgit" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Вы должны указать ID или имя." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "Не найдено ни одной гильдии с ID или именем `%(input)s`" -#: musicbot/bot.py:7172 +#: musicbot/bot.py:7246 #, python-format msgid "Activating debug breakpoint ID: %(uuid)s" msgstr "Активация точки останова ID: %(uuid)s" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Не удалось импортировать `objgraph`, он установлен?" -#: musicbot/bot.py:7287 +#: musicbot/bot.py:7361 msgid "Debug code ran with eval()." msgstr "Код отладки запускался с помощью eval()." -#: musicbot/bot.py:7297 +#: musicbot/bot.py:7371 msgid "Debug code ran with exec()." msgstr "Код отладки запускался с exec()." -#: musicbot/bot.py:7300 +#: musicbot/bot.py:7374 msgid "Debug code failed to execute." msgstr "Не удалось выполнить код отладки." -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1889,275 +1907,275 @@ msgstr "Не удалось выполнить отладочный код:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "Подкоманда должна быть одной из %(options)s" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Не удалось найти исполняемый файл git." -#: musicbot/bot.py:7483 +#: musicbot/bot.py:7559 msgid "Failed while checking for updates via git command." msgstr "Не удалось проверить наличие обновлений по команде git." -#: musicbot/bot.py:7512 +#: musicbot/bot.py:7588 msgid "Package missing meta in pip report." msgstr "Пакет отсутствует в отчете pip." -#: musicbot/bot.py:7526 +#: musicbot/bot.py:7602 msgid "Failed to get pip update status due to some error." msgstr "Не удалось получить статус обновления pip из-за некоторой ошибки." -#: musicbot/bot.py:7586 +#: musicbot/bot.py:7662 msgid "Got a strange voice client entry." msgstr "Получена запись о странном голосовом клиенте." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookies уже включены." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Cookies должны быть загружены для включения. (issing cookies файл.)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Не удалось включить куки из-за ошибки: %(raw_error)s" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Не удалось переименовать файл cookies из-за ошибки: %(raw_error)s\n" "Cookies временно отключены и будут повторно включены при следующем перезапуске." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "Не найдено приложенных загрузок, попробуйте еще раз при загрузке файла cookie." -#: musicbot/bot.py:7740 +#: musicbot/bot.py:7816 #, python-format msgid "Could not remove old, disabled cookies file: %(raw_error)s" msgstr "Не удалось удалить старый, отключен файл cookie: %(raw_error)s" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Ошибка при загрузке файла cookie с дискода: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Не удалось сохранить куки на диске: %(raw_error)s" -#: musicbot/bot.py:7772 +#: musicbot/bot.py:7848 #, python-format msgid "Got a message with no channel, somehow: %s" msgstr "Получено сообщение без канала, как-то %s" -#: musicbot/bot.py:7800 +#: musicbot/bot.py:7876 #, python-format msgid "Ignoring command from myself (%s)" msgstr "Игнорирование команды от себя (%s)" -#: musicbot/bot.py:7808 +#: musicbot/bot.py:7884 #, python-format msgid "Ignoring command from other bot (%s)" msgstr "Игнорирование команды от другого бота (%s)" -#: musicbot/bot.py:7816 +#: musicbot/bot.py:7892 #, python-format msgid "Ignoring command from channel of type: %s" msgstr "Игнорирование команды из канала типа: %s" -#: musicbot/bot.py:7900 +#: musicbot/bot.py:7976 #, python-format msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" msgstr "Пользователь в блочном списке: %(id)s/%(name)s попробовала команду: %(command)s" -#: musicbot/bot.py:7907 +#: musicbot/bot.py:7983 #, python-format msgid "Message from %(id)s/%(name)s: %(message)s" msgstr "Сообщение от %(id)s/%(name)s: %(message)s" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Эта команда не разрешена для вашей группы прав: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Эта команда требует, чтобы вы были в голосовом канале." -#: musicbot/bot.py:8060 +#: musicbot/bot.py:8136 #, python-format msgid "Invalid command usage, missing values for params: %(params)r" msgstr "Неверное использование команды, отсутствуют значения для параметров: %(params)r" -#: musicbot/bot.py:8102 +#: musicbot/bot.py:8178 #, python-format msgid "Error in %(command)s: %(err_name)s: %(err_text)s" msgstr "Ошибка в %(command)s: %(err_name)s: %(err_text)s" -#: musicbot/bot.py:8126 +#: musicbot/bot.py:8202 #, python-format msgid "Exception while handling command: %(command)s" msgstr "Исключение при обработке команды: %(command)s" -#: musicbot/bot.py:8158 +#: musicbot/bot.py:8234 #, python-format msgid "Cannot generate help for missing command: %s" msgstr "Невозможно сгенерировать справку для отсутствующей команды: %s" -#: musicbot/bot.py:8162 +#: musicbot/bot.py:8238 #, python-format msgid "Missing help data for command: %s" msgstr "Отсутствуют вспомогательные данные для команды: %s" -#: musicbot/bot.py:8279 +#: musicbot/bot.py:8355 #, python-format msgid "Leaving voice channel %s in %s due to inactivity." msgstr "Выход голосового канала %s в %s из-за отсутствия активности." -#: musicbot/bot.py:8288 +#: musicbot/bot.py:8364 msgid "MusicBot has become connected." msgstr "Музыкабот подключен." -#: musicbot/bot.py:8292 +#: musicbot/bot.py:8368 msgid "MusicBot has become disconnected." msgstr "Музыкабот был разорван." -#: musicbot/bot.py:8297 +#: musicbot/bot.py:8373 #, python-format msgid "Got a Socket Event: %s" msgstr "Получено событие сокета: %s" -#: musicbot/bot.py:8313 +#: musicbot/bot.py:8389 msgid "VoiceState updated before on_ready finished" msgstr "VoiceState обновляется до окончания on_ready" -#: musicbot/bot.py:8326 +#: musicbot/bot.py:8402 #, python-format msgid "Ignoring %s in %s as it is a bound voice channel." msgstr "Игнорирование %s в %s , как это связанный голосовой канал." -#: musicbot/bot.py:8335 +#: musicbot/bot.py:8411 #, python-format msgid "%s has been detected as empty. Handling timeouts." msgstr "%s был обнаружен как пустой. Тайм-аут обработки." -#: musicbot/bot.py:8346 +#: musicbot/bot.py:8422 #, python-format msgid "A user joined %s, cancelling timer." msgstr "Пользователь присоединился к %s, время отмены таймера." -#: musicbot/bot.py:8359 +#: musicbot/bot.py:8435 #, python-format msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." msgstr "Бот перемещен, голосовой канал %s пуст. Тайм-аут обработки." -#: musicbot/bot.py:8368 +#: musicbot/bot.py:8444 #, python-format msgid "The bot got moved and the voice channel %s is not empty." msgstr "Бот был перемещен и голосовой канал %s не пуст." -#: musicbot/bot.py:8402 +#: musicbot/bot.py:8493 #, python-format msgid "No longer following user %s" msgstr "Больше не следует за пользователем %s" -#: musicbot/bot.py:8424 +#: musicbot/bot.py:8515 #, python-format msgid "Following user `%(user)s` to channel: %(channel)s" msgstr "Следовать за пользователем `%(user)s` на канал: %(channel)s" -#: musicbot/bot.py:8444 +#: musicbot/bot.py:8535 msgid "VoiceState disconnect before.channel is None." msgstr "VoiceState отключает before.channel не подключен." -#: musicbot/bot.py:8471 +#: musicbot/bot.py:8562 #, python-format msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" msgstr "Отключено от голоса Discord API в: %(guild)s/%(channel)s (Код: %(code)s) [S:%(state)s]" -#: musicbot/bot.py:8493 +#: musicbot/bot.py:8584 #, python-format msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" msgstr "Невозможно использовать автовход с типом канала: %(type)s в гильдии: %(guild)s" -#: musicbot/bot.py:8500 +#: musicbot/bot.py:8591 #, python-format msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" msgstr "Не удается найти канал автоподключения, он был удален? Гильдия: %s" -#: musicbot/bot.py:8506 +#: musicbot/bot.py:8597 #, python-format msgid "Reconnecting to auto-joined guild on channel: %s" msgstr "Повторное подключение к автоматически подключенной гильдии на канале: %s" -#: musicbot/bot.py:8519 +#: musicbot/bot.py:8610 #, python-format msgid "Cannot auto join channel: %s" msgstr "Невозможно автоматически присоединиться к каналу: %s" -#: musicbot/bot.py:8535 +#: musicbot/bot.py:8626 #, python-format msgid "Bot has been added to guild: %s" msgstr "Бот был добавлен в гильдию: %s" -#: musicbot/bot.py:8547 +#: musicbot/bot.py:8638 #, python-format msgid "Left guild '%s' due to bot owner not found." msgstr "Левая гильдия '%s' из-за не найден владелец бота." -#: musicbot/bot.py:8561 +#: musicbot/bot.py:8652 #, python-format msgid "Creating data folder for guild %s" msgstr "Создание папки данных для гильдии %s" -#: musicbot/bot.py:8569 +#: musicbot/bot.py:8660 #, python-format msgid "Bot has been removed from guild: %s" msgstr "Бот был удален из гильдии: %s" -#: musicbot/bot.py:8570 +#: musicbot/bot.py:8661 msgid "Updated guild list:" msgstr "Обновленный список гильдий:" -#: musicbot/bot.py:8585 +#: musicbot/bot.py:8676 #, python-format msgid "Guild \"%s\" has become available." msgstr "Гильдия \"%s\" стала доступна." -#: musicbot/bot.py:8591 +#: musicbot/bot.py:8682 #, python-format msgid "Resuming player in \"%s\" due to availability." msgstr "Возобновление доступа игрока в \"%s\" из-за доступности." -#: musicbot/bot.py:8608 +#: musicbot/bot.py:8699 #, python-format msgid "Guild \"%s\" has become unavailable." msgstr "Гильдия \"%s\" недоступна." -#: musicbot/bot.py:8614 +#: musicbot/bot.py:8705 #, python-format msgid "Pausing player in \"%s\" due to unavailability." msgstr "Пауза игрока в \"%s\" из-за недоступности." -#: musicbot/bot.py:8630 +#: musicbot/bot.py:8721 #, python-format msgid "Guild update for: %s" msgstr "Обновление гильдии для: %s" -#: musicbot/bot.py:8636 +#: musicbot/bot.py:8727 #, python-format msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" msgstr "Атрибут гильдии %(attr)s сейчас: %(new)s -- Was: %(old)s" -#: musicbot/bot.py:8668 +#: musicbot/bot.py:8759 #, python-format msgid "Channel update for: %(channel)s -- %(changes)s" msgstr "Обновление канала для: %(channel)s -- %(changes)s" @@ -2172,7 +2190,7 @@ msgstr "Создание %s" msgid "Loading config from: %s" msgstr "Загрузка конфигурации из: %s" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2186,16 +2204,16 @@ msgid "Error while reading config.\n\n" " Use the example options as a template or copy it from the repository." msgstr "" -#: musicbot/config.py:1113 +#: musicbot/config.py:1112 #, python-format msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." msgstr "Невозможно хранить больше файлов журнала %s . Опция LogsMaxKept будет ограничена." -#: musicbot/config.py:1121 +#: musicbot/config.py:1120 msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." msgstr "Параметр LogsDateFormat пуст и это нарушит поворот файла журнала. Вместо него будет использоваться значение по умолчанию." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2203,11 +2221,11 @@ msgid "Error while validating config options.\n\n" " Make sure the path you configured is a path to a folder / directory." msgstr "" -#: musicbot/config.py:1149 +#: musicbot/config.py:1148 msgid "An exception was thrown while validating AudioCachePath." msgstr "Исключение было вызвано при проверке AudioCachePath." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2222,12 +2240,12 @@ msgstr "Ошибка при проверке параметров конфигу "Решение:\n" " Двойная проверка правильности, доступный путь к каталогу." -#: musicbot/config.py:1165 +#: musicbot/config.py:1164 #, python-format msgid "Audio Cache will be stored in: %s" msgstr "Кэш аудио будет храниться в: %s" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2236,16 +2254,16 @@ msgid "Error while reading config options.\n\n" " Set the Token config option or set environment variable %(env_var)s with an App token." msgstr "" -#: musicbot/config.py:1197 +#: musicbot/config.py:1196 msgid "StatusMessage config option is too long, it will be limited to 128 characters." msgstr "Опция StatusMessage слишком длинная, она будет ограничена 128 символов." -#: musicbot/config.py:1206 +#: musicbot/config.py:1205 #, python-format msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." msgstr "Скорость воспроизведения по умолчанию должна быть между 0.5 и 100.0. Вместо этого значение параметра %.3f будет ограничено." -#: musicbot/config.py:1216 +#: musicbot/config.py:1215 msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "Cookies are not recommended, may not be supported, and may totally break.\n" "Copying cookies from your web-browser risks exposing personal data and \n" @@ -2253,15 +2271,15 @@ msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "You have been warned! Good Luck! \\U0001F596\n" msgstr "" -#: musicbot/config.py:1234 +#: musicbot/config.py:1233 msgid "Validating options with service data..." msgstr "Проверка параметров с данными сервиса..." -#: musicbot/config.py:1240 +#: musicbot/config.py:1239 msgid "Acquired owner ID via API" msgstr "Приобретенный ID владельца через API" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2270,11 +2288,11 @@ msgid "Error while fetching 'OwnerID' automatically.\n\n" " Manually set the 'OwnerID' config option or try again later." msgstr "" -#: musicbot/config.py:1256 +#: musicbot/config.py:1255 msgid "MusicBot does not have a user instance, cannot proceed." msgstr "У MusicBot нет экземпляра пользователя, невозможно продолжить." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2282,30 +2300,30 @@ msgid "Error validating config options.\n\n" " Do not use the Bot or App ID in the 'OwnerID' field." msgstr "" -#: musicbot/config.py:1286 +#: musicbot/config.py:1285 msgid "Config options file not found. Checking for alternatives..." msgstr "Файл параметров конфигурации не найден. Проверка альтернативы..." -#: musicbot/config.py:1298 +#: musicbot/config.py:1297 #, python-format msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." msgstr "Переименование %(ini_file)s на %(option_file)s, скорее всего, вам следует включить расширения." -#: musicbot/config.py:1306 +#: musicbot/config.py:1305 #, python-format msgid "Copying existing example options file: %(example_file)s" msgstr "Копирование существующего файла параметров примера: %(example_file)s" -#: musicbot/config.py:1315 +#: musicbot/config.py:1314 #, python-format msgid "Generated a new %(example_file)s and copied it to %(option_file)s" msgstr "Сгенерировал новый %(example_file)s и скопировал его в %(option_file)s" -#: musicbot/config.py:1323 +#: musicbot/config.py:1322 msgid "Something went wrong while trying to find a config option file." msgstr "Что-то пошло не так при попытке найти файл конфигурации." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2320,7 +2338,7 @@ msgstr "Ошибка поиска конфигурации.\n\n" "Решение:\n" " Проверьте папку конфигурации и файлы существуют и могут быть прочитаны MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2337,43 +2355,43 @@ msgstr "Ошибка загрузки конфигурации.\n\n" " Убедитесь, что файл доступен и ошибки бесплатны.\n" " Скопируйте файл примера из репозитория, если все остальное не удалось." -#: musicbot/config.py:1369 +#: musicbot/config.py:1368 msgid "Dev Bug! Config option has getter that is not available." msgstr "Dev Bug! Параметр конфигурации имеет getter, который не доступен." -#: musicbot/config.py:1374 +#: musicbot/config.py:1373 msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." msgstr "Dev Bug! Параметр конфигурации имеет недопустимый тип, getter и по умолчанию должен быть одинаковым." -#: musicbot/config.py:1394 +#: musicbot/config.py:1393 msgid "Option was missing previously." msgstr "Ранее отсутствовал вариант." -#: musicbot/config.py:1409 +#: musicbot/config.py:1408 #, python-format msgid "Config section not in parsed config! Missing: %s" msgstr "Раздел конфигурации не в анализируемой конфигурации! Отсутствует: %s" -#: musicbot/config.py:1414 +#: musicbot/config.py:1413 #, python-format msgid "Saved config option: %(config)s = %(value)s" msgstr "Сохраненная конфигурация: %(config)s = %(value)s" -#: musicbot/config.py:1427 +#: musicbot/config.py:1426 #, python-format msgid "Failed to save config: %s" msgstr "Не удалось сохранить конфигурацию: %s" -#: musicbot/config.py:1932 +#: musicbot/config.py:1931 msgid "Option names are not unique between INI sections! Resolver is disabled." msgstr "Имена опций не уникальны между INI-разделами! Резольвер отключен." -#: musicbot/config.py:2094 musicbot/permissions.py:859 +#: musicbot/config.py:2099 musicbot/permissions.py:859 #, python-format msgid "Failed to save default INI file at: %s" msgstr "Не удалось сохранить INI-файл по умолчанию в: %s" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2386,7 +2404,7 @@ msgstr "Ошибка загрузки значения конфигурации. "Решение:\n" " Установите %(option)s на числовой ID или установите его в `auto` или `0` для автоматической привязки владельца." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2399,7 +2417,7 @@ msgstr "Ошибка загрузки значения конфигурации. "Решение:\n" " Проверьте настройки пути и убедитесь, что файл существует и доступен для MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2412,60 +2430,60 @@ msgstr "Ошибка загрузки значения конфигурации. "Решение:\n" " Убедитесь, что все ID числовые и разделены только пробелами или запятыми." -#: musicbot/config.py:2283 +#: musicbot/config.py:2288 #, python-format msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" msgstr "Недопустимый параметр уровня отладки \"%(value)s\" указан, падающий обратно на уровень: %(fallback)s" -#: musicbot/config.py:2304 +#: musicbot/config.py:2309 #, python-format msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." msgstr "Опция [%(section)s] > %(option)s имеет неверное значение конфигурации '%(value)s' вместо значения по умолчанию." -#: musicbot/config.py:2353 +#: musicbot/config.py:2358 #, python-format msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." msgstr "Вариант [%(section)s] > %(option)s имеет значение больше 100 %% (%(value)s) и вместо него будет установлен %(fallback)s." -#: musicbot/config.py:2437 +#: musicbot/config.py:2442 #, python-format msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" msgstr "Переименование INI-файла [%(old_s)s] > %(old_o)s на [%(new_s)s] > %(new_o)s" -#: musicbot/config.py:2493 +#: musicbot/config.py:2498 msgid "Upgrading config file with renamed options..." msgstr "Обновление конфигурационного файла с переименованными опциями..." -#: musicbot/config.py:2510 +#: musicbot/config.py:2515 msgid "Failed to upgrade config. You'll need to upgrade it manually." msgstr "Не удалось обновить конфигурацию. Вам нужно обновить ее вручную." -#: musicbot/config.py:2551 +#: musicbot/config.py:2556 #, python-format msgid "Block list file not found: %s" msgstr "Файл блока списка не найден: %s" -#: musicbot/config.py:2572 +#: musicbot/config.py:2577 #, python-format msgid "Could not load block list from file: %s" msgstr "Не удалось загрузить список блокировок из файла: %s" -#: musicbot/config.py:2610 musicbot/config.py:2643 +#: musicbot/config.py:2615 musicbot/config.py:2648 #, python-format msgid "Could not update the block list file: %s" msgstr "Не удалось обновить файл списка блоков: %s" -#: musicbot/config.py:2670 +#: musicbot/config.py:2675 #, python-format msgid "Loaded User Block list with %s entries." msgstr "Загружен блокированный список пользователей с записями %s." -#: musicbot/config.py:2681 +#: musicbot/config.py:2686 #, python-format msgid "We found a legacy blacklist file, it will be renamed to: %s" msgstr "Мы нашли устаревший файл в черном списке, он будет переименован на: %s" -#: musicbot/config.py:2727 +#: musicbot/config.py:2732 #, python-format msgid "Loaded a Song Block list with %s entries." msgstr "Загружен Блок песни с записями %s." @@ -2489,20 +2507,20 @@ msgstr "Загрузка данных гильдии с ID: %(id)s/%(name)s" msgid "An OS error prevented reading guild data file: %s" msgstr "Ошибка ОС не удалось прочитать файл данных гильдии: %s" -#: musicbot/constructs.py:255 +#: musicbot/constructs.py:257 #, python-format msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" msgstr "У гильдии %(id)s/%(name)s есть пользовательский префикс команд: %(prefix)s" -#: musicbot/constructs.py:275 +#: musicbot/constructs.py:277 msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" msgstr "Невозможно сохранить данные для гильдии с ID 0. Возможно, это ошибка в коде!" -#: musicbot/constructs.py:298 +#: musicbot/constructs.py:301 msgid "Could not save guild specific data due to OS Error." msgstr "Не удалось сохранить данные конкретной гильдии из-за ошибки ОС." -#: musicbot/constructs.py:301 +#: musicbot/constructs.py:304 msgid "Failed to serialize guild specific data due to invalid data." msgstr "Не удалось сериализовать данные для конкретной гильдии из-за некорректных данных." @@ -2973,10 +2991,10 @@ msgstr "Ошибка аргумента языка: %s" msgid "Failed to load log translations for any of: [%s] in: %s" msgstr "" -#: musicbot/i18n.py:333 +#: musicbot/i18n.py:340 #, python-format -msgid "Failed to load discord translations for any of: [%s] in: %s" -msgstr "Не удалось загрузить discord перевод для любого из: [%s] в: %s" +msgid "Failed to load discord translations for any of: [%s] guild: %s in: %s" +msgstr "Не удалось загрузить discord перевод для любой из: [%s] гильдии: %s in: %s" #: musicbot/json.py:14 #, python-format diff --git a/i18n/ru_RU/LC_MESSAGES/musicbot_messages.mo b/i18n/ru_RU/LC_MESSAGES/musicbot_messages.mo index e813ca51a7564331d2b2bcd18bf572c1207a3207..a6f71335f2c5b3706afa94bdba8350928868b799 100644 GIT binary patch delta 9214 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 delta 8158 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 GYW)v22UDE@ diff --git a/i18n/ru_RU/LC_MESSAGES/musicbot_messages.po b/i18n/ru_RU/LC_MESSAGES/musicbot_messages.po index 12ab92f87..c9220acc0 100644 --- a/i18n/ru_RU/LC_MESSAGES/musicbot_messages.po +++ b/i18n/ru_RU/LC_MESSAGES/musicbot_messages.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 18:12\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:39\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -27,76 +27,76 @@ msgid "Error while loading aliases.\n\n" " https://github.com/Just-Some-Bots/MusicBot/" msgstr "" -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "Участник не включен голосовым путем и не может использовать эту команду." -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "Вы не можете использовать эту команду, если не в голосовом канале." -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "У Музыкабота нет прав подключаться в канале: `%(name)s`" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "У Музыкабота нет прав говорить в канале: `%(name)s`" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "" -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "Подключение MusicBot к голосу было отменено. Это странно. Может быть перезапустить?" -#: musicbot/bot.py:840 +#: musicbot/bot.py:843 msgid "MusicBot does not have permission to speak." msgstr "У MusicBot нет разрешения на чтение." -#: musicbot/bot.py:844 +#: musicbot/bot.py:847 msgid "MusicBot could not request to speak." msgstr "MusicBot не может просить говорить." -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "" -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "Что-то не так, мы не получили VoiceClient." -#: musicbot/bot.py:1084 +#: musicbot/bot.py:1087 #, python-format msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" msgstr "Пропуск следующей песни `%(title)s` в качестве инициатора `%(user)s` не в голосе!" -#: musicbot/bot.py:1102 +#: musicbot/bot.py:1105 #, python-format msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" msgstr "%(mention)s - ваша песня `%(title)s` теперь играет в %(channel)s!" -#: musicbot/bot.py:1111 +#: musicbot/bot.py:1114 #, python-format msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" msgstr "Теперь играя в %(channel)s: `%(title)s` добавлен %(author)s!" -#: musicbot/bot.py:1122 +#: musicbot/bot.py:1125 #, python-format msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" msgstr "Теперь проигрыватель автоматически добавил запись `%(title)s` в %(channel)s!" -#: musicbot/bot.py:1333 +#: musicbot/bot.py:1336 #, python-format msgid "Skipping songs added by %(user)s as they are not in voice!" msgstr "Пропускать песни, добавленные %(user)s , так как они не в голосе!" -#: musicbot/bot.py:1555 +#: musicbot/bot.py:1558 #, python-format msgid "Playback failed for song `%(song)s` due to an error:\n" "```\n" @@ -105,11 +105,11 @@ msgstr "Сбой воспроизведения `%(song)s` из-за ошибк "```\n" "%(error)s```" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "[Dev Bug] Попытка отправить некорректный объект ответа." -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -125,35 +125,35 @@ msgstr "Ошибка входа в Discord API!\n\n" " Убедитесь, что в конфигурации установлен правильный токен.\n" " Проверка статуса API на официальном сайте: discordstatus.com" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "Запрошенная песня `%(subject)s` заблокирована списком блоков песен." -#: musicbot/bot.py:2831 +#: musicbot/bot.py:2834 msgid "Reset the auto playlist queue by copying it back into player memory.\n" "This command will be removed in a future version, replaced by the autoplaylist command(s)." msgstr "Сбросьте очередь автоматического воспроизведения, скопировав ее обратно в память плеера.\n" "Эта команда будет удалена в будущей версии, заменена командами autoplaylist (команды)." -#: musicbot/bot.py:2846 +#: musicbot/bot.py:2849 msgid "\\N{OK HAND SIGN}" msgstr "" -#: musicbot/bot.py:2853 +#: musicbot/bot.py:2856 msgid "Show usage and description of a command, or list all available commands.\n" msgstr "Показать использование и описание команды или список всех доступных команд.\n" -#: musicbot/bot.py:2888 +#: musicbot/bot.py:2891 msgid "**Aliases for this command:**\n" msgstr "**Псевдонимы для этой команды:**\n" -#: musicbot/bot.py:2891 +#: musicbot/bot.py:2894 #, python-format msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" msgstr "` Алиас%(alias)s`%(command)s %(args)s`\n" -#: musicbot/bot.py:2924 +#: musicbot/bot.py:2927 #, python-format msgid "**Alias of command:**\n" " `%(command)s`\n" @@ -161,7 +161,7 @@ msgstr "**Псевдоним команды:**\n" " `%(command)s`\n" #. TRANSLATORS: template string for command-specific help output. -#: musicbot/bot.py:2931 +#: musicbot/bot.py:2934 #, python-format msgid "%(is_alias)s\n" "%(docs)s\n" @@ -170,18 +170,18 @@ msgstr "%(is_alias)s\n" "%(docs)s\n" "%(alias_list)s" -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "Нет такой команды" -#: musicbot/bot.py:2959 +#: musicbot/bot.py:2962 #, python-format msgid "The list above shows only commands permitted for your use.\n" "For a list of all commands, run: %(example_all)s\n" msgstr "Вышеприведенный список показывает только команды, разрешенные для вашего использования.\n" "Для списка всех команд, запустите: %(example_all)s\n" -#: musicbot/bot.py:2965 +#: musicbot/bot.py:2968 #, python-format msgid "**Commands by name:** *(without prefix)*\n" "```\n" @@ -198,73 +198,73 @@ msgstr "**Команды по имени:** *(без префикса)*\n" "Для помощи с определенной командой, выполнить: %(example_command)s\n" "%(all_note)s" -#: musicbot/bot.py:2984 +#: musicbot/bot.py:2987 msgid " Block a mentioned user." msgstr " Заблокировать указанного пользователя." -#: musicbot/bot.py:2987 +#: musicbot/bot.py:2990 msgid " Unblock a mentioned user." msgstr " Разблокировать указанного пользователя." -#: musicbot/bot.py:2990 +#: musicbot/bot.py:2993 msgid " Show the block status of a mentioned user." msgstr " Показать статус блока упомянутого пользователя." -#: musicbot/bot.py:2994 +#: musicbot/bot.py:2997 msgid "Manage the users in the user block list.\n" "Blocked users are forbidden from using all bot commands.\n" msgstr "" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "Вы должны указать пользователя или указать его идентификационный номер." -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "Неверная субкоманда. Для примеров использования используйте `help blockuser`." -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBot не может найти указанного пользователя." -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "Владелец не может быть добавлен в заблокированный список." -#: musicbot/bot.py:3059 +#: musicbot/bot.py:3062 msgid "User block list is currently enabled." msgstr "Блок списка пользователей в настоящее время включен." -#: musicbot/bot.py:3061 +#: musicbot/bot.py:3064 msgid "User block list is currently disabled." msgstr "Блок списка пользователей в настоящее время отключен." -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "Не удается добавить пользователей, которые вы указали, они уже добавлены." -#: musicbot/bot.py:3078 +#: musicbot/bot.py:3081 #, python-format msgid "%(number)s user(s) have been added to the block list.\n" "%(status)s" msgstr "К списку блоков добавлено %(number)s пользователей(ов).\n" "%(status)s" -#: musicbot/bot.py:3089 +#: musicbot/bot.py:3092 msgid "None of those users are in the blacklist." msgstr "Никто из этих пользователей не находится в чёрном списке." -#: musicbot/bot.py:3094 +#: musicbot/bot.py:3097 #, python-format msgid "User: `%(user)s` is not blocked.\n" msgstr "Пользователь: `%(user)s` не заблокирован.\n" -#: musicbot/bot.py:3096 +#: musicbot/bot.py:3099 #, python-format msgid "User: `%(user)s` is blocked.\n" msgstr "Пользователь: `%(user)s` заблокирован.\n" -#: musicbot/bot.py:3099 +#: musicbot/bot.py:3102 #, python-format msgid "**Block list status:**\n" "%(status)s\n" @@ -273,14 +273,14 @@ msgstr "**Статус блокировки:**\n" "%(status)s\n" "%(users)s" -#: musicbot/bot.py:3109 +#: musicbot/bot.py:3112 #, python-format msgid "%(number)s user(s) have been removed from the block list.\n" "%(status)s" msgstr "%(number)s пользователь(ы) были удалены из списка блокировки.\n" "%(status)s" -#: musicbot/bot.py:3118 +#: musicbot/bot.py:3121 msgid "Manage a block list applied to song requests and extracted song data.\n" "A subject may be a song URL or a word or phrase found in the track title.\n" "If subject is omitted, any currently playing track URL will be added instead.\n\n" @@ -292,173 +292,173 @@ msgstr "Управление списком блоков, применяемым "Список блоков песни совсем не совпадает, но чувствителен к регистру.\n" "Это означает, что добавление 'Pie' будет совпадать с 'вишневым пирогом', но не 'piecrust' в проверках.\n" -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "Вы должны предоставить тему песни, если песня в настоящее время не воспроизводится." -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "Неверная субкоманда. Используйте `help blocksong` для примеров использования." -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "Тема `%(subject)s` уже находится в списке блоков песен." -#: musicbot/bot.py:3187 +#: musicbot/bot.py:3190 #, python-format msgid "Added subject `%(subject)s` to the song block list.\n" "%(status)s" msgstr "Добавлена тема `%(subject)s` в список блоков песен.\n" "%(status)s" -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "Тема отсутствует в списке блоков песни и не может быть удалена." -#: musicbot/bot.py:3204 +#: musicbot/bot.py:3207 #, python-format msgid "Subject `%(subject)s` has been removed from the block list.\n" "%(status)s" msgstr "Тема `%(subject)s` удалена из списка блоков.\n" "%(status)s" -#: musicbot/bot.py:3214 +#: musicbot/bot.py:3217 msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" msgstr "" -#: musicbot/bot.py:3217 +#: musicbot/bot.py:3220 msgid " Adds the entire queue to the guilds playlist.\n" msgstr " Добавляет очередь в плейлист гильдий\n" -#: musicbot/bot.py:3220 +#: musicbot/bot.py:3223 msgid " Show a list of existing playlist files.\n" msgstr "" -#: musicbot/bot.py:3223 +#: musicbot/bot.py:3226 msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" msgstr " Сброс очереди автоматического воспроизведения, перезапуск в первый трек без рандомизации\n" -#: musicbot/bot.py:3226 +#: musicbot/bot.py:3229 msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" msgstr "" -#: musicbot/bot.py:3229 +#: musicbot/bot.py:3232 msgid "Manage auto playlist files and per-guild settings." msgstr "Управление автоплейлистами и настройками для каждой гильдии." -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "Неверная субкоманда. Используйте `help autoplaylist` для примеров использования." -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "Недействительная ссылка на песню" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "Очередь пуста. Добавьте несколько песен с помощью команды воспроизведения!" -#: musicbot/bot.py:3273 +#: musicbot/bot.py:3276 msgid "All songs in the queue are already in the autoplaylist." msgstr "Все песни в очереди уже находятся в списке автоматов." -#: musicbot/bot.py:3277 +#: musicbot/bot.py:3280 #, python-format msgid "Added %(number)d songs to the autoplaylist." msgstr "%(number)d треков добавлено в список автоматов." -#: musicbot/bot.py:3287 +#: musicbot/bot.py:3290 #, python-format msgid "Added `%(url)s` to the autoplaylist." msgstr "`%(url)s` добавлен в автомат." -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "Эта песня уже есть в автомате." -#: musicbot/bot.py:3304 +#: musicbot/bot.py:3307 #, python-format msgid "Removed `%(url)s` from the autoplaylist." msgstr "`%(url)sудалён из автомата." -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "Эта песня еще не находится в автомате." -#: musicbot/bot.py:3316 +#: musicbot/bot.py:3319 #, python-format msgid "Loaded a fresh copy of the playlist: `%(file)s`" msgstr "Загружена свежая копия плейлиста: `%(file)s`" -#: musicbot/bot.py:3327 +#: musicbot/bot.py:3330 #, python-format msgid "**Available Playlists:**\n" "%(names)s" msgstr "**Доступные плейлисты:**\n" "%(names)s" -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "Вы должны указать имя файла плейлиста." -#: musicbot/bot.py:3357 +#: musicbot/bot.py:3360 msgid "\n" "This playlist is new, you must add songs to save it to disk!" msgstr "\n" "Этот плейлист новый, вы должны добавить песни, чтобы сохранить его на диске!" -#: musicbot/bot.py:3362 +#: musicbot/bot.py:3365 #, python-format msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" msgstr "Плейлист для этого сервера был обновлен на: `%(name)s`%(note)s" -#: musicbot/bot.py:3373 +#: musicbot/bot.py:3376 msgid "Generate an invite link that can be used to add this bot to another server." msgstr "Сгенерировать ссылку-приглашение, которая может быть использована для добавления этого бота на другой сервер." -#: musicbot/bot.py:3385 +#: musicbot/bot.py:3388 #, python-format msgid "Click here to add me to a discord server:\n" "%(url)s" msgstr "Нажмите здесь, чтобы добавить меня на сервер discord:\n" "%(url)s" -#: musicbot/bot.py:3391 +#: musicbot/bot.py:3394 msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" "Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" msgstr "Включает или выключает режим караоке. Если включено, только члены караоке.\n" "Группы с правами доступа BypassKaraokeMode контролируют членов Караоке.\n" -#: musicbot/bot.py:3403 +#: musicbot/bot.py:3406 msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." msgstr "" -#: musicbot/bot.py:3405 +#: musicbot/bot.py:3408 msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." msgstr "" -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "Вам не разрешено запрашивать плейлисты" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "Плейлист имеет слишком много записей (%(songs)s , но максимум %(max)s)" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" "The limit is %(max)s for your group." msgstr "" -#: musicbot/bot.py:3580 +#: musicbot/bot.py:3583 msgid "Bot was previously paused, resuming playback now." msgstr "Бот был ранее приостановлен, возобновите воспроизведение сейчас." -#: musicbot/bot.py:3589 +#: musicbot/bot.py:3592 msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" "You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" "Playlist links will be extracted into multiple links and added to the queue.\n" @@ -470,27 +470,27 @@ msgstr "Добавьте песню для воспроизведения в о "Если вы введете не-URL, ввод будет использоваться в качестве критериев поиска на YouTube и первый результат воспроизведен.\n" "MusicBot также поддерживает Spotify URIs и URL, но звук загружается с YouTube regardless.\n" -#: musicbot/bot.py:3628 +#: musicbot/bot.py:3631 msgid "Play command that shuffles playlist entries before adding them to the queue.\n" msgstr "Воспроизведение команды, которая перемешивает плейлисты перед добавлением их в очередь.\n" -#: musicbot/bot.py:3665 +#: musicbot/bot.py:3668 #, python-format msgid "Shuffled playlist items into the queue from `%(request)s`" msgstr "Элементы плейлиста перемещены в очередь из `%(request)s`" -#: musicbot/bot.py:3672 +#: musicbot/bot.py:3675 msgid "A play command that adds the song as the next to play rather than last.\n" "Read help for the play command for information on supported inputs.\n" msgstr "Команда воспроизведения, которая добавляет песню в ряды, а не в последнюю очередь.\n" "Читать справку для команды воспроизведения для информации о поддерживаемых входах.\n" -#: musicbot/bot.py:3707 +#: musicbot/bot.py:3710 msgid "A play command which skips any current song and plays immediately.\n" "Read help for the play command for information on supported inputs.\n" msgstr "" -#: musicbot/bot.py:3744 +#: musicbot/bot.py:3747 msgid "Restarts the current song at the given time.\n" "If time starts with + or - seek will be relative to current playback time.\n" "Time should be given in seconds, fractional seconds are accepted.\n" @@ -500,192 +500,192 @@ msgstr "Перезапускает текущую песню в заданное "Время должно быть указано в секундах, дробные секунды принимаются.\n" "Из-за специфики кодеков в ffmpeg это может быть неточным.\n" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "Невозможно использовать поиск, если нет проигрывания." -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "Невозможно использовать поиск по текущему треку, он имеет неизвестную длительность." -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "Поиск не поддерживается для потоков." -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "Невозможно использовать переключение без времени для размещения воспроизведения." -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "Не удалось преобразовать `%(input)s` в допустимое время в секундах." -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "Не удается переключиться в `%(input)s` (`%(seconds)s` секунд) в текущем треке длиной `%(progress)s / %(total)s`" -#: musicbot/bot.py:3840 +#: musicbot/bot.py:3843 #, python-format msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." msgstr "Переход к времени `%(input)s` (`%(seconds).2f` секунд) в текущей песне." -#: musicbot/bot.py:3852 +#: musicbot/bot.py:3855 msgid "Toggles playlist or song looping.\n" "If no option is provided the current song will be repeated.\n" "If no option is provided and the song is already repeating, repeating will be turned off.\n" msgstr "" -#: musicbot/bot.py:3870 +#: musicbot/bot.py:3873 msgid "No songs are currently playing. Play something with a play command." msgstr "На данный момент треков нет. Воспроизводите что-то с помощью команды воспроизведения." -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "Неверная субкоманда. Используйте команду `help repeat` для примеров использования." -#: musicbot/bot.py:3883 musicbot/bot.py:3920 +#: musicbot/bot.py:3886 musicbot/bot.py:3923 msgid "Playlist is now repeating." msgstr "Повторяется плейлист." -#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +#: musicbot/bot.py:3889 musicbot/bot.py:3916 musicbot/bot.py:3927 msgid "Playlist is no longer repeating." msgstr "Плейлист больше не повторяется." -#: musicbot/bot.py:3892 musicbot/bot.py:3901 +#: musicbot/bot.py:3895 musicbot/bot.py:3904 msgid "Player will now loop the current song." msgstr "Игрок теперь повторяет текущую песню." -#: musicbot/bot.py:3894 musicbot/bot.py:3908 +#: musicbot/bot.py:3897 musicbot/bot.py:3911 msgid "Player will no longer loop the current song." msgstr "Игрок больше не будет повторять текущую песню." -#: musicbot/bot.py:3898 +#: musicbot/bot.py:3901 msgid "Player is already looping a song!" msgstr "Игрок уже зацикливает песню!" -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "Игрок в данный момент не зацикливается." -#: musicbot/bot.py:3926 +#: musicbot/bot.py:3929 msgid "Song is no longer repeating." msgstr "Песня больше не повторяется." -#: musicbot/bot.py:3930 +#: musicbot/bot.py:3933 msgid "Song is now repeating." msgstr "Песня повторяется." -#: musicbot/bot.py:3938 +#: musicbot/bot.py:3941 msgid " Move song at position FROM to position TO.\n" msgstr "" -#: musicbot/bot.py:3942 +#: musicbot/bot.py:3945 msgid "Swap existing songs in the queue using their position numbers.\n" "Use the queue command to find track position numbers.\n" msgstr "Поменять местами существующие песни в очереди с использованием их номеров позиций.\n" "Используйте команду очереди, чтобы найти номера позиции трека.\n" -#: musicbot/bot.py:3961 +#: musicbot/bot.py:3964 msgid "There are no songs queued. Play something with a play command." msgstr "Нет песен в очереди песен. Проигрывайте что-нибудь с помощью команды воспроизведения." -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "Позиции песни должны быть целыми!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "Вы поставили позицию за пределами плейлиста!" -#: musicbot/bot.py:3984 +#: musicbot/bot.py:3987 #, python-format msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" msgstr "Песня успешно перемещена с позиции %(from)s в очереди на позицию %(to)s!" -#: musicbot/bot.py:4072 +#: musicbot/bot.py:4075 #, python-format msgid "This link contains a Playlist ID:\n" "`%(url)s`\n\n" "Do you want to queue the playlist too?" msgstr "" -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "Воспроизведение локального медиа не включено." -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "URL-адрес Spotify недействителен или в настоящее время не поддерживается." -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "Обнаружен URL-адрес Spotify, но Spotify не включен." -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "Вы достигли лимита на добавленные песни (%(max)s)" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "Караоке-режим включен, попробуйте еще раз, когда он отключен!" -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "Не удалось извлечь информацию из-за ошибки:\n" "%(raw_error)s" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "Это видео не может быть воспроизведено. Попробуйте использовать команду трансляции." -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "Поиск YouTube не дал результатов по запросу: %(url)s" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "Не было добавлено треков, все песни были больше длительности (%(max)s секунд)" -#: musicbot/bot.py:4254 +#: musicbot/bot.py:4257 #, python-format msgid "Enqueued **%(number)s** songs to be played.\n" "Position in queue: %(position)s" msgstr "В очереди **%(number)s** песни будут воспроизведены.\n" "Позиция в очереди: %(position)s" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "Длительность песни превышает предел (%(length)s > %(max)s)" -#: musicbot/bot.py:4289 +#: musicbot/bot.py:4292 #, python-format msgid "Enqueued `%(track)s` to be played.\n" "Position in queue: %(position)s" msgstr "" -#: musicbot/bot.py:4297 musicbot/bot.py:4312 +#: musicbot/bot.py:4300 musicbot/bot.py:4315 msgid "Playing next!" msgstr "Следующая игра!" -#: musicbot/bot.py:4320 +#: musicbot/bot.py:4323 #, python-format msgid "%(position)s - estimated time until playing: `%(eta)s`" msgstr "%(position)s - предполагаемое время до игры: `%(eta)s`" -#: musicbot/bot.py:4328 +#: musicbot/bot.py:4331 #, python-format msgid "%(position)s - cannot estimate time until playing." msgstr "%(position)s - невозможно оценить время до игры." -#: musicbot/bot.py:4346 +#: musicbot/bot.py:4349 msgid "Add a media URL to the queue as a Stream.\n" "The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" "You can also use non-streamed media to play it without downloading it.\n" @@ -695,25 +695,25 @@ msgstr "Добавить медиа URL в очередь как поток.\n" "Вы также можете использовать непотоковый носитель для воспроизведения без его загрузки.\n" "Примечание: FFmpeg может случайным образом отбрасывать поток или если произойдет ошибка подключения.\n" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Потоковые плейлисты еще не поддерживаются." -#: musicbot/bot.py:4419 +#: musicbot/bot.py:4422 #, python-format msgid "Now streaming track `%(track)s`" msgstr "Теперь стриминг `%(track)s`" -#: musicbot/bot.py:4428 +#: musicbot/bot.py:4431 msgid " Search with service for a number of results with the search query.\n" msgstr "" -#: musicbot/bot.py:4432 +#: musicbot/bot.py:4435 msgid " Search YouTube for query but get a custom number of results.\n" " Note: the double-quotes are required in this case.\n" msgstr "" -#: musicbot/bot.py:4438 +#: musicbot/bot.py:4441 msgid "Search a supported service and select from results to add to queue.\n" "Service and number arguments can be omitted, default number is 3 results.\n" "Select from these services:\n" @@ -722,191 +722,191 @@ msgid "Search a supported service and select from results to add to queue.\n" "- yh, yahoo\n" msgstr "" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Вы достигли предела в плейлисте (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Пожалуйста, укажите поисковый запрос. Используйте `help search` для получения дополнительной информации." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "Вы не можете искать более чем %(max)s видео" -#: musicbot/bot.py:4532 +#: musicbot/bot.py:4535 msgid "Searching for videos..." msgstr "Поиск видео..." -#: musicbot/bot.py:4554 +#: musicbot/bot.py:4557 #, python-format msgid "Search failed due to an error: %(error)s" msgstr "Поиск не удался из-за ошибки: %(error)s" -#: musicbot/bot.py:4566 +#: musicbot/bot.py:4569 msgid "No videos found." msgstr "Видео не найдено." -#: musicbot/bot.py:4575 +#: musicbot/bot.py:4578 msgid "To select a song, type the corresponding number." msgstr "Для выбора песни введите соответствующее число." -#: musicbot/bot.py:4576 +#: musicbot/bot.py:4579 #, python-format msgid "Search results from %(service)s:" msgstr "Результаты поиска от %(service)s:" -#: musicbot/bot.py:4585 +#: musicbot/bot.py:4588 #, python-format msgid "**%(index)s**. **%(track)s** | %(length)s" msgstr "**%(index)s**. **%(track)s** | %(length)s" -#: musicbot/bot.py:4594 +#: musicbot/bot.py:4597 msgid "\n" "**0**. Cancel" msgstr "\n" "**0**. Отмена" -#: musicbot/bot.py:4598 +#: musicbot/bot.py:4601 msgid "Pick a song" msgstr "Выберите песню" -#: musicbot/bot.py:4649 +#: musicbot/bot.py:4652 #, python-format msgid "Added song [%(track)s](%(url)s) to the queue." msgstr "Добавлена песня [%(track)s](%(url)s) в очередь." -#: musicbot/bot.py:4663 +#: musicbot/bot.py:4666 #, python-format msgid "Result %(number)s of %(total)s: %(url)s" msgstr "Результат %(number)s из %(total)s: %(url)s" -#: musicbot/bot.py:4713 +#: musicbot/bot.py:4716 msgid "Alright, coming right up!" msgstr "Хорошо, приближайся!" -#: musicbot/bot.py:4725 +#: musicbot/bot.py:4728 msgid "Show information on what is currently playing." msgstr "Показать информацию о том, что сейчас играет." -#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +#: musicbot/bot.py:4780 musicbot/bot.py:6028 musicbot/bot.py:6060 msgid "[autoplaylist]" msgstr "" -#: musicbot/bot.py:4781 +#: musicbot/bot.py:4784 msgid "Now playing" msgstr "Играет сейчас" -#: musicbot/bot.py:4784 +#: musicbot/bot.py:4787 msgid "Currently streaming:" msgstr "Сейчас стриминг:" -#: musicbot/bot.py:4786 +#: musicbot/bot.py:4789 msgid "Currently playing:" msgstr "Сейчас играет:" -#: musicbot/bot.py:4792 +#: musicbot/bot.py:4795 msgid "Added By:" msgstr "Добавлено через:" -#: musicbot/bot.py:4793 +#: musicbot/bot.py:4796 #, python-format msgid "`%(user)s`" msgstr "`%(user)s" -#: musicbot/bot.py:4797 +#: musicbot/bot.py:4800 msgid "Progress:" msgstr "Прогресс:" -#: musicbot/bot.py:4815 musicbot/bot.py:6004 +#: musicbot/bot.py:4818 musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "Нет песен в очереди! Очередь что-то с помощью команды воспроизведения." -#: musicbot/bot.py:4818 +#: musicbot/bot.py:4821 msgid "Tell MusicBot to join the channel you're in." msgstr "Расскажите MusicBot, чтобы войти в канал, в который вы находитесь." -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "Вы не подключены к голосу. Попробуйте подключиться к голосовому каналу!" -#: musicbot/bot.py:4876 +#: musicbot/bot.py:4879 #, python-format msgid "Connected to `%(channel)s`" msgstr "Подключено к `%(channel)s`" -#: musicbot/bot.py:4882 +#: musicbot/bot.py:4885 msgid "Makes MusicBot follow a user when they change channels in a server.\n" msgstr "" -#: musicbot/bot.py:4905 +#: musicbot/bot.py:4908 #, python-format msgid "No longer following user `%(user)s`" msgstr "Больше не следует за пользователем `%(user)s`" -#: musicbot/bot.py:4915 +#: musicbot/bot.py:4918 #, python-format msgid "Now following user `%(user)s` between voice channels." msgstr "Теперь следите за пользователем `%(user)s` между голосовыми каналами." -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot не может следить за пользователем, не являющимся членом сервера." -#: musicbot/bot.py:4935 +#: musicbot/bot.py:4938 #, python-format msgid "Will follow user `%(user)s` between voice channels." msgstr "Будет следовать за пользователем `%(user)s` между голосовыми каналами." -#: musicbot/bot.py:4941 +#: musicbot/bot.py:4944 msgid "Pause playback if a track is currently playing." msgstr "Приостановить воспроизведение, если трек воспроизводится." -#: musicbot/bot.py:4952 +#: musicbot/bot.py:4955 #, python-format msgid "Paused music in `%(channel)s`" msgstr "Пауза в `%(channel)s`" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Плеер не играет." -#: musicbot/bot.py:4958 +#: musicbot/bot.py:4961 msgid "Resumes playback if the player was previously paused." msgstr "Возобновляет воспроизведение, если плеер был ранее приостановлен." -#: musicbot/bot.py:4969 +#: musicbot/bot.py:4972 #, python-format msgid "Resumed music in `%(channel)s`" msgstr "Возобновленная музыка в `%(channel)s`" -#: musicbot/bot.py:4975 +#: musicbot/bot.py:4978 msgid "Resumed music queue" msgstr "Возобновленная очередь музыки" -#: musicbot/bot.py:4977 +#: musicbot/bot.py:4980 msgid "Player is not paused." msgstr "Игрок не приостанавливается." -#: musicbot/bot.py:4979 +#: musicbot/bot.py:4982 msgid "Shuffle all current tracks in the queue." msgstr "Перемешать все текущие треки в очереди." -#: musicbot/bot.py:5014 +#: musicbot/bot.py:5017 msgid "Shuffled all songs in the queue." msgstr "Перемещает все песни в очередь." -#: musicbot/bot.py:5016 +#: musicbot/bot.py:5019 msgid "Removes all songs currently in the queue." msgstr "Удаляет все песни, которые сейчас находятся в очереди." -#: musicbot/bot.py:5028 +#: musicbot/bot.py:5031 msgid "Cleared all songs from the queue." msgstr "Все песни из очереди очищены." -#: musicbot/bot.py:5033 +#: musicbot/bot.py:5036 msgid "Remove a song from the queue, optionally at the given queue position.\n" "If the position is omitted, the song at the end of the queue is removed.\n" "Use the queue command to find position number of your track.\n" @@ -916,268 +916,268 @@ msgstr "Удалить трек из очереди, по желанию мож "Используйте команду очереди, чтобы найти номер позиции вашего трека.\n" "Тем не менее, позиции всех песен меняются после начала воспроизведения новой песни.\n" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Нечего удалять в очереди!" -#: musicbot/bot.py:5068 +#: musicbot/bot.py:5071 #, python-format msgid "Removed `%(track)s` added by `%(user)s`" msgstr "Удалено `%(track)s` добавил `%(user)s`" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "В очереди у пользователя `%(user)s ничего не найдено" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "У вас недостаточно прав для удаления этой записи из очереди.\n" "Вы должны быть тот, кто поставил его в очередь или имеет мгновенные пропуска." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Неверный номер записи. Используйте команду очереди для поиска позиций." -#: musicbot/bot.py:5105 +#: musicbot/bot.py:5108 #, python-format msgid "Removed entry `%(track)s` added by `%(user)s`" msgstr "Удалена запись `%(track)s` добавлена `%(user)s`" -#: musicbot/bot.py:5110 +#: musicbot/bot.py:5113 #, python-format msgid "Removed entry `%(track)s`" msgstr "Удалена запись `%(track)s`" -#: musicbot/bot.py:5121 +#: musicbot/bot.py:5124 msgid "Skip or vote to skip the current playing song.\n" "Members with InstaSkip permission may use force parameter to bypass voting.\n" "If LegacySkip option is enabled, the force parameter can be ignored.\n" msgstr "" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Нельзя пропустить! Игрок не играет!" -#: musicbot/bot.py:5153 +#: musicbot/bot.py:5156 #, python-format msgid "The next song `%(track)s` is downloading, please wait." msgstr "Следующая песня `%(track)s` загружается, пожалуйста, подождите." -#: musicbot/bot.py:5161 +#: musicbot/bot.py:5164 msgid "The next song will be played shortly. Please wait." msgstr "Следующая песня будет воспроизведена в ближайшее время. Пожалуйста, подождите." -#: musicbot/bot.py:5166 +#: musicbot/bot.py:5169 msgid "Something odd is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "" -#: musicbot/bot.py:5173 +#: musicbot/bot.py:5176 msgid "Something strange is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "У вас недостаточно прав для принудительного пропуска циклической песни." -#: musicbot/bot.py:5211 +#: musicbot/bot.py:5214 #, python-format msgid "Force skipped `%(track)s`." msgstr "" -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "У вас нет разрешения на принудительный пропуск." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "У вас нет разрешения на пропуск зацикливаемой песни." -#: musicbot/bot.py:5269 +#: musicbot/bot.py:5272 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "The vote to skip has been passed.%(next_up)s" msgstr "Ваш пропуск для `%(track)s` был подтвержден.\n" "Пропущен голос.%(next_up)s" -#: musicbot/bot.py:5276 +#: musicbot/bot.py:5279 msgid " Next song coming up!" msgstr " Следующая песня!" -#: musicbot/bot.py:5293 +#: musicbot/bot.py:5296 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "Need **%(votes)s** more vote(s) to skip this song." msgstr "" -#: musicbot/bot.py:5306 +#: musicbot/bot.py:5309 msgid "Set the output volume level of MusicBot from 1 to 100.\n" "Volume parameter allows a leading + or - for relative adjustments.\n" "The volume setting is retained until MusicBot is restarted.\n" msgstr "" -#: musicbot/bot.py:5323 +#: musicbot/bot.py:5326 #, python-format msgid "Current volume: `%(volume)s%%`" msgstr "Текущий объем: `%(volume)s%%`" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` не является допустимым числом" -#: musicbot/bot.py:5351 +#: musicbot/bot.py:5354 #, python-format msgid "Updated volume from **%(old)d** to **%(new)d**" msgstr "Изменена громкость с **%(old)d** до **%(new)d**" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Неприемлемое изменение объема предусматривается: %(old_volume)s%(adjustment)s является %(new_volume)s.\n" "Том может быть установлен только от 1 до 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Неприемлемый объём: %(volume)s. Предоставьте значение от 1 до 100." -#: musicbot/bot.py:5374 +#: musicbot/bot.py:5377 msgid "Change the playback speed of the currently playing track only.\n" "The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" "Streaming playback does not support speed adjustments.\n" msgstr "" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "" -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "Скорость не может быть применена к потоковым носителям." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Вы должны предоставить скорость для установки." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "Предоставленная вами скорость является недопустимой. Используйте число в диапазоне от 0.5 до 100." -#: musicbot/bot.py:5432 +#: musicbot/bot.py:5435 #, python-format msgid "Setting playback speed to `%(speed).3f` for current track." msgstr "Установка скорости воспроизведения в `%(speed).3f` для текущего трека." -#: musicbot/bot.py:5441 +#: musicbot/bot.py:5444 msgid " Add an new alias with optional arguments.\n" msgstr "" -#: musicbot/bot.py:5444 +#: musicbot/bot.py:5447 msgid " Remove an alias with the given name." msgstr " Удалить псевдоним с заданным именем." -#: musicbot/bot.py:5447 +#: musicbot/bot.py:5450 msgid " Reload or save aliases from/to the config file." msgstr " Перезагрузить или сохранить псевдонимы из /в конфигурационный файл." -#: musicbot/bot.py:5451 +#: musicbot/bot.py:5454 msgid "Allows management of aliases from discord. To see aliases use the help command." msgstr "Позволяет управлять псевдонимами из discord. Чтобы увидеть псевдонимы, используйте команду помощи." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Недопустимый параметр для команды: `%(option)s`" -#: musicbot/bot.py:5477 +#: musicbot/bot.py:5480 msgid "Aliases reloaded from config file." msgstr "Псевдонимы перезагружены из файла конфигурации." -#: musicbot/bot.py:5482 +#: musicbot/bot.py:5485 msgid "Aliases saved to config file." msgstr "Псевдонимы сохранены в конфигурационном файле." -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Не удалось сохранить псевдонимы из-за ошибки:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Вы должны указать псевдоним и команду для псевдонима" -#: musicbot/bot.py:5498 +#: musicbot/bot.py:5501 #, python-format msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" msgstr "Добавлен новый псевдоним. `%(alias)s` теперь является псевдонимом `%(command)s`" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Вы должны указать имя псевдонима для удаления." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "Псевдоним `%(alias)s` не существует." -#: musicbot/bot.py:5518 +#: musicbot/bot.py:5521 #, python-format msgid "Alias `%(alias)s` was removed." msgstr "Псевдоним `%(alias)s` был удален." -#: musicbot/bot.py:5528 +#: musicbot/bot.py:5531 msgid " Shows help text about any missing config options.\n" msgstr "" -#: musicbot/bot.py:5531 +#: musicbot/bot.py:5534 msgid " Lists the names of options which have been changed since loading config file.\n" msgstr "" -#: musicbot/bot.py:5534 +#: musicbot/bot.py:5537 msgid " List the available config options and their sections.\n" msgstr "" -#: musicbot/bot.py:5537 +#: musicbot/bot.py:5540 msgid " Reload the options.ini file from disk.\n" msgstr "" -#: musicbot/bot.py:5540 +#: musicbot/bot.py:5543 msgid " Shows help text for a specific option.\n" msgstr " Показывает текст справки для определенного варианта.\n" -#: musicbot/bot.py:5543 +#: musicbot/bot.py:5546 msgid " Display the current value of the option.\n" msgstr " Отображение текущего значения параметра.\n" -#: musicbot/bot.py:5546 +#: musicbot/bot.py:5549 msgid " Saves the current value to the options file.\n" msgstr " Сохраняет текущее значение в файл параметров.\n" -#: musicbot/bot.py:5549 +#: musicbot/bot.py:5552 msgid " Validates the option and sets the config for the session, but not to file.\n" msgstr " Проверяет опцию и устанавливает конфигурацию для сессии, но не для файла.\n" -#: musicbot/bot.py:5552 +#: musicbot/bot.py:5555 msgid " Reset the option to its default value.\n" msgstr " Сброс параметра в значение по умолчанию.\n" -#: musicbot/bot.py:5555 +#: musicbot/bot.py:5558 msgid "Manage options.ini configuration from within Discord." msgstr "Управление конфигурацией options.ini из Discord." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "Конфигурация не может использовать канал и упоминания пользователя одновременно." -#: musicbot/bot.py:5596 +#: musicbot/bot.py:5599 #, python-format msgid "**Missing Option:** `%(config)s`\n" "```\n" @@ -1188,22 +1188,22 @@ msgstr "**Отсутствует опция:** `%(config)s`\n" "%(comment)s\n" "установлено по умолчанию: %(default)s```\n" -#: musicbot/bot.py:5609 +#: musicbot/bot.py:5612 msgid "*All config options are present and accounted for!*" msgstr "*Все настройки присутствуют и учтены для!*" -#: musicbot/bot.py:5625 +#: musicbot/bot.py:5628 msgid "No config options appear to be changed." msgstr "Похоже, что настройки конфигурации не были изменены." -#: musicbot/bot.py:5627 +#: musicbot/bot.py:5630 #, python-format msgid "**Changed Options:**\n" "%(changed)s" msgstr "**Измененные параметры:**\n" "%(changed)s" -#: musicbot/bot.py:5647 +#: musicbot/bot.py:5650 #, python-format msgid "## Available Options:\n" "**Editable Options:**\n" @@ -1216,51 +1216,51 @@ msgstr "## Доступные опции:\n" "**Только для ручного редактирования:**\n" "%(manual)s" -#: musicbot/bot.py:5669 +#: musicbot/bot.py:5672 msgid "Config options reloaded from file successfully!" msgstr "Настройки конфигурации успешно перезагружены из файла!" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Не удалось перезагрузить конфигурацию из-за следующей ошибки:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Не удалось определить название секции с названием опции. Пожалуйста, укажите корректный раздел и название опции." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "Указанная опция является неоднозначной, укажите название раздела." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Вы должны указать название раздела и название параметра для этой команды." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "Раздел `%(section)s` недоступен.\n" "Доступные разделы: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "Опция `%(option)s` недоступна." -#: musicbot/bot.py:5733 +#: musicbot/bot.py:5736 msgid "This option can only be set by editing the config file." msgstr "Эта опция может быть задана только редактированием конфигурационного файла." -#: musicbot/bot.py:5737 +#: musicbot/bot.py:5740 #, python-format msgid "By default this option is set to: %(default)s" msgstr "По умолчанию эта опция установлена на: %(default)s" -#: musicbot/bot.py:5742 +#: musicbot/bot.py:5745 #, python-format msgid "**Option:** `%(config)s`\n" "%(comment)s\n\n" @@ -1269,27 +1269,27 @@ msgstr "**Опция:** `%(config)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "Параметр `%(option)s` не редактируется. Невозможно сохранить на диск." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Не удалось сохранить опцию: `%(option)s`" -#: musicbot/bot.py:5767 +#: musicbot/bot.py:5770 #, python-format msgid "Successfully saved the option: `%(config)s`" msgstr "Опция `%(config)s` успешно сохранена" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "Параметр `%(option)s` не может быть отредактирован, значение не отображается." -#: musicbot/bot.py:5784 +#: musicbot/bot.py:5787 #, python-format msgid "**Option:** `%(config)s`\n" "Current Value: `%(loaded)s`\n" @@ -1298,80 +1298,80 @@ msgstr "**Опция:** `%(config)s`\n" "Текущее значение: `%(loaded)s`\n" "INI значение файла: `%(ini)s`" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "Параметр `%(option)s` не редактируется. Не удается обновить параметр." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Вы должны указать раздел, параметр и значение для этой подкоманды." -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "Опция `%(option)s` не была обновлена!" -#: musicbot/bot.py:5822 +#: musicbot/bot.py:5825 #, python-format msgid "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "Опция `%(config)s` была обновлена для этой сессии.\n" "Для сохранения изменения используйте `config save %(section)s %(option)s`" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "Параметр `%(option)s` не является редактируемым. Невозможно сбросить к значению по умолчанию." -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "Параметр `%(option)s` не был сброшен до значения по умолчанию!" -#: musicbot/bot.py:5857 +#: musicbot/bot.py:5860 #, python-format msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "Параметр `%(config)s` был сброшен к значению по умолчанию `%(default)s`.\n" "Чтобы сохранить изменение используйте `config save %(section)s %(option)s`" -#: musicbot/bot.py:5872 +#: musicbot/bot.py:5875 msgid "Deprecated command, use the config command instead." msgstr "Устаревшая команда, используйте команду config." -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "Команда опции является устаревшим, используйте команду config." -#: musicbot/bot.py:5892 +#: musicbot/bot.py:5895 msgid "Display information about cache storage or clear cache according to configured limits.\n" "Using update option will scan the cache for external changes before displaying details." msgstr "Отображение информации о кэше или очистка кэша в соответствии с заданными пределами.\n" "Использование опции обновления будет сканировать кэш для внешних изменений перед отображением деталей." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Указан неверный параметр, используйте информацию: info, update, or clear" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Disabled" msgstr "Отключено" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Enabled" msgstr "Включено" -#: musicbot/bot.py:5919 +#: musicbot/bot.py:5922 #, python-format msgid "%(time)s days" msgstr "" -#: musicbot/bot.py:5925 musicbot/bot.py:5928 +#: musicbot/bot.py:5928 musicbot/bot.py:5931 msgid "Unlimited" msgstr "Неограниченный" -#: musicbot/bot.py:5933 +#: musicbot/bot.py:5936 #, python-format msgid "**Video Cache:** *%(state)s*\n" "**Storage Limit:** *%(size)s*\n" @@ -1382,38 +1382,38 @@ msgstr "**Видео кэш:** *%(state)s*\n" "**Лимит времени:** *%(time)s*\n\n" "**Cached Now: %(used)s in %(files)s file(s)." -#: musicbot/bot.py:5956 +#: musicbot/bot.py:5959 msgid "Cache has been cleared." msgstr "Кэш был очищен." -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Не удалось** удалить кэш, проверьте журналы для получения дополнительной информации..." -#: musicbot/bot.py:5965 +#: musicbot/bot.py:5968 msgid "No cache found to clear." msgstr "Не найден кэш для очистки." -#: musicbot/bot.py:5973 +#: musicbot/bot.py:5976 msgid "Display information about the current player queue.\n" "Optional page number shows later entries in the queue.\n" msgstr "" -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "Аргумент очереди страницы должен быть целым числом." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "" -#: musicbot/bot.py:6025 +#: musicbot/bot.py:6026 msgid "(unknown duration)" msgstr "(время неизвестно)" -#: musicbot/bot.py:6034 +#: musicbot/bot.py:6035 #, python-format msgid "Currently playing: `%(title)s`\n" "Added by: `%(user)s`\n" @@ -1422,14 +1422,14 @@ msgstr "В настоящее время играет: `%(title)s`\n" "Добавлено: `%(user)s`\n" "Прогресс: `[%(progress)s/%(total)s]`\n" -#: musicbot/bot.py:6064 +#: musicbot/bot.py:6065 #, python-format msgid "**Entry #%(index)s:**Title: `%(title)s`\n" "Added by: `%(user)s\n\n" msgstr "**Entry #%(index)s:**Title: `%(title)s`\n" "Добавлено: `%(user)s\n\n" -#: musicbot/bot.py:6072 +#: musicbot/bot.py:6073 #, python-format msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" "Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" @@ -1438,16 +1438,16 @@ msgstr "%(progress)sВ очереди ` записей%(total)s`.\n" "Вот следующие песни %(per_page)s , начинающиеся с #%(start)s\n\n" "%(tracks)s" -#: musicbot/bot.py:6085 +#: musicbot/bot.py:6086 msgid "Songs in queue" msgstr "Песни в очереди" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "" -#: musicbot/bot.py:6156 +#: musicbot/bot.py:6157 msgid "Search for and remove bot messages and commands from the calling text channel.\n" "Optionally supply a number of messages to search through, 50 by default 500 max.\n" "This command may be slow if larger ranges are given.\n" @@ -1455,90 +1455,90 @@ msgstr "Поиск и удаление сообщений и команд бот "При необходимости поставьте количество сообщений для поиска, 50 по умолчанию 500 макс.\n" "Эта команда может быть медленной, если указаны большие диапазоны.\n" -#: musicbot/bot.py:6180 +#: musicbot/bot.py:6181 msgid "Invalid parameter. Please provide a number of messages to search." msgstr "Неверный параметр. Укажите количество сообщений для поиска." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Нельзя использовать очистку в приватном ЛС канале." -#: musicbot/bot.py:6222 +#: musicbot/bot.py:6223 #, python-format msgid "Cleaned up %(number)s message(s)." msgstr "Очищено %(number)s сообщение(ов)." -#: musicbot/bot.py:6226 +#: musicbot/bot.py:6227 msgid "Bot does not have permission to manage messages." msgstr "Бот не имеет разрешения на управление сообщениями." -#: musicbot/bot.py:6231 +#: musicbot/bot.py:6232 msgid "Dump the individual URLs of a playlist to a file." msgstr "Сбросить отдельные URL плейлиста в файл." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "Указанный URL не является допустимым URL." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Не удалось извлечь информацию из входного url\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "Похоже, что это не плейлист." -#: musicbot/bot.py:6282 +#: musicbot/bot.py:6283 #, python-format msgid "Here is the playlist dump for: %(url)s" msgstr "Вот дамп плейлиста для: %(url)s" -#: musicbot/bot.py:6292 +#: musicbot/bot.py:6293 msgid "Display your Discord User ID, or the ID of a mentioned user.\n" "This command is deprecated in favor of Developer Mode in Discord clients.\n" msgstr "" -#: musicbot/bot.py:6307 +#: musicbot/bot.py:6308 #, python-format msgid "Your user ID is `%(id)s`" msgstr "Ваш идентификатор пользователя: `%(id)s`" -#: musicbot/bot.py:6312 +#: musicbot/bot.py:6313 #, python-format msgid "The user ID for `%(username)s` is `%(id)s`" msgstr "ID пользователя для `%(username)s`: `%(id)s`" -#: musicbot/bot.py:6319 +#: musicbot/bot.py:6320 msgid "List the Discord IDs for the selected category.\n" "Returns all ID data by default, but one or more categories may be selected.\n" "This command is deprecated in favor of using Developer mode in Discord clients.\n" msgstr "" -#: musicbot/bot.py:6341 +#: musicbot/bot.py:6342 #, python-format msgid "Valid categories: %(cats)s" msgstr "Допустимые категории: %(cats)s" -#: musicbot/bot.py:6388 +#: musicbot/bot.py:6389 msgid "Here are the IDs you requested:" msgstr "Ниже приведены идентификаторы ваших запросов:" -#: musicbot/bot.py:6395 +#: musicbot/bot.py:6396 msgid "Get a list of your permissions, or the permissions of the mentioned user." msgstr "Получить список разрешений, или разрешения упомянутого пользователя." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "Неверный ID пользователя или имя сервера, проверьте ID и повторите попытку." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Не удалось определить пользователя discord. Попробуйте еще раз." -#: musicbot/bot.py:6439 +#: musicbot/bot.py:6440 #, python-format msgid "Your command permissions in %(server)s are:\n" "```\n" @@ -1549,7 +1549,7 @@ msgstr "Права доступа к командам в %(server)s :\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6448 +#: musicbot/bot.py:6449 #, python-format msgid "The command permissions for %(username)s in %(server)s are:\n" "```\n" @@ -1560,58 +1560,58 @@ msgstr "Разрешения команд для %(username)s в %(server)s :\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6464 +#: musicbot/bot.py:6465 msgid " Show loaded groups and list permission options.\n" msgstr "" -#: musicbot/bot.py:6467 +#: musicbot/bot.py:6468 msgid " Reloads permissions from the permissions.ini file.\n" msgstr " Перезагружает права доступа из файла permissions.ini.\n" -#: musicbot/bot.py:6470 +#: musicbot/bot.py:6471 msgid " Add new group with defaults.\n" msgstr "" -#: musicbot/bot.py:6473 +#: musicbot/bot.py:6474 msgid " Remove existing group.\n" msgstr " Удалить существующую группу.\n" -#: musicbot/bot.py:6476 +#: musicbot/bot.py:6477 msgid " Show help text for the permission option.\n" msgstr " Показать текст справки для опции разрешения.\n" -#: musicbot/bot.py:6479 +#: musicbot/bot.py:6480 msgid " Show permission value for given group and permission.\n" msgstr "" -#: musicbot/bot.py:6482 +#: musicbot/bot.py:6483 msgid " Save permissions group to file.\n" msgstr " Сохранить группу прав доступа в файл.\n" -#: musicbot/bot.py:6485 +#: musicbot/bot.py:6486 msgid " Set permission value for the group.\n" msgstr " Установка значения прав доступа для группы.\n" -#: musicbot/bot.py:6488 +#: musicbot/bot.py:6489 msgid "Manage permissions.ini configuration from within discord." msgstr "Управление конфигурацией permissions.ini из дистрибутива." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Права доступа не могут использовать каналы и упоминания пользователей одновременно." -#: musicbot/bot.py:6534 +#: musicbot/bot.py:6535 msgid "Permissions reloaded from file successfully!" msgstr "Права доступа успешно перезагружены из файла!" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Не удается перезагрузить разрешения из-за ошибки:\n" "%(raw_error)s" -#: musicbot/bot.py:6558 +#: musicbot/bot.py:6559 #, python-format msgid "## Available Groups:\n" "%(groups)s\n" @@ -1622,41 +1622,41 @@ msgstr "## Доступные группы:\n" "## Доступные параметры:\n" "%(options)s\n" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Вы должны указать название группы или опции для этой команды." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Вы должны указать группу, опцию и значение для этой команды." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "Субкоманда %(option)s требует имя группы и прав доступа." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "Группа `%(group)s` недоступна.\n" "Доступные группы: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "Разрешение `%(option)s` недоступно." -#: musicbot/bot.py:6624 +#: musicbot/bot.py:6625 msgid "This permission can only be set by editing the permissions file." msgstr "Это право может быть установлено только редактированием файла разрешений." -#: musicbot/bot.py:6633 +#: musicbot/bot.py:6634 #, python-format msgid "By default this permission is set to: `%(value)s`" msgstr "По умолчанию это разрешение установлено в: `%(value)s`" -#: musicbot/bot.py:6638 +#: musicbot/bot.py:6639 #, python-format msgid "**Permission:** `%(option)s`\n" "%(comment)s\n\n" @@ -1665,12 +1665,12 @@ msgstr "**Разрешение:** `%(option)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Невозможно добавить группу `%(group)s`, она уже существует." -#: musicbot/bot.py:6660 +#: musicbot/bot.py:6661 #, python-format msgid "Successfully added new group: `%(group)s`\n" "You can now customize the permissions with: `setperms set %(group)s`\n" @@ -1679,32 +1679,32 @@ msgstr "Успешно добавлена новая группа: `%(group)s`\n "Теперь вы можете изменить права доступа с: `setperms set %(group)s`\n" "Убедитесь, что новая группа сохранена в: `setperms save %(group)s`" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Невозможно удалить встроенную группу." -#: musicbot/bot.py:6677 +#: musicbot/bot.py:6678 #, python-format msgid "Successfully removed group: `%(group)s`\n" "Make sure to save this change with: `setperms save %(group)s`" msgstr "Удалена группа: `%(group)s`\n" "Не забудьте сохранить это изменение с: `setperms save %(group)s`" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "Группа владельцев не редактируется." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Не удалось сохранить группу: `%(group)s`" -#: musicbot/bot.py:6700 +#: musicbot/bot.py:6701 #, python-format msgid "Successfully saved the group: `%(group)s`" msgstr "Группа успешно сохранена: `%(group)s`" -#: musicbot/bot.py:6711 +#: musicbot/bot.py:6712 #, python-format msgid "**Permission:** `%(permission)s`\n" "Current Value: `%(loaded)s`\n" @@ -1713,153 +1713,203 @@ msgstr "**Разрешение:** `%(permission)s`\n" "Текущее значение: `%(loaded)s`\n" "INI значение файла: `%(ini)s`" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Разрешение `%(option)s` не было обновлено!" -#: musicbot/bot.py:6748 +#: musicbot/bot.py:6749 #, python-format msgid "Permission `%(permission)s` was updated for this session.\n" "To save the change use `setperms save %(section)s %(option)s`" msgstr "Разрешение `%(permission)sбыло обновлено для этой сессии.\n" "Чтобы сохранить изменение, используйте `setperms сохранить %(section)s %(option)s`" -#: musicbot/bot.py:6765 +#: musicbot/bot.py:6766 msgid "Change the bot's username on discord.\n" "Note: The API may limit name changes to twice per hour." msgstr "" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Не удалось изменить имя пользователя. Вы изменили имена слишком много раз?\n" "Запомнить, что изменения имени ограничены дважды в час.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Не удалось изменить имя пользователя из-за ошибки: \n" "%(raw_error)s" -#: musicbot/bot.py:6795 +#: musicbot/bot.py:6796 #, python-format msgid "Set the bot's username to `%(name)s`" msgstr "Установить имя бота в `%(name)s`" -#: musicbot/bot.py:6798 +#: musicbot/bot.py:6799 msgid "Change the MusicBot's nickname." msgstr "Изменить псевдоним MusicBot." -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Невозможно изменить никнейм: нет разрешения." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Не удалось задать псевдоним из-за ошибки: \n" "%(raw_error)s" -#: musicbot/bot.py:6825 +#: musicbot/bot.py:6826 #, python-format msgid "Set the bot's nickname to `%(nick)s`" msgstr "Установите ник бота в `%(nick)s`" -#: musicbot/bot.py:6832 +#: musicbot/bot.py:6833 msgid " Set a per-server command prefix." msgstr " Установите префикс команд для каждого сервера." -#: musicbot/bot.py:6834 +#: musicbot/bot.py:6835 msgid " Clear the per-server command prefix." msgstr " Очистить префикс команды для каждого сервера." -#: musicbot/bot.py:6838 +#: musicbot/bot.py:6839 msgid "Override the default command prefix in the server.\n" "The option EnablePrefixPerGuild must be enabled first." msgstr "Переопределить префикс команд по умолчанию на сервере.\n" "Сначала должен быть включен параметр EnablePrefixPerGuild" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Пользовательские эмодзи должны быть с этого сервера, чтобы использовать в качестве префикса." -#: musicbot/bot.py:6866 +#: musicbot/bot.py:6867 msgid "Server command prefix is cleared." msgstr "Префикс команд сервера очищен." -#: musicbot/bot.py:6871 +#: musicbot/bot.py:6872 #, python-format msgid "Server command prefix is now: %(prefix)s" msgstr "Теперь префикс команд сервера: %(prefix)s" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Префикс на сервер не включен!\n" "Используйте команду конфигурации для обновления префикса." -#: musicbot/bot.py:6885 +#: musicbot/bot.py:6886 +msgid " Show language codes available to use.\n" +msgstr " Показать коды языков, доступные для использования.\n" + +#: musicbot/bot.py:6889 +msgid " Set the desired language for this server.\n" +msgstr "" + +#: musicbot/bot.py:6892 +msgid " Reset the server language to bot's default language.\n" +msgstr " Сброс языка сервера на язык бота по умолчанию.\n" + +#: musicbot/bot.py:6895 +msgid "Manage the language used for messages in the calling server." +msgstr "Управление языком, используемым для сообщений на сервере." + +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Эта команда может быть использована только в гильдиях." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Неверная субкоманда. Используйте команду справки для получения дополнительной информации." + +#: musicbot/bot.py:6924 +#, python-format +msgid "**Current Language:** `%(locale)s`\n" +"**Available Languages:**\n" +"```\n" +"%(languages)s```" +msgstr "**Текущий язык:** `%(locale)s`\n" +"**Доступные языки:**\n" +"```\n" +"%(languages)s```" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Не удается установить язык в `%(locale)s`, он недоступен." + +#: musicbot/bot.py:6939 +#, python-format +msgid "Language for this server now set to: `%(locale)s`" +msgstr "Язык для этого сервера теперь установлен в: `%(locale)s`" + +#: musicbot/bot.py:6947 +#, python-format +msgid "Language for this server has been reset to: `%(locale)s`" +msgstr "Язык для этого сервера был сброшен: `%(locale)s`" + +#: musicbot/bot.py:6959 msgid "Change MusicBot's avatar.\n" "Attaching a file and omitting the url parameter also works.\n" msgstr "" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "Вы должны указать URL или прикрепить файл." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Невозможно изменить аватар из-за ошибки: \n" "%(raw_error)s" -#: musicbot/bot.py:6919 +#: musicbot/bot.py:6993 msgid "Changed the bot's avatar." msgstr "Изменил аватар бота." -#: musicbot/bot.py:6922 +#: musicbot/bot.py:6996 msgid "Force MusicBot to disconnect from the discord server." msgstr "Принудительно отключиться от сервера discord." -#: musicbot/bot.py:6933 +#: musicbot/bot.py:7007 #, python-format msgid "Disconnected from server `%(guild)s`" msgstr "Отключен от сервера`%(guild)s`" -#: musicbot/bot.py:6948 +#: musicbot/bot.py:7022 msgid "Disconnected a playerless voice client? [BUG]" msgstr "Отсоединил голосового клиента без проигрывателя? [BUG]" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Сейчас не подключен к серверу`%(guild)s`" -#: musicbot/bot.py:6960 +#: musicbot/bot.py:7034 msgid " Attempt to reload without process restart. The default option.\n" msgstr " Попытка перезагрузки без перезапуска процесса. Параметр по умолчанию.\n" -#: musicbot/bot.py:6962 +#: musicbot/bot.py:7036 msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" msgstr " Попытка перезапустить весь процесс MusicBot, перезагрузка всего.\n" -#: musicbot/bot.py:6964 +#: musicbot/bot.py:7038 msgid " Full restart, but attempt to update pip packages before restart.\n" msgstr " Полный перезапуск, но попытаться обновить pip пакеты перед перезагрузкой.\n" -#: musicbot/bot.py:6966 +#: musicbot/bot.py:7040 msgid " Full restart, but update MusicBot source code with git first.\n" msgstr " Полный перезапуск, но сначала обновите исходный код MusicBot.\n" -#: musicbot/bot.py:6968 +#: musicbot/bot.py:7042 msgid " Attempt to update all dependency and source code before fully restarting.\n" msgstr " Попытка обновить все зависимости и исходный код перед полной перезагрузкой.\n" -#: musicbot/bot.py:6972 +#: musicbot/bot.py:7046 msgid "Attempts to restart the MusicBot in a number of different ways.\n" "With no option supplied, a `soft` restart is implied.\n" "It can be used to remotely update a MusicBot installation, but should be used with care.\n" @@ -1869,102 +1919,102 @@ msgstr "Попытки перезапустить MusicBot нескольким "Он может быть использован для удаленного обновления MusicBot, но должен использоваться с осторожностью.\n" "Если у вас есть менеджер служб, мы рекомендуем использовать его вместо этой команды для перезапуска.\n" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Недопустимый параметр, используйте один из: мягкий, полный, обновление, uppip, или upgit" -#: musicbot/bot.py:6999 +#: musicbot/bot.py:7073 #, python-format msgid "%(emoji)s Restarting current instance..." msgstr "%(emoji)s перезапуск текущего экземпляра..." -#: musicbot/bot.py:7004 +#: musicbot/bot.py:7078 #, python-format msgid "%(emoji)s Restarting bot process..." msgstr "%(emoji)s Перезапуск бота..." -#: musicbot/bot.py:7009 +#: musicbot/bot.py:7083 #, python-format msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." msgstr "%(emoji)s попытается обновить необходимые pip пакеты и перезапустить бот..." -#: musicbot/bot.py:7014 +#: musicbot/bot.py:7088 #, python-format msgid "%(emoji)s Will try to update bot code with git and restart the bot..." msgstr "%(emoji)s попытается обновить бот-код git и перезапустить бот..." -#: musicbot/bot.py:7019 +#: musicbot/bot.py:7093 #, python-format msgid "%(emoji)s Will try to upgrade everything and restart the bot..." msgstr "%(emoji)s попытается обновить всё и перезапустить бот..." -#: musicbot/bot.py:7053 +#: musicbot/bot.py:7127 msgid "Disconnect from all voice channels and close the MusicBot process." msgstr "Отсоединитесь от всех голосовых каналов и закройте процесс MusicBot." -#: musicbot/bot.py:7079 +#: musicbot/bot.py:7153 msgid " Leave the discord server given by name or server ID." msgstr " Оставить сервер discord, заданный по имени или ID сервера." -#: musicbot/bot.py:7083 +#: musicbot/bot.py:7157 msgid "Force MusicBot to leave the given Discord server.\n" "Names are case-sensitive, so using an ID number is more reliable.\n" msgstr "" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Вы должны указать ID или имя." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "Не найдено ни одной гильдии с ID или именем `%(input)s`" -#: musicbot/bot.py:7121 +#: musicbot/bot.py:7195 msgid "Unknown" msgstr "Неизвестен" -#: musicbot/bot.py:7128 +#: musicbot/bot.py:7202 #, python-format msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" msgstr "Слева от гильдии: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" -#: musicbot/bot.py:7138 +#: musicbot/bot.py:7212 msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." msgstr "Команда, используемая для тестирования. Она печатает список команд, которые могут быть проверены набором тестов." -#: musicbot/bot.py:7162 +#: musicbot/bot.py:7236 msgid "This command issues a log at level CRITICAL, but does nothing else.\n" "Can be used to manually pinpoint events in the MusicBot log file.\n" msgstr "Эта команда выпускает журнал на уровне CRITICAL, но ничего не делает.\n" "Может использоваться для закрепления событий вручную в файле журнала MusicBot.\n" -#: musicbot/bot.py:7173 +#: musicbot/bot.py:7247 #, python-format msgid "Logged breakpoint with ID: %(uuid)s" msgstr "Логированная точка останова с ID: %(uuid)s" -#: musicbot/bot.py:7180 +#: musicbot/bot.py:7254 msgid " View most common types reported by objgraph.\n" msgstr "" -#: musicbot/bot.py:7183 +#: musicbot/bot.py:7257 msgid " View limited objgraph.show_growth() output.\n" msgstr " Просмотр ограниченного вывода objgraph.show_growth().\n" -#: musicbot/bot.py:7186 +#: musicbot/bot.py:7260 msgid " View most common types of leaking objects.\n" msgstr " Просмотр наиболее распространенных типов утечек объектов.\n" -#: musicbot/bot.py:7189 +#: musicbot/bot.py:7263 msgid " View typestats of leaking objects.\n" msgstr "" -#: musicbot/bot.py:7192 +#: musicbot/bot.py:7266 msgid " Evaluate the given function and arguments on objgraph.\n" msgstr " Оценить заданную функцию и аргументы на обджграфе.\n" -#: musicbot/bot.py:7196 +#: musicbot/bot.py:7270 msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" "You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" "Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" @@ -1972,11 +2022,11 @@ msgstr "Взаимодействовать с objgraph, если он устан "Вы можете передать произвольный метод с аргументами (но без пробелов!), которые являются членами objgraph.\n" "Поскольку этот метод вычисляет произвольный код, он считается опасным, как команда отладки.\n" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Не удалось импортировать `objgraph`, он установлен?" -#: musicbot/bot.py:7249 +#: musicbot/bot.py:7323 msgid "This command will execute arbitrary python code in the command scope.\n" "First eval() is attempted, if exceptions are thrown exec() is tried next.\n" "If eval is successful, it's return value is displayed.\n" @@ -1987,7 +2037,7 @@ msgid "This command will execute arbitrary python code in the command scope.\n" "The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" msgstr "" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -2000,65 +2050,65 @@ msgstr "Не удалось выполнить отладочный код:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7320 +#: musicbot/bot.py:7394 msgid "Create 'markdown' for options, permissions, or commands from the code.\n" "The output is used to update GitHub Pages and is thus unsuitable for normal reference use." msgstr "Создайте «markdown» для опций, разрешений или команд из кода.\n" "Вывод используется для обновления страниц GitHub и, таким образом, не подходит для нормального использования ссылок." -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "Подкоманда должна быть одной из %(options)s" -#: musicbot/bot.py:7387 +#: musicbot/bot.py:7461 msgid "Makes default INI files." msgstr "Делает INI-файлы по умолчанию." -#: musicbot/bot.py:7410 +#: musicbot/bot.py:7486 msgid "Saved the requested INI file to disk. Go check it" msgstr "Запрошенный INI-файл сохранен на диск. Проверьте" -#: musicbot/bot.py:7415 +#: musicbot/bot.py:7491 msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" msgstr "" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Не удалось найти исполняемый файл git." -#: musicbot/bot.py:7473 +#: musicbot/bot.py:7549 #, python-format msgid "No updates in branch `%(branch)s` remote." msgstr "В ветке `%(branch)s` нет обновлений." -#: musicbot/bot.py:7478 +#: musicbot/bot.py:7554 #, python-format msgid "New commits are available in `%(branch)s` branch remote." msgstr "Новые коммиты доступны в удаленной ветке `%(branch)s`." -#: musicbot/bot.py:7484 musicbot/bot.py:7527 +#: musicbot/bot.py:7560 musicbot/bot.py:7603 msgid "Error while checking, see logs for details." msgstr "Ошибка при проверке, смотрите журналы для подробностей." -#: musicbot/bot.py:7518 +#: musicbot/bot.py:7594 #, python-format msgid "Update for `%(name)s` to version: `%(version)s`\n" msgstr "Обновление для `%(name)s` до версии: `%(version)s`\n" -#: musicbot/bot.py:7524 +#: musicbot/bot.py:7600 msgid "No updates for dependencies found." msgstr "Обновления для зависимостей не найдены." -#: musicbot/bot.py:7530 +#: musicbot/bot.py:7606 msgid "There are updates for MusicBot available for download." msgstr "Доступны для скачивания обновления MusicBot." -#: musicbot/bot.py:7532 +#: musicbot/bot.py:7608 msgid "MusicBot is totally up-to-date!" msgstr "MusicBot полностью актуальен!" -#: musicbot/bot.py:7536 +#: musicbot/bot.py:7612 #, python-format msgid "%(status)s\n\n" "**Source Code Updates:**\n" @@ -2071,29 +2121,29 @@ msgstr "%(status)s\n\n" "**Обновления зависимости:**\n" "%(pip_status)s" -#: musicbot/bot.py:7550 +#: musicbot/bot.py:7626 msgid "Displays the MusicBot uptime, or time since last start / restart." msgstr "Отображает время загрузки MusicBot или время с момента последнего запуска/перезапуска." -#: musicbot/bot.py:7565 +#: musicbot/bot.py:7641 #, python-format msgid "%(name)s has been online for `%(time)s`" msgstr "%(name)s был онлайн для `%(time)s`" -#: musicbot/bot.py:7572 +#: musicbot/bot.py:7648 msgid "Display latency information for Discord API and all connected voice clients." msgstr "Отображение информации о задержках для API Discord и всех подключенных голосовых клиентов." -#: musicbot/bot.py:7594 +#: musicbot/bot.py:7670 #, python-format msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) в регионе: `%(region)s`\n" -#: musicbot/bot.py:7599 +#: musicbot/bot.py:7675 msgid "No voice clients connected.\n" msgstr "" -#: musicbot/bot.py:7604 +#: musicbot/bot.py:7680 #, python-format msgid "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" @@ -2102,47 +2152,47 @@ msgstr "**Задержка API:** `%(delay).0f ms`\n" "**Задержка голосового клиента:**\n" "%(voices)s" -#: musicbot/bot.py:7612 +#: musicbot/bot.py:7688 msgid "Display API latency and Voice latency if MusicBot is connected." msgstr "Отображение задержки API и задержки голоса при подключении MusicBot." #. TRANSLATORS: short for automatic, displayed when voice region is not selected. -#: musicbot/bot.py:7628 +#: musicbot/bot.py:7704 msgid "auto" msgstr "авто" -#: musicbot/bot.py:7630 +#: musicbot/bot.py:7706 #, python-format msgid "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" msgstr "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Среднее) в регионе `%(region)s" -#: musicbot/bot.py:7635 +#: musicbot/bot.py:7711 #, python-format msgid "**API Latency:** `%(delay).0f ms`%(voice)s" msgstr "**Задержка API:** `%(delay).0f ms`%(voice)s" -#: musicbot/bot.py:7640 +#: musicbot/bot.py:7716 msgid "Display MusicBot version number in the chat." msgstr "Отображать номер версии MusicBot в чате." -#: musicbot/bot.py:7648 +#: musicbot/bot.py:7724 #, python-format msgid "https://github.com/Just-Some-Bots/MusicBot\n" "Current version: `%(version)s`" msgstr "https://github.com/Just-Some-Bots/MusicBot\n" "Текущая версия: `%(version)s`" -#: musicbot/bot.py:7660 +#: musicbot/bot.py:7736 msgid " Update the cookies.txt file using a cookies.txt attachment." msgstr " Обновите файл cookies.txt, используя файл cookies.txt." -#: musicbot/bot.py:7663 +#: musicbot/bot.py:7739 msgid " Enable or disable cookies.txt file without deleting it." msgstr " Включение или отключение файла cookies.txt без его удаления." -#: musicbot/bot.py:7667 +#: musicbot/bot.py:7743 msgid "Allows management of the cookies feature in yt-dlp.\n" "When updating cookies, you must upload a file named cookies.txt\n" "If cookies are disabled, uploading will enable the feature.\n" @@ -2154,90 +2204,90 @@ msgid "Allows management of the cookies feature in yt-dlp.\n" " feature if you do not understand how to avoid the risks." msgstr "" -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookies уже включены." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Cookies должны быть загружены для включения. (issing cookies файл.)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Не удалось включить куки из-за ошибки: %(raw_error)s" -#: musicbot/bot.py:7711 +#: musicbot/bot.py:7787 msgid "Cookies have been enabled." msgstr "Cookies были включены." -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Не удалось переименовать файл cookies из-за ошибки: %(raw_error)s\n" "Cookies временно отключены и будут повторно включены при следующем перезапуске." -#: musicbot/bot.py:7726 +#: musicbot/bot.py:7802 msgid "Cookies have been disabled." msgstr "Cookies были отключены." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "Не найдено приложенных загрузок, попробуйте еще раз при загрузке файла cookie." -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Ошибка при загрузке файла cookie с дискода: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Не удалось сохранить куки на диске: %(raw_error)s" -#: musicbot/bot.py:7762 +#: musicbot/bot.py:7838 msgid "Cookies uploaded and enabled." msgstr "Cookies загружены и включены." -#: musicbot/bot.py:7872 +#: musicbot/bot.py:7948 msgid "You cannot use this bot in private messages." msgstr "Вы не можете использовать этого бота в личных сообщениях." -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Эта команда не разрешена для вашей группы прав: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Эта команда требует, чтобы вы были в голосовом канале." -#: musicbot/bot.py:8075 +#: musicbot/bot.py:8151 #, python-format msgid "**Command:** %(name)s" msgstr "**Команда:** %(name)s" -#: musicbot/bot.py:8134 +#: musicbot/bot.py:8210 msgid "Exception Error" msgstr "Ошибка исключения" -#: musicbot/bot.py:8179 +#: musicbot/bot.py:8255 #, python-format msgid "**Example with prefix:**\n" "%(prefix)s`%(command)s ...`\n" msgstr "**Пример с префиксом:**\n" "%(prefix)s`%(command)s ...`\n" -#: musicbot/bot.py:8183 +#: musicbot/bot.py:8259 msgid "No description given.\n" msgstr "Нет описания.\n" -#: musicbot/bot.py:8186 +#: musicbot/bot.py:8262 msgid "No usage given." msgstr "Использование не дано." -#: musicbot/bot.py:8220 +#: musicbot/bot.py:8296 #, python-format msgid "**Example usage:**\n" "```%(usage)s```\n" @@ -2248,12 +2298,12 @@ msgstr "**Пример использования:**\n" "%(prefix_note)s**Описание:**\n" "%(desc)s" -#: musicbot/bot.py:8273 +#: musicbot/bot.py:8349 #, python-format msgid "Leaving voice channel %(channel)s due to inactivity." msgstr "Выход голосового канала %(channel)s из-за неактивности." -#: musicbot/bot.py:8554 +#: musicbot/bot.py:8645 #, python-format msgid "Left `%(guild)s` due to bot owner not being found in it." msgstr "Левый `%(guild)s` из-за отсутствия владельца бота в нем." @@ -2419,40 +2469,40 @@ msgid "Enable automatic skip of auto playlist songs when a user plays a new song msgstr "Включить автоматическое пропуск треков в списке автовоспроизведения, когда пользователь играет новую песню.\n" "Это применимо только к текущей песне, если она была добавлена автоматическим плейлистом." -#: musicbot/config.py:469 +#: musicbot/config.py:468 msgid "Remove songs from the auto playlist if they are found in the song block list." msgstr "Удалить песни из автоплейлиста, если они находятся в списке блоков песни." -#: musicbot/config.py:488 +#: musicbot/config.py:487 msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" "Delay period is controlled by DeleteDelayShort and DeleteDelayLong." msgstr "" -#: musicbot/config.py:498 +#: musicbot/config.py:497 msgid "Auto delete valid commands after a delay." msgstr "Автоматическое удаление правильных команд после задержки." -#: musicbot/config.py:507 +#: musicbot/config.py:506 msgid "Sets the short period of seconds before deleting messages.\n" "This period is used by messages that require no further interaction." msgstr "" -#: musicbot/config.py:518 +#: musicbot/config.py:517 msgid "Sets the long delay period before deleting messages.\n" "This period is used by interactive or long-winded messages, like search and help." msgstr "" -#: musicbot/config.py:530 +#: musicbot/config.py:529 msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." msgstr "Разрешить MusicBot сохранять очередь песен, так что песни в очереди будут перезапущены." -#: musicbot/config.py:540 +#: musicbot/config.py:539 msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" "Currently this option does not apply to auto playlist or songs added to an empty queue." msgstr "Включите MusicBot, чтобы загрузить следующую песню в очереди во время воспроизведения.\n" "В настоящее время эта опция не применяется к автоматическому плейлисту или трекам, добавленным в пустую очередь." -#: musicbot/config.py:550 +#: musicbot/config.py:549 msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" "will display dynamic info about music currently being played in its status instead.\n" "Status messages may also use the following variables:\n" @@ -2466,68 +2516,68 @@ msgid "Specify a custom message to use as the bot's status. If left empty, the b " {p0_url} = The track URL for the currently playing track." msgstr "" -#: musicbot/config.py:571 +#: musicbot/config.py:570 msgid "If enabled, status messages will report info on paused players." msgstr "Если включено, сообщения о состоянии будут сообщать о приостановленных игроках." #. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. -#: musicbot/config.py:582 +#: musicbot/config.py:581 msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" msgstr "Если включено, MusicBot сохранит заголовок трека в: data/[Server ID]/current.txt" -#: musicbot/config.py:592 +#: musicbot/config.py:591 msgid "Allow the member who requested the song to skip it, bypassing votes." msgstr "Позволить участнику, который попросил пропустить песню, обходить голоса." -#: musicbot/config.py:602 +#: musicbot/config.py:601 msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" "This option can cause delay between playing songs, as the whole track must be processed." msgstr "Пытается использовать ffmpeg для нормализации громкости для использования в воспроизведении.\n" "Эта опция может привести к задержке между воспроизведением песни, так как трек должен обрабатываться." -#: musicbot/config.py:612 +#: musicbot/config.py:611 msgid "Allow MusicBot to format its messages as embeds." msgstr "Разрешить MusicBot форматировать свои сообщения как вставки." -#: musicbot/config.py:621 +#: musicbot/config.py:620 msgid "The number of entries to show per-page when using q command to list the queue." msgstr "Количество записей для показа на страницу при использовании команды q в списке очереди." -#: musicbot/config.py:631 +#: musicbot/config.py:630 msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." msgstr "Включите MusicBot, чтобы автоматически удалить невоспроизводимые записи из автоплейлиста." -#: musicbot/config.py:640 +#: musicbot/config.py:639 msgid "Display MusicBot config settings in the logs at startup." msgstr "Отображать настройки MusicBot в журналах при запуске." #. TRANSLATORS: InstaSkip should not be translated. -#: musicbot/config.py:650 +#: musicbot/config.py:649 msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." msgstr "Разрешить пользователям с правом InstaSkip пропускать пропуск голосования и пропускать пропуска." -#: musicbot/config.py:660 +#: musicbot/config.py:659 msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." msgstr "Если включено, MusicBot оставит серверы, если владелец не находится в их списке участников." -#: musicbot/config.py:670 +#: musicbot/config.py:669 msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" msgstr "Если включено, MusicBot позволит командам иметь несколько имён используя данные: config/aliases.json" -#: musicbot/config.py:681 +#: musicbot/config.py:680 msgid "Replace MusicBot name/version in embed footer with custom text.\n" "Only applied when UseEmbeds is enabled and it is not blank." msgstr "" -#: musicbot/config.py:691 +#: musicbot/config.py:690 msgid "Completely remove the footer from embeds." msgstr "Полностью удалить нижний колонтитул с вставки." -#: musicbot/config.py:700 +#: musicbot/config.py:699 msgid "MusicBot will automatically deafen itself when entering a voice channel." msgstr "Музыкальный робот автоматически отключается при входе в голосовой канал." -#: musicbot/config.py:711 +#: musicbot/config.py:710 msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" "after waiting for a period set in LeaveInactiveVCTimeOut option.\n" "Listeners are channel members, excluding bots, who are not deafened." @@ -2535,17 +2585,17 @@ msgstr "Если этот параметр включен, MusicBot покине "после ожидания периода, установленного в опции LeaveInactiveVCTimeOut,\n" "Слушатели являются участниками каналов, за исключением ботов, которые не являются глухими." -#: musicbot/config.py:723 +#: musicbot/config.py:722 msgid "Set a period of time to wait before leaving an inactive voice channel.\n" "You can set this to a number of seconds or phrase like: 4 hours" msgstr "Установить период времени ожидания перед выходом из неактивного голосового канала.\n" "Вы можете установить это количество секунд или фразы: 4 часа" -#: musicbot/config.py:734 +#: musicbot/config.py:733 msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." msgstr "Если включено, MusicBot сразу же покинет канал, когда очередь песен пуста." -#: musicbot/config.py:744 +#: musicbot/config.py:743 msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" "You can set this to a number of seconds of phrase like: 15 minutes\n" "Set it to 0 to disable leaving in this way." @@ -2553,24 +2603,24 @@ msgstr "При паузе или больше не играть, подожди "Вы можете установить это количество секунд фразы, например, 15 минут\n" "Установите 0, чтобы отключить оставление таким образом." -#: musicbot/config.py:756 +#: musicbot/config.py:755 msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." msgstr "Если этот параметр включен, пользователи должны указывать выбор результатов поиска, отправляя сообщение вместо реакции." -#: musicbot/config.py:766 +#: musicbot/config.py:765 msgid "Sets the default number of search results to fetch when using the search command without a specific number." msgstr "Устанавливает количество результатов поиска по умолчанию при использовании команды поиска без определенного числа." #. TRANSLATORS: setprefix should not be translated. -#: musicbot/config.py:778 +#: musicbot/config.py:777 msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." msgstr "Разрешить MusicBot сохранять префикс для каждого сервера и включать команду setprefix." -#: musicbot/config.py:789 +#: musicbot/config.py:788 msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." msgstr "Если включено, и несколько членов добавляют песни, MusicBot организует воспроизведение для одной песни на одного участника." -#: musicbot/config.py:800 +#: musicbot/config.py:799 msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" "This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" "MusicBot must be restarted to enable network testing.\n" @@ -2580,7 +2630,7 @@ msgstr "Разрешить MusicBot использовать временные "MusicBot должен быть перезапущен, чтобы включить сетевое тестирование.\n" "По умолчанию это отключено." -#: musicbot/config.py:814 +#: musicbot/config.py:813 #, python-format msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" "This will contain all songs from all servers." @@ -2588,12 +2638,12 @@ msgstr "Включить сохранение всех треков, испол "Это будет содержать все песни со всех серверов." #. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. -#: musicbot/config.py:829 +#: musicbot/config.py:828 #, python-format msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" msgstr "Включить сохранение треков на сервере в файл плейлиста: %(basename)s[ID сервера]%(ext)s" -#: musicbot/config.py:845 +#: musicbot/config.py:844 msgid "Enable playback of local media files using the play command.\n" "When enabled, users can use: `play file://path/to/file.ext`\n" "to play files from the local MediaFileDirectory path." @@ -2601,11 +2651,11 @@ msgstr "Включить воспроизведение локальных ме "При включении пользователи могут использовать: `play file://path/to/file. xt`\n" "для воспроизведения файлов из локального пути MediaFileDirectory." -#: musicbot/config.py:858 +#: musicbot/config.py:857 msgid "Allow MusicBot to automatically unpause when play commands are used." msgstr "Разрешить Музыкаботу автоматически освобождать от паузы при использовании воспроизведения команд." -#: musicbot/config.py:877 +#: musicbot/config.py:876 msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" "The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" "Leave blank to disable." @@ -2613,7 +2663,7 @@ msgstr "Экспериментальные настройки HTTP/HTTPS про "Значение, установленное здесь, передано `ytdlp --proxy` и aiohttp проверка заголовка.\n" "Оставьте пустым для отключения." -#: musicbot/config.py:888 +#: musicbot/config.py:887 msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" "It is not typically recommended by yt-dlp to change the UA string.\n" "For examples of what you might put here, check the following two links:\n" @@ -2627,7 +2677,7 @@ msgstr "Экспериментальная опция для установки " https://www.useragents.me/ \n" "Оставьте пустым для использования по умолчанию, динамически сгенерированных UA строк." -#: musicbot/config.py:903 +#: musicbot/config.py:902 #, python-format msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" "When enabled, you must use the generated URL and code to authorize an account.\n" @@ -2642,38 +2692,38 @@ msgstr "Экспериментальная опция для включения "Использование лицевого аккаунта не может быть рекомендовано.\n" "Установите Да, чтобы включить или запретить отключение." -#: musicbot/config.py:920 +#: musicbot/config.py:919 msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" "This starts the OAuth2 prompt early, rather than waiting for a song request.\n" "The URL set here should be an accessible YouTube video URL.\n" "Authorization must be completed before start-up will continue when this is set." msgstr "" -#: musicbot/config.py:939 +#: musicbot/config.py:938 msgid "Toggle the user block list feature, without emptying the block list." msgstr "Вкл/Выкл функцию блокировки списка, не очищая список блоков." -#: musicbot/config.py:949 +#: musicbot/config.py:948 msgid "An optional file path to a text file listing Discord User IDs, one per line." msgstr "Необязательный путь к файлу с текстовым файлом, в котором перечислены ID пользователя Discord по одному в строке." -#: musicbot/config.py:961 +#: musicbot/config.py:960 msgid "Enable the song block list feature, without emptying the block list." msgstr "Включить функцию списка блоков песни, не очищая список блоков." -#: musicbot/config.py:971 +#: musicbot/config.py:970 msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" "Any song title or URL that contains any line in the list will be blocked." msgstr "Необязательный путь к текстовому файлу, в котором перечислены URL, слова или фразы по одному на строке.\n" "Название или URL песни, содержащие любую строку в списке, будут заблокированы." -#: musicbot/config.py:984 +#: musicbot/config.py:983 msgid "An optional path to a directory containing auto playlist files.\n" "Each file should contain a list of playable URLs or terms, one track per line." msgstr "Необязательный путь к папке, содержащей файлы автоматического воспроизведения.\n" "Каждый файл должен содержать список доступных для воспроизведения URL или терминов, по одному треку в строке." -#: musicbot/config.py:996 +#: musicbot/config.py:995 #, python-format msgid "An optional directory path where playable media files can be stored.\n" "All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" @@ -2684,11 +2734,11 @@ msgstr "Необязательный путь к папке, в которой "Пример: file://some/folder/name/file.ext\n" "Maps to: %(path)s/some/folder/name/file.ext" -#: musicbot/config.py:1015 +#: musicbot/config.py:1014 msgid "An optional directory path where MusicBot will store long and short-term cache for playback." msgstr "Необязательный путь к папке, где MusicBot будет хранить длинный и краткосрочный кэш для воспроизведения." -#: musicbot/config.py:1026 +#: musicbot/config.py:1025 #, python-format msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" "When disabled, only one log is kept and its contents are replaced each run.\n" @@ -2697,7 +2747,7 @@ msgstr "Настройка автоматического вращения ло "Если отключено, каждый запуск заменяется только одним журналом и его содержимое.\n" "Установите значение 0 для отключения. Максимально допустимое значение %(max)s." -#: musicbot/config.py:1039 +#: musicbot/config.py:1038 msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" "If left blank, a warning is logged and the default will be used instead.\n" "Learn more about time format codes from the tables and data here:\n" @@ -2707,13 +2757,13 @@ msgstr "Настройка формата даты в журнале, испол "Подробнее о кодах формата времени из таблиц и данных здесь:\n" " https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" -#: musicbot/config.py:1053 +#: musicbot/config.py:1052 msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" "This option will disable UseExperimentalEqualization option as well." msgstr "Потенциально снижает использование ЦП, но отключает управление громкостью и скоростью.\n" "Эта опция также отключит опцию UseExperimentalEqualization." -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2727,7 +2777,7 @@ msgid "Error while reading config.\n\n" " Use the example options as a template or copy it from the repository." msgstr "" -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2735,7 +2785,7 @@ msgid "Error while validating config options.\n\n" " Make sure the path you configured is a path to a folder / directory." msgstr "" -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2750,7 +2800,7 @@ msgstr "Ошибка при проверке параметров конфигу "Решение:\n" " Двойная проверка правильности, доступный путь к каталогу." -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2759,7 +2809,7 @@ msgid "Error while reading config options.\n\n" " Set the Token config option or set environment variable %(env_var)s with an App token." msgstr "" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2768,7 +2818,7 @@ msgid "Error while fetching 'OwnerID' automatically.\n\n" " Manually set the 'OwnerID' config option or try again later." msgstr "" -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2776,7 +2826,7 @@ msgid "Error validating config options.\n\n" " Do not use the Bot or App ID in the 'OwnerID' field." msgstr "" -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2791,7 +2841,7 @@ msgstr "Ошибка поиска конфигурации.\n\n" "Решение:\n" " Проверьте папку конфигурации и файлы существуют и могут быть прочитаны MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2808,7 +2858,7 @@ msgstr "Ошибка загрузки конфигурации.\n\n" " Убедитесь, что файл доступен и ошибки бесплатны.\n" " Скопируйте файл примера из репозитория, если все остальное не удалось." -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2821,7 +2871,7 @@ msgstr "Ошибка загрузки значения конфигурации. "Решение:\n" " Установите %(option)s на числовой ID или установите его в `auto` или `0` для автоматической привязки владельца." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2834,7 +2884,7 @@ msgstr "Ошибка загрузки значения конфигурации. "Решение:\n" " Проверьте настройки пути и убедитесь, что файл существует и доступен для MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" diff --git a/i18n/sv_SE/LC_MESSAGES/musicbot_logs.mo b/i18n/sv_SE/LC_MESSAGES/musicbot_logs.mo index 851afcaaaa09672276b5032ebfe9b5796f279610..806aaf23d3c8f46e1f052a5b8b0165fda496055e 100644 GIT binary patch delta 13871 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 delta 13551 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 diff --git a/i18n/sv_SE/LC_MESSAGES/musicbot_logs.po b/i18n/sv_SE/LC_MESSAGES/musicbot_logs.po index 55cd18a12..1fe592a09 100644 --- a/i18n/sv_SE/LC_MESSAGES/musicbot_logs.po +++ b/i18n/sv_SE/LC_MESSAGES/musicbot_logs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 18:12\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:39\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -101,85 +101,85 @@ msgstr "URL finns redan i spellistan %s, ignorerar" msgid "Adding new URL to playlist, %(playlist)s: %(track)s" msgstr "Lägger till ny URL till spellistan, %(playlist)s: %(track)s" -#: musicbot/bot.py:163 +#: musicbot/bot.py:165 #, python-format msgid "Initializing MusicBot %s" msgstr "Initierar MusicBot %s" -#: musicbot/bot.py:243 +#: musicbot/bot.py:245 #, python-format msgid "Loop is closed, cannot create task for: %r" msgstr "Loop är stängd, kan inte skapa uppgift för: %r" -#: musicbot/bot.py:259 +#: musicbot/bot.py:261 #, python-format msgid "Unhandled exception for task: %r" msgstr "Ohanterat undantag för uppgift: %r" -#: musicbot/bot.py:263 +#: musicbot/bot.py:265 #, python-format msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" msgstr "Ohanterat undantag för uppgiften: %(task)r -- %(raw_error)s" -#: musicbot/bot.py:308 musicbot/bot.py:330 +#: musicbot/bot.py:310 musicbot/bot.py:332 msgid "Spotify did not provide us with a token. Disabling." msgstr "Spotify gav oss inte ett token. Inaktivering." -#: musicbot/bot.py:312 +#: musicbot/bot.py:314 msgid "Authenticated with Spotify successfully using client ID and secret." msgstr "Autentiseras med Spotify med klient-ID och hemlighet." -#: musicbot/bot.py:316 +#: musicbot/bot.py:318 #, python-format msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." msgstr "Kunde inte starta Spotify-klienten. Är ditt klient-ID och hemligt korrekt? Detaljer: %s. Fortsätter ändå om 5 sekunder..." -#: musicbot/bot.py:324 +#: musicbot/bot.py:326 msgid "The config did not have Spotify app credentials, attempting to use guest mode." msgstr "Konfigurationen hade inte Spotify-app-autentiseringsuppgifter som försökte använda gästläge." -#: musicbot/bot.py:334 +#: musicbot/bot.py:336 msgid "Authenticated with Spotify successfully using guest mode." msgstr "Autentiseras med Spotify framgångsrikt med gästläge." -#: musicbot/bot.py:339 +#: musicbot/bot.py:341 #, python-format msgid "Could not start Spotify client using guest mode. Details: %s." msgstr "Kunde inte starta Spotify-klienten med gästläge. Detaljer: %s." -#: musicbot/bot.py:347 +#: musicbot/bot.py:349 msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" msgstr "Experimentell Yt-dlp OAuth2-plugin är aktiverad. Detta kan brytas när som helst!" -#: musicbot/bot.py:354 +#: musicbot/bot.py:356 msgid "Initialized, now connecting to discord." msgstr "Initierades, ansluter nu till disharmoni." -#: musicbot/bot.py:365 +#: musicbot/bot.py:367 msgid "Network ping test is disabled via config." msgstr "Testet för nätverkspolning är inaktiverat via konfiguration." -#: musicbot/bot.py:369 +#: musicbot/bot.py:371 msgid "Network ping test is closing down." msgstr "Testet för nätverkspolning stängs ner." -#: musicbot/bot.py:380 +#: musicbot/bot.py:382 msgid "Could not resolve ping target." msgstr "Kunde inte lösa ping mål." -#: musicbot/bot.py:410 +#: musicbot/bot.py:412 msgid "Network ping test cancelled." msgstr "Test av nätverkspolning avbruten." -#: musicbot/bot.py:424 +#: musicbot/bot.py:426 msgid "Network testing via HTTP does not have a session to borrow." msgstr "Nätverkstestning via HTTP har ingen session att låna." -#: musicbot/bot.py:449 +#: musicbot/bot.py:451 msgid "Could not locate `ping` executable in your environment." msgstr "Kunde inte hitta `ping` körbar i din omgivning." -#: musicbot/bot.py:475 +#: musicbot/bot.py:477 #, python-format msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -190,7 +190,7 @@ msgstr "MusicBot kunde inte hitta en `ping`-kommandosökväg. Kommer att försö "Du bör aktivera ping i ditt system eller behållarmiljö för bästa resultat.\n" "Alternativt inaktivera nätverkskontroll via config." -#: musicbot/bot.py:485 +#: musicbot/bot.py:487 #, python-format msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -201,7 +201,7 @@ msgstr "MusicBot nekades tillstånd att köra kommandot `ping`. Kommer att förs "Du bör aktivera ping i ditt system eller behållarmiljö för bästa resultat.\n" "Alternativt inaktivera nätverkskontroll via config." -#: musicbot/bot.py:495 +#: musicbot/bot.py:497 #, python-format msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" "MusicBot tried the following command: %s\n" @@ -212,554 +212,559 @@ msgstr "Din miljö kanske inte tillåter systemkommandot `ping`. Kommer att för "Du bör aktivera ping i ditt system eller behållarmiljö för bästa resultat.\n" "Alternativt inaktivera nätverkskontroll via config." -#: musicbot/bot.py:510 +#: musicbot/bot.py:512 msgid "MusicBot detected network is available again." msgstr "MusicBot upptäckt nätverk är tillgängligt igen." -#: musicbot/bot.py:515 +#: musicbot/bot.py:517 msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." msgstr "VoiceClient är inte ansluten, väntar på att återuppta MusicPlayer..." -#: musicbot/bot.py:519 +#: musicbot/bot.py:521 #, python-format msgid "Resuming playback of player: (%(guild_id)s) %(player)r" msgstr "Återuppspelning av spelare: (%(guild_id)s) %(player)r" -#: musicbot/bot.py:530 +#: musicbot/bot.py:532 msgid "MusicBot detected a network outage." msgstr "MusicBot upptäckte ett nätverksavbrott." -#: musicbot/bot.py:534 +#: musicbot/bot.py:536 #, python-format msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" msgstr "Pausar MusicPlayer på grund av nätverkets tillgänglighet: (%(guild_id)s) %(player)r" -#: musicbot/bot.py:555 +#: musicbot/bot.py:557 #, python-format msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" msgstr "Söker ägare i guild: %(guild)s (obligatorisk röst: %(required)s) och får: %(owner)s" -#: musicbot/bot.py:569 +#: musicbot/bot.py:571 msgid "Checking for channels to auto-join or resume..." msgstr "Söker efter kanaler för att automatiskt gå med eller återuppta..." -#: musicbot/bot.py:581 +#: musicbot/bot.py:583 #, python-format msgid "Guild not available, cannot auto join: %(id)s/%(name)s" msgstr "Guild är inte tillgänglig, kan inte anslutas automatiskt till: %(id)s/%(name)s" -#: musicbot/bot.py:589 +#: musicbot/bot.py:591 #, python-format msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" msgstr "Hittade återupptagbar röstkanal: %(channel)s i guild: %(guild)s" -#: musicbot/bot.py:602 +#: musicbot/bot.py:604 #, python-format msgid "Will try resuming voice session instead of Auto-Joining channel: %s" msgstr "Kommer att försöka återuppta röstsessionen istället för att ansluta till kanalen: %s" -#: musicbot/bot.py:619 +#: musicbot/bot.py:621 #, python-format msgid "Found owner in voice channel: %s" msgstr "Hittade ägare i röstkanalen: %s" -#: musicbot/bot.py:624 +#: musicbot/bot.py:626 #, python-format msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" msgstr "Ignorerar återupptagbar kanal, AutoSummon till ägare i kanalen: %s" -#: musicbot/bot.py:629 +#: musicbot/bot.py:631 #, python-format msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" msgstr "Ignorerar Auto-Join kanal, AutoSummon till ägare i kanalen: %s" -#: musicbot/bot.py:641 +#: musicbot/bot.py:643 #, python-format msgid "Already connected to channel: %(channel)s in guild: %(guild)s" msgstr "Redan ansluten till kanalen: %(channel)s i guild: %(guild)s" -#: musicbot/bot.py:650 +#: musicbot/bot.py:652 #, python-format msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" msgstr "Försöker gå med i kanalen: %(channel)s i guild: %(guild)s" -#: musicbot/bot.py:657 +#: musicbot/bot.py:659 msgid "Discarding MusicPlayer and making a new one..." msgstr "Kasta MusicPlayer och göra en ny..." -#: musicbot/bot.py:677 +#: musicbot/bot.py:679 msgid "MusicBot will make a new MusicPlayer now..." msgstr "MusicBot kommer att göra en ny MusicPlayer nu..." -#: musicbot/bot.py:698 +#: musicbot/bot.py:700 #, python-format msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." msgstr "Inte anslöt till %(guild)s/%(channel)s, det stöds inte röstkanalen." -#: musicbot/bot.py:701 +#: musicbot/bot.py:703 msgid "Finished joining configured channels." msgstr "Avslutade anslutningar konfigurerade kanaler." -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "Medlemmen är inte röstaktiverad och kan inte använda detta kommando." -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "Du kan inte använda detta kommando när du inte är i röstkanalen." -#: musicbot/bot.py:735 +#: musicbot/bot.py:737 msgid "Getting bot Application Info." msgstr "Få bot Application Info." -#: musicbot/bot.py:760 +#: musicbot/bot.py:762 #, python-format msgid "MusicBot does not have permission to Connect in channel: %s" msgstr "MusicBot har inte behörighet att ansluta i kanalen: %s" -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "MusicBot har inte behörighet att ansluta i kanalen: `%(name)s`" -#: musicbot/bot.py:769 +#: musicbot/bot.py:771 #, python-format msgid "MusicBot does not have permission to Speak in channel: %s" msgstr "MusicBot har inte behörighet att tala i kanalen: %s" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "MusicBot har inte behörighet att tala i kanalen: `%(name)s`" -#: musicbot/bot.py:783 +#: musicbot/bot.py:785 #, python-format msgid "Reusing bots VoiceClient from guild: %s" msgstr "Återanvänder robotar VoiceClient från guild: %s" -#: musicbot/bot.py:788 +#: musicbot/bot.py:790 #, python-format msgid "Forcing disconnect on stale VoiceClient in guild: %s" msgstr "Tvingar frånkoppling på inaktuell röstklient i guild: %s" -#: musicbot/bot.py:794 +#: musicbot/bot.py:796 msgid "Disconnect failed or was cancelled?" msgstr "Kopplingen misslyckades eller avbröts?" -#: musicbot/bot.py:802 +#: musicbot/bot.py:804 #, python-format msgid "MusicBot is unable to connect to the channel right now: %(channel)s" msgstr "MusicBot kan inte ansluta till kanalen just nu: %(channel)s" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "MusicBot kunde inte ansluta till kanalen.\n" "Försök igen senare, eller starta om boten om detta fortsätter." -#: musicbot/bot.py:817 +#: musicbot/bot.py:819 msgid "MusicBot has a VoiceClient now..." msgstr "MusicBot har en röstklient nu..." -#: musicbot/bot.py:822 +#: musicbot/bot.py:824 #, python-format msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" msgstr "Återsöker anslutningen efter ett timeout-fel (%(attempt)s) vid försök att ansluta till: %(channel)s" -#: musicbot/bot.py:827 +#: musicbot/bot.py:829 msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." msgstr "MusicBot VoiceClient anslutningsförsök avbröts. Inget försök." -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "MusicBot anslutning till röst avbröts. Detta är udda. Kanske omstart?" -#: musicbot/bot.py:840 musicbot/bot.py:8386 +#: musicbot/bot.py:838 musicbot/bot.py:8471 +#, python-format +msgid "MusicBot is requesting to speak in channel: %s" +msgstr "MusicBot begär att få tala i kanalen: %s" + +#: musicbot/bot.py:843 musicbot/bot.py:8477 msgid "MusicBot does not have permission to speak." msgstr "MusicBot har inte behörighet att tala." -#: musicbot/bot.py:844 musicbot/bot.py:8388 +#: musicbot/bot.py:847 musicbot/bot.py:8479 msgid "MusicBot could not request to speak." msgstr "MusicBot kunde inte begära att få tala." -#: musicbot/bot.py:857 +#: musicbot/bot.py:860 #, python-format msgid "Disconnecting a MusicPlayer in guild: %s" msgstr "Kopplar från en musikspelare i guild: %s" -#: musicbot/bot.py:869 +#: musicbot/bot.py:872 msgid "Disconnecting VoiceClient before we kill the MusicPlayer." msgstr "Koppla från VoiceClient innan vi dödar musikspelaren." -#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 -#: musicbot/bot.py:931 +#: musicbot/bot.py:880 musicbot/bot.py:899 musicbot/bot.py:911 +#: musicbot/bot.py:934 msgid "The disconnect failed or was cancelled." msgstr "Kopplingen misslyckades eller avbröts." -#: musicbot/bot.py:887 +#: musicbot/bot.py:890 msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." msgstr "MusicBot har ett röstprotokoll som inte är en röstklient. Kopplar bort ändå..." -#: musicbot/bot.py:900 +#: musicbot/bot.py:903 #, python-format msgid "Disconnecting a rogue VoiceClient in guild: %s" msgstr "Kopplar från en oseriös röstklient i guild: %s" -#: musicbot/bot.py:924 +#: musicbot/bot.py:927 msgid "Disconnecting a non-guild VoiceClient..." msgstr "Kopplar bort en icke-guild röstklient..." -#: musicbot/bot.py:934 +#: musicbot/bot.py:937 #, python-format msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" "The object is actually of type: %s" msgstr "MusicBot.voice_clients lista innehåller ett icke-VoiceClient-objekt?\n" "Objektet är faktiskt av typ: %s" -#: musicbot/bot.py:944 +#: musicbot/bot.py:947 #, python-format msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" msgstr "Vi har fortfarande en MusicPlayer ref i guild (%(guild_id)s): %(player)r" -#: musicbot/bot.py:957 +#: musicbot/bot.py:960 #, python-format msgid "Guild (%(guild)s) wants a player, optional: %(player)r" msgstr "Guild (%(guild)s) vill ha en spelare, frivillig: %(player)r" -#: musicbot/bot.py:964 +#: musicbot/bot.py:967 msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." msgstr "[BUG] MusicPlayer saknar en VoiceClient lite hur. Du bör förmodligen starta om boten." -#: musicbot/bot.py:969 +#: musicbot/bot.py:972 msgid "MusicPlayer has a VoiceClient that is not connected." msgstr "MusicPlayer har en röstklient som inte är ansluten." -#: musicbot/bot.py:970 +#: musicbot/bot.py:973 #, python-format msgid "MusicPlayer obj: %r" msgstr "Musikspelarobjekt: %r" -#: musicbot/bot.py:971 +#: musicbot/bot.py:974 #, python-format msgid "VoiceClient obj: %r" msgstr "VoiceClient obj: %r" -#: musicbot/bot.py:991 +#: musicbot/bot.py:994 #, python-format msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" msgstr "Hämta en musikspelare för guild: %(guild)s I kanalen: %(channel)s Skapa: %(create)s Deserialize: %(serial)s" -#: musicbot/bot.py:1007 +#: musicbot/bot.py:1010 #, python-format msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" msgstr "Skapad spelare via deserialisering för guild %(guild_id)s med %(number)s poster" -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "Botten är inte i en röstkanal.\n" "Använd kommandot för att föra botten till din röstkanal." -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "Något är fel, vi fick inte röstklienten." -#: musicbot/bot.py:1061 +#: musicbot/bot.py:1064 msgid "Running on_player_play" msgstr "Körs på" -#: musicbot/bot.py:1136 +#: musicbot/bot.py:1139 #, python-format msgid "Setting URL history guild %(guild_id)s == %(url)s" msgstr "Ställer in URL-historik guild %(guild_id)s == %(url)s" -#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#: musicbot/bot.py:1175 musicbot/bot.py:4809 #, python-format msgid "No thumbnail set for entry with URL: %s" msgstr "Ingen miniatyrbild har angetts för post med URL: %s" -#: musicbot/bot.py:1184 +#: musicbot/bot.py:1187 msgid "no channel to put now playing message into" msgstr "ingen kanal att lägga nu spela upp meddelandet i" -#: musicbot/bot.py:1196 +#: musicbot/bot.py:1199 msgid "ignored now-playing message as it was already posted." msgstr "ignorerade nu-spela meddelande som det redan var publicerat." -#: musicbot/bot.py:1220 +#: musicbot/bot.py:1223 msgid "Running on_player_resume" msgstr "Kör på_player_fortsätt" -#: musicbot/bot.py:1233 +#: musicbot/bot.py:1236 msgid "Running on_player_pause" msgstr "Körs på" -#: musicbot/bot.py:1249 +#: musicbot/bot.py:1252 msgid "Running on_player_stop" msgstr "Kör på_player_stop" -#: musicbot/bot.py:1259 +#: musicbot/bot.py:1262 msgid "Running on_player_finished_playing" msgstr "Körs på" -#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +#: musicbot/bot.py:1264 musicbot/bot.py:1310 musicbot/bot.py:1381 msgid "Event loop is closed, nothing else to do here." msgstr "Händelseslingan är stängd, inget annat att göra här." -#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +#: musicbot/bot.py:1268 musicbot/bot.py:1314 musicbot/bot.py:1385 msgid "Logout under way, ignoring this event." msgstr "Logga ut på gång, ignorera denna händelse." -#: musicbot/bot.py:1282 +#: musicbot/bot.py:1285 msgid "VoiceClient says it is not connected, nothing else we can do here." msgstr "VoiceClient säger att det inte är anslutet, inget annat vi kan göra här." -#: musicbot/bot.py:1289 +#: musicbot/bot.py:1292 msgid "Player finished and queue is empty, leaving voice channel..." msgstr "Spelaren är klar och kön är tom, lämnar röstkanalen..." -#: musicbot/bot.py:1303 +#: musicbot/bot.py:1306 msgid "Looping over queue to expunge songs with missing author..." msgstr "Loopa över kön för att expunge låtar med saknad författare..." -#: musicbot/bot.py:1342 +#: musicbot/bot.py:1345 #, python-format msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" msgstr "Författaren `%(user)s` frånvarande, överhoppad (borttagen) post från kö: %(song)s" -#: musicbot/bot.py:1361 +#: musicbot/bot.py:1364 msgid "No playable songs in the Guild autoplaylist, disabling." msgstr "Inga spelbara låtar i Guilds autospelslista inaktiveras." -#: musicbot/bot.py:1366 +#: musicbot/bot.py:1369 msgid "No content in current autoplaylist. Filling with new music..." msgstr "Inget innehåll i aktuell autospellista. Fyller med ny musik..." -#: musicbot/bot.py:1374 +#: musicbot/bot.py:1377 msgid "Looping over player autoplaylist..." msgstr "Loopa över spelare autospellista..." -#: musicbot/bot.py:1415 +#: musicbot/bot.py:1418 #, python-format msgid "Error while processing song \"%(url)s\": %(raw_error)s" msgstr "Fel vid bearbetning av låt \"%(url)s\": %(raw_error)s" -#: musicbot/bot.py:1426 +#: musicbot/bot.py:1429 #, python-format msgid "Error extracting song \"%(url)s\": %(raw_error)s" msgstr "Fel vid extrahering av låt \"%(url)s\": %(raw_error)s" -#: musicbot/bot.py:1441 +#: musicbot/bot.py:1444 msgid "MusicBot needs to stop the auto playlist extraction and bail." msgstr "MusicBot måste stoppa auto spellista utvinning och borgen." -#: musicbot/bot.py:1446 +#: musicbot/bot.py:1449 msgid "MusicBot got an unhandled exception in player finished event." msgstr "MusicBot fick ett ohanterat undantag i spelarens färdiga händelse." -#: musicbot/bot.py:1452 +#: musicbot/bot.py:1455 #, python-format msgid "Expanding auto playlist with entries extracted from: %s" msgstr "Expanderar automatisk spellista med poster extraherade från: %s" -#: musicbot/bot.py:1476 +#: musicbot/bot.py:1479 #, python-format msgid "Error adding song from autoplaylist: %s" msgstr "Det gick inte att lägga till låt från autospellista: %s" -#: musicbot/bot.py:1479 +#: musicbot/bot.py:1482 msgid "Exception data for above error:" msgstr "Undantag data för ovanstående fel:" -#: musicbot/bot.py:1485 +#: musicbot/bot.py:1488 msgid "No playable songs in the autoplaylist, disabling." msgstr "Inga spelbara låtar i autospelarlistan inaktiveras." -#: musicbot/bot.py:1505 +#: musicbot/bot.py:1508 msgid "Running on_player_entry_added" msgstr "Kör på_player_entry_added" -#: musicbot/bot.py:1515 +#: musicbot/bot.py:1518 msgid "Automatically skipping auto-playlist entry for queued entry." msgstr "Hoppar över automatisk spellista automatiskt för köad post." -#: musicbot/bot.py:1535 +#: musicbot/bot.py:1538 #, python-format msgid "MusicPlayer exception for entry: %r" msgstr "Musikspelare undantag för post: %r" -#: musicbot/bot.py:1541 +#: musicbot/bot.py:1544 msgid "MusicPlayer exception." msgstr "Musikspelare undantag." -#: musicbot/bot.py:1565 +#: musicbot/bot.py:1568 #, python-format msgid "Auto playlist track could not be played: %r" msgstr "Det gick inte att spela upp låten automatiskt spellista: %r" -#: musicbot/bot.py:1604 +#: musicbot/bot.py:1607 msgid "Logout under way, ignoring status update event." msgstr "Logga ut pågår, ignorerar statusuppdateringshändelsen." -#: musicbot/bot.py:1705 +#: musicbot/bot.py:1708 #, python-format msgid "Update bot status: %(status)s -- %(activity)r" msgstr "Uppdatera botstatus: %(status)s -- %(activity)r" -#: musicbot/bot.py:1733 +#: musicbot/bot.py:1736 #, python-format msgid "Serializing queue for %s" msgstr "Serialiserar kö för %s" -#: musicbot/bot.py:1759 +#: musicbot/bot.py:1762 #, python-format msgid "Deserializing queue for %s" msgstr "Deserialiserar kö för %s" -#: musicbot/bot.py:1777 +#: musicbot/bot.py:1780 #, python-format msgid "Writing current song for %s" msgstr "Skriver aktuell låt för %s" -#: musicbot/bot.py:1802 +#: musicbot/bot.py:1805 #, python-format msgid "Cannot send non-response object: %r" msgstr "Kan inte skicka icke-svarsobjekt: %r" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "[Dev Bug] Försökte skicka ett ogiltigt svarsobjekt." -#: musicbot/bot.py:1835 +#: musicbot/bot.py:1838 #, python-format msgid "sending embed to: %s" msgstr "skickar inbäddad till: %s" -#: musicbot/bot.py:1838 +#: musicbot/bot.py:1841 #, python-format msgid "sending text to: %s" msgstr "skicka text till: %s" -#: musicbot/bot.py:1843 +#: musicbot/bot.py:1846 #, python-format msgid "Cannot send message to \"%s\", no permission" msgstr "Kan inte skicka meddelande till \"%s\", ingen behörighet" -#: musicbot/bot.py:1850 +#: musicbot/bot.py:1853 #, python-format msgid "Cannot send message to \"%s\", invalid or deleted channel" msgstr "Kan inte skicka meddelande till \"%s\", ogiltig eller raderad kanal" -#: musicbot/bot.py:1858 +#: musicbot/bot.py:1861 #, python-format msgid "Message is over the message size limit (%s)" msgstr "Meddelandet är över meddelandets storleksgräns (%s)" -#: musicbot/bot.py:1866 +#: musicbot/bot.py:1869 msgid "Could not send private message, sending in fallback channel instead." msgstr "Kunde inte skicka privat meddelande, skicka i reservkanal istället." -#: musicbot/bot.py:1884 +#: musicbot/bot.py:1887 #, python-format msgid "Rate limited send message, retrying in %s seconds." msgstr "Betygsätt begränsat skicka meddelande, försöker igen om %s sekunder." -#: musicbot/bot.py:1890 +#: musicbot/bot.py:1893 #, python-format msgid "Cancelled message retry for: %s" msgstr "Avbrutet meddelande försök igen för: %s" -#: musicbot/bot.py:1895 +#: musicbot/bot.py:1898 msgid "Rate limited send message, but cannot retry!" msgstr "Betygsätt begränsat skicka meddelande, men kan inte försöka igen!" -#: musicbot/bot.py:1901 +#: musicbot/bot.py:1904 msgid "Failed to send message in fallback channel." msgstr "Det gick inte att skicka meddelande i reservkanal." -#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +#: musicbot/bot.py:1909 musicbot/bot.py:1973 musicbot/bot.py:2043 msgid "Failed to send due to an HTTP error." msgstr "Det gick inte att skicka på grund av ett HTTP-fel." -#: musicbot/bot.py:1932 +#: musicbot/bot.py:1935 #, python-format msgid "Cannot delete message \"%s\", no permission" msgstr "Kan inte ta bort meddelandet \"%s\", ingen behörighet" -#: musicbot/bot.py:1937 +#: musicbot/bot.py:1940 #, python-format msgid "Cannot delete message \"%s\", message not found" msgstr "Kan inte ta bort meddelandet \"%s\", meddelandet hittades inte" -#: musicbot/bot.py:1955 +#: musicbot/bot.py:1958 #, python-format msgid "Rate limited message delete, retrying in %s seconds." msgstr "Betygsätt begränsat meddelande ta bort, försöker igen om %s sekunder." -#: musicbot/bot.py:1960 +#: musicbot/bot.py:1963 msgid "Rate limited message delete, but cannot retry!" msgstr "Betygsätt begränsat meddelande ta bort, men kan inte försöka igen!" -#: musicbot/bot.py:1963 +#: musicbot/bot.py:1966 msgid "Failed to delete message" msgstr "Det gick inte att ta bort meddelandet" -#: musicbot/bot.py:1965 +#: musicbot/bot.py:1968 #, python-format msgid "Got HTTPException trying to delete message: %s" msgstr "Fick HTTPException försöker ta bort meddelandet: %s" -#: musicbot/bot.py:2000 +#: musicbot/bot.py:2003 #, python-format msgid "Cannot edit message \"%s\", message not found" msgstr "Kan inte redigera meddelandet \"%s\", meddelandet hittades inte" -#: musicbot/bot.py:2004 +#: musicbot/bot.py:2007 msgid "Sending message instead" msgstr "Skickar meddelande istället" -#: musicbot/bot.py:2021 +#: musicbot/bot.py:2024 #, python-format msgid "Rate limited edit message, retrying in %s seconds." msgstr "Betygsätt begränsat redigeringsmeddelande, försöker igen om %s sekunder." -#: musicbot/bot.py:2027 +#: musicbot/bot.py:2030 #, python-format msgid "Cancelled message edit for: %s" msgstr "Avbröt meddelanderedigering för: %s" -#: musicbot/bot.py:2033 +#: musicbot/bot.py:2036 msgid "Failed to edit message" msgstr "Det gick inte att redigera meddelandet" -#: musicbot/bot.py:2035 +#: musicbot/bot.py:2038 #, python-format msgid "Got HTTPException trying to edit message %s to: %s" msgstr "Fick HTTPException försöker redigera meddelandet %s till: %s" -#: musicbot/bot.py:2057 +#: musicbot/bot.py:2060 #, python-format msgid "Cancelled delete for message (ID: %(id)s): %(content)s" msgstr "Avbruten borttagning av meddelande (ID: %(id)s): %(content)s" -#: musicbot/bot.py:2119 +#: musicbot/bot.py:2122 #, python-format msgid "Caught a signal from the OS: %s" msgstr "Fångade en signal från OS: %s" -#: musicbot/bot.py:2123 +#: musicbot/bot.py:2126 msgid "Disconnecting and closing down MusicBot..." msgstr "Koppla bort och stänga MusicBot..." -#: musicbot/bot.py:2126 +#: musicbot/bot.py:2129 msgid "Exception thrown while handling interrupt signal!" msgstr "Undantag kastas medan hanteringen avbryter signalen!" -#: musicbot/bot.py:2140 +#: musicbot/bot.py:2143 msgid "MusicBot is now doing shutdown steps..." msgstr "MusicBot gör nu avstängningssteg..." -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -775,103 +780,103 @@ msgstr "Misslyckades med Discord API-inloggning!\n\n" " Se till att du har rätt token inställd i din konfiguration.\n" " Kontrollera API-status på den officiella webbplatsen: discordstatus.com" -#: musicbot/bot.py:2161 +#: musicbot/bot.py:2164 msgid "Waiting for download threads to finish up..." msgstr "Väntar på nedladdningstrådar för att slutföra..." -#: musicbot/bot.py:2187 +#: musicbot/bot.py:2190 #, python-format msgid "Will wait for task: %(name)s (%(func)s)" msgstr "Väntar på uppgift: %(name)s (%(func)s)" -#: musicbot/bot.py:2194 +#: musicbot/bot.py:2197 #, python-format msgid "Will try to cancel task: %(name)s (%(func)s)" msgstr "Kommer att försöka avbryta uppgiften: %(name)s (%(func)s)" -#: musicbot/bot.py:2202 +#: musicbot/bot.py:2205 msgid "Awaiting pending tasks..." msgstr "Väntar på väntande uppgifter..." -#: musicbot/bot.py:2208 +#: musicbot/bot.py:2211 msgid "Closing HTTP Connector." msgstr "Stänger HTTP Connector." -#: musicbot/bot.py:2214 +#: musicbot/bot.py:2217 msgid "Closing aiohttp session." msgstr "Stänger aiohttp session." -#: musicbot/bot.py:2226 +#: musicbot/bot.py:2229 msgid "Logout has been called." msgstr "Utloggning har kallats." -#: musicbot/bot.py:2238 +#: musicbot/bot.py:2241 #, python-format msgid "Exception in %(event)s:\n" "%(error)s" msgstr "Undantag i %(event)s:\n" "%(error)s" -#: musicbot/bot.py:2254 +#: musicbot/bot.py:2257 #, python-format msgid "Exception in %s" msgstr "Undantag i %s" -#: musicbot/bot.py:2261 +#: musicbot/bot.py:2264 msgid "MusicBot resumed a session with discord." msgstr "MusicBot återupptog en session med oenighet." -#: musicbot/bot.py:2278 +#: musicbot/bot.py:2281 msgid "Finish on_ready" msgstr "Slutför" -#: musicbot/bot.py:2285 +#: musicbot/bot.py:2288 msgid "Logged in, now getting MusicBot ready..." msgstr "Inloggad, nu blir MusicBot klar..." -#: musicbot/bot.py:2288 +#: musicbot/bot.py:2291 msgid "ClientUser is somehow none, we gotta bail..." msgstr "KlientAnvändaren är på något sätt ingen, vi måste borgen..." -#: musicbot/bot.py:2297 +#: musicbot/bot.py:2300 #, python-format msgid "MusicBot: %(id)s/%(name)s#%(desc)s" msgstr "MusicBot: %(id)s/%(name)s#%(desc)s" -#: musicbot/bot.py:2308 +#: musicbot/bot.py:2311 #, python-format msgid "Owner: %(id)s/%(name)s#%(desc)s\n" msgstr "Ägare: %(id)s/%(name)s#%(desc)s\n" -#: musicbot/bot.py:2316 musicbot/bot.py:2343 +#: musicbot/bot.py:2319 musicbot/bot.py:2346 msgid "Guild List:" msgstr "Lista över gillen:" -#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#: musicbot/bot.py:2323 musicbot/bot.py:2349 musicbot/bot.py:8663 #, python-format msgid " - %s" msgstr " - %s" -#: musicbot/bot.py:2329 +#: musicbot/bot.py:2332 #, python-format msgid "Left %s due to bot owner not found" msgstr "Vänster %s på grund av bot ägaren hittades inte" -#: musicbot/bot.py:2334 +#: musicbot/bot.py:2337 #, python-format msgid "Not proceeding with checks in %s servers due to unavailability" msgstr "Fortsätter inte med kontroller på %s servrar på grund av otillgänglighet" -#: musicbot/bot.py:2340 +#: musicbot/bot.py:2343 #, python-format msgid "Owner could not be found on any guild (id: %s)\n" msgstr "Ägare kunde inte hittas på någon guild (id: %s)\n" -#: musicbot/bot.py:2349 +#: musicbot/bot.py:2352 msgid "Owner unknown, bot is not on any guilds." msgstr "Ägare okänd, bot är inte på några guilds." -#: musicbot/bot.py:2353 +#: musicbot/bot.py:2356 #, python-format msgid "To make the bot join a guild, paste this link in your browser. \n" "Note: You should be logged into your main account and have \n" @@ -882,53 +887,53 @@ msgstr "För att få bot att gå med i en guild, klistra in denna länk i din we "hantera serverbehörigheter på den guild du vill att boten ska gå med.\n" " %s" -#: musicbot/bot.py:2370 +#: musicbot/bot.py:2373 #, python-format msgid "Got None for bound channel with ID: %d" msgstr "Har ingen för bunden kanal med ID: %d" -#: musicbot/bot.py:2376 +#: musicbot/bot.py:2379 #, python-format msgid "Cannot bind to non Messageable channel with ID: %d" msgstr "Kan inte binda till icke meddelandebar kanal med ID: %d" -#: musicbot/bot.py:2390 +#: musicbot/bot.py:2393 msgid "Bound to text channels:" msgstr "Bundna till textkanaler:" -#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#: musicbot/bot.py:2407 musicbot/bot.py:2457 #, python-format msgid " - %(guild)s/%(channel)s" msgstr " - %(guild)s/%(channel)s" -#: musicbot/bot.py:2408 musicbot/bot.py:2410 +#: musicbot/bot.py:2411 musicbot/bot.py:2413 msgid "Not bound to any text channels" msgstr "Inte bunden till någon textkanal" -#: musicbot/bot.py:2421 +#: musicbot/bot.py:2424 #, python-format msgid "Got None for auto join channel with ID: %d" msgstr "Har ingen för automatisk anslutning kanal med ID: %d" -#: musicbot/bot.py:2427 +#: musicbot/bot.py:2430 #, python-format msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" msgstr "Kan inte automatiskt ansluta till en Privat/Icke-Guild kanal med ID: %d" -#: musicbot/bot.py:2435 +#: musicbot/bot.py:2438 #, python-format msgid "Cannot auto join to non-connectable channel with ID: %d" msgstr "Kan inte automatiskt ansluta till icke-anslutningsbar kanal med ID: %d" -#: musicbot/bot.py:2451 +#: musicbot/bot.py:2454 msgid "Auto joining voice channels:" msgstr "Automatisk anslutning av röstkanaler:" -#: musicbot/bot.py:2459 musicbot/bot.py:2462 +#: musicbot/bot.py:2462 musicbot/bot.py:2465 msgid "Not auto joining any voice channels" msgstr "Inte automatiskt gå med i några röstkanaler" -#: musicbot/bot.py:2475 +#: musicbot/bot.py:2478 #, python-format msgid "Detected missing config options!\n\n" "Problem:\n" @@ -949,340 +954,340 @@ msgstr "Hittade saknade konfigurationsalternativ!\n\n" " Kopiera nya alternativ från exempelalternativsfilen.\n" " Eller använd kommandot config för att ställa in och spara dem.\n\n" -#: musicbot/bot.py:2504 +#: musicbot/bot.py:2507 #, python-format msgid "Event on_ready has fired %s times" msgstr "Händelse på _ready har avfyrat %s gånger" -#: musicbot/bot.py:2520 +#: musicbot/bot.py:2523 msgid "Getting application info." msgstr "Hämtar applikationsinformation." -#: musicbot/bot.py:2538 +#: musicbot/bot.py:2541 msgid "Ensuring data folders exist" msgstr "Det finns säkra datamappar" -#: musicbot/bot.py:2553 +#: musicbot/bot.py:2556 msgid "Validating config" msgstr "Validerar konfiguration" -#: musicbot/bot.py:2556 +#: musicbot/bot.py:2559 msgid "Validating permissions config" msgstr "Validerar behörighetskonfiguration" -#: musicbot/bot.py:2566 +#: musicbot/bot.py:2569 msgid "Disabled" msgstr "Inaktiverad" -#: musicbot/bot.py:2566 +#: musicbot/bot.py:2569 msgid "Enabled" msgstr "Aktiverad" -#: musicbot/bot.py:2569 +#: musicbot/bot.py:2572 msgid "Options:" msgstr "Alternativ:" -#: musicbot/bot.py:2571 +#: musicbot/bot.py:2574 #, python-format msgid " Command prefix: %s" msgstr " Kommando prefix: %s" -#: musicbot/bot.py:2572 +#: musicbot/bot.py:2575 #, python-format msgid " Default volume: %d%%" msgstr " Standardvolym: %d%%" -#: musicbot/bot.py:2574 +#: musicbot/bot.py:2577 #, python-format msgid " Skip threshold: %(num)d votes or %(percent).0f%%" msgstr " Hoppa över tröskel: %(num)d röster eller %(percent).0f%%" -#: musicbot/bot.py:2581 +#: musicbot/bot.py:2584 #, python-format msgid " Now Playing @mentions: %s" msgstr " Nu spelas @mentions: %s" -#: musicbot/bot.py:2584 +#: musicbot/bot.py:2587 #, python-format msgid " Auto-Summon: %s" msgstr " Auto-kallelse: %s" -#: musicbot/bot.py:2586 +#: musicbot/bot.py:2589 #, python-format msgid " Auto-Playlist: %(status)s (order: %(order)s)" msgstr " Auto-spellista: %(status)s (ordning: %(order)s)" -#: musicbot/bot.py:2589 +#: musicbot/bot.py:2592 msgid "random" msgstr "slumpmässigt" -#: musicbot/bot.py:2589 +#: musicbot/bot.py:2592 msgid "sequential" msgstr "sekventiell" -#: musicbot/bot.py:2594 +#: musicbot/bot.py:2597 #, python-format msgid " Auto-Pause: %s" msgstr " Automatisk paus: %s" -#: musicbot/bot.py:2596 +#: musicbot/bot.py:2599 #, python-format msgid " Delete Messages: %s" msgstr " Ta bort meddelanden: %s" -#: musicbot/bot.py:2601 +#: musicbot/bot.py:2604 #, python-format msgid " Delete Invoking: %s" msgstr " Ta bort inbjudan: %s" -#: musicbot/bot.py:2605 +#: musicbot/bot.py:2608 #, python-format msgid " Delete Now Playing: %s" msgstr " Ta bort nu spela: %s" -#: musicbot/bot.py:2608 +#: musicbot/bot.py:2611 #, python-format msgid " Debug Mode: %s" msgstr " Felsökningsläge: %s" -#: musicbot/bot.py:2610 +#: musicbot/bot.py:2613 #, python-format msgid " Downloaded songs will be %s" msgstr " Nedladdade låtar kommer att vara %s" -#: musicbot/bot.py:2614 +#: musicbot/bot.py:2617 #, python-format msgid " Delete if unused for %d days" msgstr " Radera om oanvänd för %d dagar" -#: musicbot/bot.py:2617 +#: musicbot/bot.py:2620 #, python-format msgid " Delete if size exceeds %s" msgstr " Radera om storleken överskrider %s" -#: musicbot/bot.py:2620 +#: musicbot/bot.py:2623 #, python-format msgid " Status message: %s" msgstr " Statusmeddelande: %s" -#: musicbot/bot.py:2622 +#: musicbot/bot.py:2625 #, python-format msgid " Write current songs to file: %s" msgstr " Skriv aktuella låtar till filen: %s" -#: musicbot/bot.py:2626 +#: musicbot/bot.py:2629 #, python-format msgid " Author insta-skip: %s" msgstr " Författare insta-skip: %s" -#: musicbot/bot.py:2629 +#: musicbot/bot.py:2632 #, python-format msgid " Embeds: %s" msgstr " Embeds: %s" -#: musicbot/bot.py:2631 +#: musicbot/bot.py:2634 #, python-format msgid " Spotify integration: %s" msgstr " Spotify-integrering: %s" -#: musicbot/bot.py:2634 +#: musicbot/bot.py:2637 #, python-format msgid " Legacy skip: %s" msgstr " Äldre skip: %s" -#: musicbot/bot.py:2636 +#: musicbot/bot.py:2639 #, python-format msgid " Leave non owners: %s" msgstr " Lämna icke ägare: %s" -#: musicbot/bot.py:2640 +#: musicbot/bot.py:2643 #, python-format msgid " Leave inactive VC: %s" msgstr " Lämna inaktiv VC: %s" -#: musicbot/bot.py:2645 +#: musicbot/bot.py:2648 #, python-format msgid " Timeout: %s seconds" msgstr " Tidsåtgång: %s sekunder" -#: musicbot/bot.py:2649 +#: musicbot/bot.py:2652 #, python-format msgid " Leave at song end/empty queue: %s" msgstr " Lämna vid slut/tom låttext: %s" -#: musicbot/bot.py:2653 +#: musicbot/bot.py:2656 #, python-format msgid " Leave when player idles: %s" msgstr " Lämna när spelaren är tom: %s" -#: musicbot/bot.py:2657 +#: musicbot/bot.py:2660 #, python-format msgid " Timeout: %d seconds" msgstr " Timeout: %d sekunder" -#: musicbot/bot.py:2658 +#: musicbot/bot.py:2661 #, python-format msgid " Self Deafen: %s" msgstr " Självdöv: %s" -#: musicbot/bot.py:2660 +#: musicbot/bot.py:2663 #, python-format msgid " Per-server command prefix: %s" msgstr " Prefix för kommandon per server: %s" -#: musicbot/bot.py:2663 +#: musicbot/bot.py:2666 #, python-format msgid " Search List: %s" msgstr " Söklista: %s" -#: musicbot/bot.py:2665 +#: musicbot/bot.py:2668 #, python-format msgid " Round Robin Queue: %s" msgstr " Runda Robin Kö: %s" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "Den efterfrågade låten `%(subject)s` blockeras av listan över låtblock." -#: musicbot/bot.py:2706 +#: musicbot/bot.py:2709 msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." msgstr "Försök att hantera röstkanalens inaktivitet, men Bot är inte i röst..." -#: musicbot/bot.py:2713 +#: musicbot/bot.py:2716 #, python-format msgid "Channel activity already waiting in guild: %s" msgstr "Kanalaktivitet väntar redan i guild: %s" -#: musicbot/bot.py:2723 +#: musicbot/bot.py:2726 #, python-format msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" msgstr "Kanalaktivitet väntar %(time)d sekunder för att lämna kanalen: %(channel)s" -#: musicbot/bot.py:2738 +#: musicbot/bot.py:2741 #, python-format msgid "Channel activity timer for %s has expired. Disconnecting." msgstr "Kanalaktivitet timer för %s har löpt ut. Kopplar från." -#: musicbot/bot.py:2744 +#: musicbot/bot.py:2747 #, python-format msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" msgstr "Timer för kanalaktivitet avbryts för: %(channel)s i %(guild)s" -#: musicbot/bot.py:2772 +#: musicbot/bot.py:2775 #, python-format msgid "Ignoring player inactivity in auto-joined channel: %s" msgstr "Ignorerar spelarinaktivitet i auto-anslöt kanal: %s" -#: musicbot/bot.py:2779 +#: musicbot/bot.py:2782 #, python-format msgid "Player activity timer already waiting in guild: %s" msgstr "Spelarens aktivitets timer väntar redan i guild: %s" -#: musicbot/bot.py:2787 +#: musicbot/bot.py:2790 #, python-format msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" msgstr "Spelarens aktivitetstimer väntar %(time)d sekunder för att lämna kanalen: %(channel)s" -#: musicbot/bot.py:2799 +#: musicbot/bot.py:2802 #, python-format msgid "Player activity timer for %s has expired. Disconnecting." msgstr "Spelarens aktivitets timer för %s har löpt ut. Kopplar från." -#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#: musicbot/bot.py:2808 musicbot/bot.py:2813 #, python-format msgid "Player activity timer canceled for: %(channel)s in %(guild)s" msgstr "Tidtagaren för spelarens aktivitet avbryts för: %(channel)s i %(guild)s" -#: musicbot/bot.py:2827 +#: musicbot/bot.py:2830 msgid "Player activity timer is being reset." msgstr "Spelarens aktivitet timer återställs." -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "Inget sådant kommando" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "Du måste ange en användare eller ange deras ID-nummer." -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "Ogiltigt underkommando angivet. Använd `help blockuser` för användningsexempel." -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBot kunde inte hitta de användare du angav." -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "Ägaren kan inte läggas till i blocklistan." -#: musicbot/bot.py:3043 +#: musicbot/bot.py:3046 #, python-format msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" msgstr "Lägger inte till användare i blocklistan, redan blockerad: %(id)s/%(name)s" -#: musicbot/bot.py:3052 +#: musicbot/bot.py:3055 #, python-format msgid "Not removing user from block list, not listed: %(id)s/%(name)s" msgstr "Tar inte bort användare från blocklistan, inte listad: %(id)s/%(name)s" -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "Kan inte lägga till de användare du listade, de är redan tillagda." -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "Du måste ange ett låtämne om ingen låt spelas just nu." -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "Ogiltigt underkommando angivet. Använd `help blocksong` för användningsexempel." -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "Ämne `%(subject)s` finns redan i listan över låtblock." -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "Ämnet finns inte i listan över låtblock och kan inte tas bort." -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "Ogiltigt underkommando angivet. Använd `help autoplaylist` för användningsexempel." -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "Länk till medföljande låt är ogiltig" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "Kön är tom. Lägg till några låtar med ett låtkommando!" -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "Den här låten finns redan i autospellistan." -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "Den här låten finns ännu inte med i autospellistan." -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "Du måste ange ett filnamn för spellistan." -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "Du har inte behörighet att begära spellistor" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "Spellistan har för många poster (%(songs)s men max är %(max)s)" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" @@ -1291,612 +1296,625 @@ msgstr "Spellistans poster kommer att överskrida din kögräns.\n" "Det finns %(songs)s i listan, och %(queued)s är redan i kö.\n" "Gränsen är %(max)s för din grupp." -#: musicbot/bot.py:3471 +#: musicbot/bot.py:3474 msgid "Ignoring auto-pause due to network outage." msgstr "Ignorerar automatisk paus på grund av nätverksavbrott." -#: musicbot/bot.py:3476 +#: musicbot/bot.py:3479 msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." msgstr "MusicPlayer har ingen VoiceClient eller har inga kanaldata, kan inte bearbeta automatisk paus." -#: musicbot/bot.py:3487 +#: musicbot/bot.py:3490 msgid "Already processing auto-pause, ignoring this event." msgstr "Behandlar redan automatisk paus, ignorerar denna händelse." -#: musicbot/bot.py:3495 +#: musicbot/bot.py:3498 #, python-format msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" msgstr "%sRöstklient inte ansluten, väntar %s sekunder för att hantera auto-paus i guild: %s" -#: musicbot/bot.py:3503 +#: musicbot/bot.py:3506 msgid "Auto-pause waiting was cancelled." msgstr "Auto-paus väntar avbröts." -#: musicbot/bot.py:3510 +#: musicbot/bot.py:3513 msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." msgstr "En ny MusicPlayer håller på att anslutas och ignorerar gamla auto-paus-händelser." -#: musicbot/bot.py:3526 +#: musicbot/bot.py:3529 #, python-format msgid "Playing in an empty voice channel, running auto pause for guild: %s" msgstr "Spelar i en tom röstkanal, kör automatisk paus för guild: %s" -#: musicbot/bot.py:3533 +#: musicbot/bot.py:3536 #, python-format msgid "Previously auto paused player is unpausing for guild: %s" msgstr "Tidigare automatisk pausad spelare avpausar för guild: %s" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "Kan inte använda söka om det inte finns något att spela." -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "Kan inte använda sökningen på nuvarande spår, den har en okänd varaktighet." -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "Sökandet stöds inte för strömmar." -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "Kan inte använda söka utan tid för att placera uppspelning." -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "Kunde inte konvertera `%(input)s` till en giltig tid i sekunder." -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "Kan inte söka till `%(input)s` (`%(seconds)s` sekunder) i det aktuella spåret med en längd av `%(progress)s / %(total)s`" -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "Ogiltigt underkommando. Använd kommandot `help repeat` för användningsexempel." -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "Spelaren loopar inte för närvarande." -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "Sångpositioner måste vara heltal!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "Du gav en position utanför spellistan storlek!" -#: musicbot/bot.py:4025 +#: musicbot/bot.py:4028 msgid "Could not prompt for playlist playback, no message to add reactions to." msgstr "Kunde inte fråga efter uppspelning av spellistan, inget meddelande att lägga till reaktioner på." -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "Lokal medieuppspelning är inte aktiverad." -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "Spotify-URL är ogiltig eller stöds inte för närvarande." -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "Upptäckte en Spotify-URL, men Spotify är inte aktiverat." -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "Du har nått din köade låtgräns (%(max)s)" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "Karaoke-läget är aktiverat, försök igen när det är inaktiverat!" -#: musicbot/bot.py:4187 +#: musicbot/bot.py:4190 msgid "Issue with extract_info(): " msgstr "Problem med extract_info(): " -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "Misslyckades att extrahera info på grund av fel:\n" "%(raw_error)s" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "Den videon kan inte spelas. Prova att använda strömkommandot." -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "YouTube-sökning gav inga resultat för: %(url)s" -#: musicbot/bot.py:4238 +#: musicbot/bot.py:4241 #, python-format msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" msgstr "Bearbetade %(number)d av %(total)d låtar i %(time).3f sekunder på %(time_per).2f s/sång" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "Inga låtar lades till, alla låtar var över max varaktighet (%(max)s sekunder)" -#: musicbot/bot.py:4265 +#: musicbot/bot.py:4268 msgid "Extracted an entry with 'youtube:playlist' as extractor key" msgstr "Extraherade en post med \"youtube list\" som utsugningsnyckel" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "Sånglängden överskrider gränsen (%(length)s > %(max)s)" -#: musicbot/bot.py:4295 +#: musicbot/bot.py:4298 #, python-format msgid "Added song(s) at position %s" msgstr "Lade till låt(ar) på position %s" -#: musicbot/bot.py:4332 +#: musicbot/bot.py:4335 #, python-format msgid "Cannot estimate time until playing for position: %d" msgstr "Kan inte uppskatta tid innan du spelar för position: %d" -#: musicbot/bot.py:4393 +#: musicbot/bot.py:4396 #, python-format msgid "Failed to get info from the stream request: %s" msgstr "Misslyckades att hämta information från strömningsförfrågan: %s" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Streaming av spellistor stöds ännu inte." -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Du har nått din gräns för spellistans objekt (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Ange en sökfråga. Använd `help search` för mer information." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "Du kan inte söka efter mer än %(max)s videor" -#: musicbot/bot.py:4834 +#: musicbot/bot.py:4837 #, python-format msgid "Waiting for summon lock: %s" msgstr "Väntar på stämningslås: %s" -#: musicbot/bot.py:4837 +#: musicbot/bot.py:4840 #, python-format msgid "Summon lock acquired for: %s" msgstr "Kallelselås som förvärvats för: %s" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "Du är inte ansluten till röst. Försök att ansluta till en röstkanal!" -#: musicbot/bot.py:4866 +#: musicbot/bot.py:4869 #, python-format msgid "Joining %(guild)s/%(channel)s" msgstr "Ansluter till %(guild)s/%(channel)s" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot kan inte följa en användare som inte är medlem i servern." -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Spelaren spelar inte." -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Ingenting i kön att ta bort!" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "Ingenting hittades i kön från användaren `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "Du har inte behörighet att ta bort den posten från kön.\n" "Du måste vara den som köade det eller har omedelbar hoppa över behörigheter." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Ogiltigt postnummer. Använd kökommandot för att hitta köpositioner." -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Kan inte hoppa över! Spelaren spelar inte!" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "Du har inte behörighet att tvinga hoppa över en loopad låt." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "Du har inte behörighet att tvinga hopp." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "Du har inte behörighet att hoppa över en loopad låt." -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` är inte ett giltigt tal" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Orimlig volymförändring angiven: %(old_volume)s%(adjustment)s är %(new_volume)s.\n" "Volymen kan endast ändras från 1 till 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Orimlig volym angiven: %(volume)s. Ange ett värde mellan 1 och 100." -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "Inget spår spelas, kan inte ställa in hastighet.\n" "Använd konfigurationskommandot för att ställa in en standard uppspelningshastighet." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "Hastighet kan inte tillämpas på strömmade medier." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Du måste ange en hastighet att ställa in." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "Hastigheten du angav är ogiltig. Använd ett nummer mellan 0,5 och 100." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Ogiltigt alternativ för kommandot: `%(option)s`" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Det gick inte att spara alias på grund av fel:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Du måste tillhandahålla ett alias och ett kommando till alias" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Du måste ange ett alias namn för att ta bort." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "Alias `%(alias)s` finns inte." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "Konfigurationen kan inte använda kanal och användarnamn samtidigt." -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Det går inte att ladda om konfigurationen på grund av följande fel:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Kunde inte lösa undervisningsnamn från alternativets namn. Ange ett giltigt undervisnings- och alternativnamn." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "Det alternativ som anges är tvetydigt, ange ett avsnittsnamn." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Du måste ange ett namn och alternativnamn för detta kommando." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "Sektionen `%(section)s` är inte tillgänglig.\n" "De tillgängliga sektionerna är: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "Alternativet `%(option)s` är inte tillgängligt." -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte spara till disk." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Kunde inte spara alternativet: `%(option)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "Alternativ `%(option)s` är inte redigerbar, värde kan inte visas." -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte uppdatera inställningen." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Du måste ange ett avsnitt, alternativ och värde för detta underkommando." -#: musicbot/bot.py:5810 +#: musicbot/bot.py:5813 #, python-format msgid "Doing set with on %(config)s == %(value)s" msgstr "Gör set med på %(config)s == %(value)s" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "Alternativet `%(option)s` uppdaterades inte!" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte återställa till standard." -#: musicbot/bot.py:5845 +#: musicbot/bot.py:5848 #, python-format msgid "Resetting %(config)s to default %(value)s" msgstr "Återställer %(config)s till standard %(value)s" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "Alternativet `%(option)s` återställdes inte till standard!" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "Alternativkommandot är föråldrat, använd kommandot config istället." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Ogiltigt alternativ angivet, användning: info, uppdatering eller rensa" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Misslyckades** att ta bort cache, kolla loggar för mer information..." -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "Kö sida argument måste vara ett heltal." -#: musicbot/bot.py:6004 +#: musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "Det finns inga låtar köade! Köa något med ett spelkommando." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "Begärt sidnummer är utanför gränserna.\n" "Det finns **%(total)s** sidor." -#: musicbot/bot.py:6056 +#: musicbot/bot.py:6057 msgid "Skipped the current playlist entry." msgstr "Hoppade över den aktuella spellistposten." -#: musicbot/bot.py:6099 +#: musicbot/bot.py:6100 msgid "Not enough entries to paginate the queue." msgstr "Inte tillräckligt med poster för att paginera kön." -#: musicbot/bot.py:6103 +#: musicbot/bot.py:6104 msgid "Could not post queue message, no message to add reactions to." msgstr "Kunde inte posta kömeddelande, inget meddelande att lägga till reaktioner på." -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Försök igen. MusicBot kunde inte göra eller få en referens till kömeddelandet.\n" "Om problemet kvarstår, skicka in en felrapport." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Kan inte använda rensning på privat DM-kanal." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "Den angivna URL:en var inte en giltig URL." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Kunde inte extrahera information från indata-url\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "Detta verkar inte vara en spellista." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "Ogiltigt användar-ID eller server-smeknamn, vänligen dubbelkolla ID och försök igen." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Kunde inte bestämma discord-användaren. Försök igen." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Behörigheter kan inte använda kanal och användarnamn samtidigt." -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Det går inte att ladda om behörigheter på grund av ett fel:\n" "%(raw_error)s" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Du måste ange ett grupp- eller alternativnamn för detta kommando." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Du måste ange en grupp, alternativ och värde för detta kommando." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "%(option)s underkommandot kräver ett grupp- och behörighetsnamn." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "Gruppen `%(group)s` är inte tillgänglig.\n" "De tillgängliga grupperna är: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "Behörigheten `%(option)s` är inte tillgänglig." -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Kan inte lägga till grupp `%(group)s` det finns redan." -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Kan inte ta bort inbyggd grupp." -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "Ägargruppen är inte redigerbar." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Det gick inte att spara gruppen: `%(group)s`" -#: musicbot/bot.py:6736 +#: musicbot/bot.py:6737 #, python-format msgid "Doing set on %(option)s with value: %(value)s" msgstr "Gör set på %(option)s med värde: %(value)s" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Behörighet `%(option)s` uppdaterades inte!" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Det gick inte att ändra användarnamn. Ändrade du namn för många gånger?\n" "Kom ihåg att namnändringar är begränsade till två gånger per timme.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Misslyckades att ändra användarnamn på grund av fel: \n" "%(raw_error)s" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Det går inte att ändra smeknamn: ingen behörighet." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Misslyckades att ange smeknamn på grund av fel: \n" "%(raw_error)s" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Anpassad emoji måste vara från den här servern för att använda som prefix." -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Prefix per server är inte aktiverad!\n" "Använd konfigurationskommandot för att uppdatera prefixet istället." -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Detta kommando kan endast användas i guilds." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Ogiltigt underkommando ges. Använd hjälpkommandot för mer information." + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Kan inte ställa in språk till `%(locale)s` det är inte tillgängligt." + +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "Du måste ange en URL eller bifoga en fil." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Det gick inte att ändra avatar på grund av fel: \n" "%(raw_error)s" -#: musicbot/bot.py:6940 +#: musicbot/bot.py:7014 #, python-format msgid "MusicBot found a %s with no guild! This could be a problem." msgstr "MusicBot hittade en %s utan guild! Detta kan vara ett problem." -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Inte ansluten till servern `%(guild)s`" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Ogiltigt angivet alternativ, använd en av: mjuk, full, uppgradering, uppip eller upgit" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Du måste ange ett ID eller namn." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "Ingen guild hittades med ID eller namn `%(input)s`" -#: musicbot/bot.py:7172 +#: musicbot/bot.py:7246 #, python-format msgid "Activating debug breakpoint ID: %(uuid)s" msgstr "Aktivera debug brytpunkt ID: %(uuid)s" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Kunde inte importera `objgraph`, är det installerat?" -#: musicbot/bot.py:7287 +#: musicbot/bot.py:7361 msgid "Debug code ran with eval()." msgstr "Felsökningskoden gick med eval()." -#: musicbot/bot.py:7297 +#: musicbot/bot.py:7371 msgid "Debug code ran with exec()." msgstr "Felsökningskoden kördes med körning()." -#: musicbot/bot.py:7300 +#: musicbot/bot.py:7374 msgid "Debug code failed to execute." msgstr "Felsökningskoden misslyckades att köra." -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1909,275 +1927,275 @@ msgstr "Misslyckades att köra felsökningskod:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "Underkommando måste vara ett av: %(options)s" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Kunde inte lokalisera git körbar." -#: musicbot/bot.py:7483 +#: musicbot/bot.py:7559 msgid "Failed while checking for updates via git command." msgstr "Det gick inte att söka efter uppdateringar via git-kommandot." -#: musicbot/bot.py:7512 +#: musicbot/bot.py:7588 msgid "Package missing meta in pip report." msgstr "Paket saknar meta i pip rapport." -#: musicbot/bot.py:7526 +#: musicbot/bot.py:7602 msgid "Failed to get pip update status due to some error." msgstr "Det gick inte att hämta pip-uppdateringsstatus på grund av något fel." -#: musicbot/bot.py:7586 +#: musicbot/bot.py:7662 msgid "Got a strange voice client entry." msgstr "Har en konstig röstklient post." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookies har redan aktiverats." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Cookies måste laddas upp för att kunna aktiveras. (Missing cookies file.)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Kunde inte aktivera cookies på grund av fel: %(raw_error)s" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Kunde inte byta namn på cookiefilen på grund av fel: %(raw_error)s\n" "Cookies tillfälligt inaktiverade och kommer att aktiveras igen vid nästa omstart." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "Inga bifogade uppladdningar hittades, försök igen när du laddade upp en cookie-fil." -#: musicbot/bot.py:7740 +#: musicbot/bot.py:7816 #, python-format msgid "Could not remove old, disabled cookies file: %(raw_error)s" msgstr "Kunde inte ta bort gamla, inaktiverade cookiefil: %(raw_error)s" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Fel vid nedladdning av cookie-filen från diskett: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Kunde inte spara kakor till disk: %(raw_error)s" -#: musicbot/bot.py:7772 +#: musicbot/bot.py:7848 #, python-format msgid "Got a message with no channel, somehow: %s" msgstr "Har ett meddelande utan kanal, på något sätt: %s" -#: musicbot/bot.py:7800 +#: musicbot/bot.py:7876 #, python-format msgid "Ignoring command from myself (%s)" msgstr "Ignorerar kommando från mig själv (%s)" -#: musicbot/bot.py:7808 +#: musicbot/bot.py:7884 #, python-format msgid "Ignoring command from other bot (%s)" msgstr "Ignorerar kommando från annan bot (%s)" -#: musicbot/bot.py:7816 +#: musicbot/bot.py:7892 #, python-format msgid "Ignoring command from channel of type: %s" msgstr "Ignorerar kommando från kanal av typ: %s" -#: musicbot/bot.py:7900 +#: musicbot/bot.py:7976 #, python-format msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" msgstr "Användare i blocklistan: %(id)s/%(name)s försökte kommando: %(command)s" -#: musicbot/bot.py:7907 +#: musicbot/bot.py:7983 #, python-format msgid "Message from %(id)s/%(name)s: %(message)s" msgstr "Meddelande från %(id)s/%(name)s: %(message)s" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Detta kommando är inte tillåtet för din behörighetsgrupp: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Detta kommando kräver att du är i en röstkanal." -#: musicbot/bot.py:8060 +#: musicbot/bot.py:8136 #, python-format msgid "Invalid command usage, missing values for params: %(params)r" msgstr "Ogiltig kommandoanvändning, saknade värden för parametrar: %(params)r" -#: musicbot/bot.py:8102 +#: musicbot/bot.py:8178 #, python-format msgid "Error in %(command)s: %(err_name)s: %(err_text)s" msgstr "Fel i %(command)s: %(err_name)s: %(err_text)s" -#: musicbot/bot.py:8126 +#: musicbot/bot.py:8202 #, python-format msgid "Exception while handling command: %(command)s" msgstr "Undantag vid hantering av kommando: %(command)s" -#: musicbot/bot.py:8158 +#: musicbot/bot.py:8234 #, python-format msgid "Cannot generate help for missing command: %s" msgstr "Kan inte generera hjälp för saknat kommando: %s" -#: musicbot/bot.py:8162 +#: musicbot/bot.py:8238 #, python-format msgid "Missing help data for command: %s" msgstr "Saknar hjälpdata för kommandot: %s" -#: musicbot/bot.py:8279 +#: musicbot/bot.py:8355 #, python-format msgid "Leaving voice channel %s in %s due to inactivity." msgstr "Lämnar röstkanal %s i %s på grund av inaktivitet." -#: musicbot/bot.py:8288 +#: musicbot/bot.py:8364 msgid "MusicBot has become connected." msgstr "MusicBot har blivit ansluten." -#: musicbot/bot.py:8292 +#: musicbot/bot.py:8368 msgid "MusicBot has become disconnected." msgstr "MusicBot har blivit frånkopplad." -#: musicbot/bot.py:8297 +#: musicbot/bot.py:8373 #, python-format msgid "Got a Socket Event: %s" msgstr "Har ett uttag: %s" -#: musicbot/bot.py:8313 +#: musicbot/bot.py:8389 msgid "VoiceState updated before on_ready finished" msgstr "Rösttillstånd uppdaterat innan on_ready finished" -#: musicbot/bot.py:8326 +#: musicbot/bot.py:8402 #, python-format msgid "Ignoring %s in %s as it is a bound voice channel." msgstr "Ignorerar %s i %s eftersom det är en bunden röstkanal." -#: musicbot/bot.py:8335 +#: musicbot/bot.py:8411 #, python-format msgid "%s has been detected as empty. Handling timeouts." msgstr "%s har upptäckts som tom. Hantering av timeouts." -#: musicbot/bot.py:8346 +#: musicbot/bot.py:8422 #, python-format msgid "A user joined %s, cancelling timer." msgstr "En användare anslöt till %s, avbryter timer." -#: musicbot/bot.py:8359 +#: musicbot/bot.py:8435 #, python-format msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." msgstr "Botten blev flyttad och röstkanalen %s är tom. Hantering av timeouts." -#: musicbot/bot.py:8368 +#: musicbot/bot.py:8444 #, python-format msgid "The bot got moved and the voice channel %s is not empty." msgstr "Botten blev flyttad och röstkanalen %s är inte tom." -#: musicbot/bot.py:8402 +#: musicbot/bot.py:8493 #, python-format msgid "No longer following user %s" msgstr "Följer inte längre %s" -#: musicbot/bot.py:8424 +#: musicbot/bot.py:8515 #, python-format msgid "Following user `%(user)s` to channel: %(channel)s" msgstr "Följande användare `%(user)s` till kanal: %(channel)s" -#: musicbot/bot.py:8444 +#: musicbot/bot.py:8535 msgid "VoiceState disconnect before.channel is None." msgstr "Röststaten kopplar ifrån innan kanalen är ingen." -#: musicbot/bot.py:8471 +#: musicbot/bot.py:8562 #, python-format msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" msgstr "Frånkopplad från röst med Discord API i: %(guild)s/%(channel)s (kod: %(code)s) [S:%(state)s]" -#: musicbot/bot.py:8493 +#: musicbot/bot.py:8584 #, python-format msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" msgstr "Kan inte använda auto-join-kanal med typ: %(type)s i guild: %(guild)s" -#: musicbot/bot.py:8500 +#: musicbot/bot.py:8591 #, python-format msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" msgstr "Kan inte hitta den automatiskt anslöta kanalen, togs den bort? Guild: %s" -#: musicbot/bot.py:8506 +#: musicbot/bot.py:8597 #, python-format msgid "Reconnecting to auto-joined guild on channel: %s" msgstr "Återansluter till auto-anslöt guild i kanalen: %s" -#: musicbot/bot.py:8519 +#: musicbot/bot.py:8610 #, python-format msgid "Cannot auto join channel: %s" msgstr "Kan inte ansluta till kanalen: %s" -#: musicbot/bot.py:8535 +#: musicbot/bot.py:8626 #, python-format msgid "Bot has been added to guild: %s" msgstr "Bot har lagts till i guild: %s" -#: musicbot/bot.py:8547 +#: musicbot/bot.py:8638 #, python-format msgid "Left guild '%s' due to bot owner not found." msgstr "Vänster guild '%s' på grund av bot ägaren hittades inte." -#: musicbot/bot.py:8561 +#: musicbot/bot.py:8652 #, python-format msgid "Creating data folder for guild %s" msgstr "Skapar datamapp för guild %s" -#: musicbot/bot.py:8569 +#: musicbot/bot.py:8660 #, python-format msgid "Bot has been removed from guild: %s" msgstr "Bot har tagits bort från guild: %s" -#: musicbot/bot.py:8570 +#: musicbot/bot.py:8661 msgid "Updated guild list:" msgstr "Uppdaterad guild-lista:" -#: musicbot/bot.py:8585 +#: musicbot/bot.py:8676 #, python-format msgid "Guild \"%s\" has become available." msgstr "Guild \"%s\" har blivit tillgänglig." -#: musicbot/bot.py:8591 +#: musicbot/bot.py:8682 #, python-format msgid "Resuming player in \"%s\" due to availability." msgstr "Återupptar spelare i \"%s\" på grund av tillgänglighet." -#: musicbot/bot.py:8608 +#: musicbot/bot.py:8699 #, python-format msgid "Guild \"%s\" has become unavailable." msgstr "Guild \"%s\" har inte blivit tillgänglig." -#: musicbot/bot.py:8614 +#: musicbot/bot.py:8705 #, python-format msgid "Pausing player in \"%s\" due to unavailability." msgstr "Pausa spelare i \"%s\" på grund av otillgänglighet." -#: musicbot/bot.py:8630 +#: musicbot/bot.py:8721 #, python-format msgid "Guild update for: %s" msgstr "Guild uppdatering för: %s" -#: musicbot/bot.py:8636 +#: musicbot/bot.py:8727 #, python-format msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" msgstr "Guild-attribut %(attr)s är nu: %(new)s -- Var: %(old)s" -#: musicbot/bot.py:8668 +#: musicbot/bot.py:8759 #, python-format msgid "Channel update for: %(channel)s -- %(changes)s" msgstr "Kanaluppdatering för: %(channel)s -- %(changes)s" @@ -2192,7 +2210,7 @@ msgstr "Skapar %s" msgid "Loading config from: %s" msgstr "Laddar konfiguration från: %s" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2215,16 +2233,16 @@ msgstr "Fel vid läsning av konfigurationen.\n\n" " Varje avsnitt måste ha minst ett alternativ.\n" " Använd exempelalternativen som mall eller kopiera den från förrådet." -#: musicbot/config.py:1113 +#: musicbot/config.py:1112 #, python-format msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." msgstr "Kan inte lagra mer än %s loggfiler. AlternativloggarMaxKept kommer att begränsas istället." -#: musicbot/config.py:1121 +#: musicbot/config.py:1120 msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." msgstr "Konfigurationsalternativet LogsDateFormat är tomt och detta kommer att bryta rotation av loggfilen. Använder standard istället." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2236,11 +2254,11 @@ msgstr "Fel vid validering av konfigurationsalternativ.\n\n" "Lösning:\n" " Kontrollera att sökvägen du har konfigurerat är en sökväg till en mapp / katalog." -#: musicbot/config.py:1149 +#: musicbot/config.py:1148 msgid "An exception was thrown while validating AudioCachePath." msgstr "Ett undantag kastades vid validering av AudioCachePath." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2255,12 +2273,12 @@ msgstr "Fel vid validering av konfigurationsalternativ.\n\n" "Solution:\n" " Dubbelkolla inställningen är giltig, sökväg för tillgänglig katalog." -#: musicbot/config.py:1165 +#: musicbot/config.py:1164 #, python-format msgid "Audio Cache will be stored in: %s" msgstr "Ljudcache kommer att lagras i: %s" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2273,16 +2291,16 @@ msgstr "Fel vid läsning av konfigurationsalternativ.\n\n" "Lösning:\n" " Ställ in konfigurationsalternativet eller ange miljövariabeln %(env_var)s med en app-token." -#: musicbot/config.py:1197 +#: musicbot/config.py:1196 msgid "StatusMessage config option is too long, it will be limited to 128 characters." msgstr "StatusMessage config alternativet är för långt, det kommer att begränsas till 128 tecken." -#: musicbot/config.py:1206 +#: musicbot/config.py:1205 #, python-format msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." msgstr "Standardhastigheten för uppspelning måste vara mellan 0.5 och 100.0. Alternativvärdet för %.3f kommer att vara begränsat istället." -#: musicbot/config.py:1216 +#: musicbot/config.py:1215 msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "Cookies are not recommended, may not be supported, and may totally break.\n" "Copying cookies from your web-browser risks exposing personal data and \n" @@ -2294,15 +2312,15 @@ msgstr "Cookies TXT-fil upptäckt. MusicBot kommer att skicka dem till yt-dlp.\n "kan i bästa fall leda till att dina konton förbjuds!\n\n" "Du har blivit varnad! Lycka till! \\U0001F596\n" -#: musicbot/config.py:1234 +#: musicbot/config.py:1233 msgid "Validating options with service data..." msgstr "Validerar alternativ med tjänstdata..." -#: musicbot/config.py:1240 +#: musicbot/config.py:1239 msgid "Acquired owner ID via API" msgstr "Förvärvad ägar-ID via API" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2316,11 +2334,11 @@ msgstr "Fel vid hämtning av 'OwnerID' automatiskt.\n\n" "Lösning:\n" " Ställ Manuellt in 'OwnerID' konfigurationsalternativet eller försök igen senare." -#: musicbot/config.py:1256 +#: musicbot/config.py:1255 msgid "MusicBot does not have a user instance, cannot proceed." msgstr "MusicBot har ingen användarinstans, kan inte fortsätta." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2332,30 +2350,30 @@ msgstr "Fel vid validering av konfigurationsalternativ.\n\n" "Lösning:\n" " Använd inte Bot eller App ID i fältet 'OwnerID'." -#: musicbot/config.py:1286 +#: musicbot/config.py:1285 msgid "Config options file not found. Checking for alternatives..." msgstr "Kan inte hitta konfigurationsalternativ. Kontrollerar alternativ ..." -#: musicbot/config.py:1298 +#: musicbot/config.py:1297 #, python-format msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." msgstr "Byter namn på %(ini_file)s till %(option_file)s, du bör förmodligen aktivera filtillägg." -#: musicbot/config.py:1306 +#: musicbot/config.py:1305 #, python-format msgid "Copying existing example options file: %(example_file)s" msgstr "Kopierar existerande exempelfil: %(example_file)s" -#: musicbot/config.py:1315 +#: musicbot/config.py:1314 #, python-format msgid "Generated a new %(example_file)s and copied it to %(option_file)s" msgstr "Genererade en ny %(example_file)s och kopierade den till %(option_file)s" -#: musicbot/config.py:1323 +#: musicbot/config.py:1322 msgid "Something went wrong while trying to find a config option file." msgstr "Något gick fel när du försökte hitta en konfigurationsalternativsfil." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2370,7 +2388,7 @@ msgstr "Fel vid lokalisering av konfiguration.\n\n" "Lösning:\n" " Verifiera konfigurationsmappen och filerna finns och kan läsas av MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2387,43 +2405,43 @@ msgstr "Fel vid laddning av konfiguration.\n\n" " Se till att filen är tillgänglig och felfri.\n" " Kopiera exempelfilen från repo om allt annat misslyckas." -#: musicbot/config.py:1369 +#: musicbot/config.py:1368 msgid "Dev Bug! Config option has getter that is not available." msgstr "Dev Bug! Konfigurationsalternativet har getter som inte är tillgängligt." -#: musicbot/config.py:1374 +#: musicbot/config.py:1373 msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." msgstr "Dev Bug! Konfigurationsalternativet har ogiltig typ, getter och standard måste vara samma typ." -#: musicbot/config.py:1394 +#: musicbot/config.py:1393 msgid "Option was missing previously." msgstr "Alternativet saknades tidigare." -#: musicbot/config.py:1409 +#: musicbot/config.py:1408 #, python-format msgid "Config section not in parsed config! Missing: %s" msgstr "Konfigurationssektion inte i tolkad konfiguration! saknas: %s" -#: musicbot/config.py:1414 +#: musicbot/config.py:1413 #, python-format msgid "Saved config option: %(config)s = %(value)s" msgstr "Sparad konfigurationsalternativ: %(config)s = %(value)s" -#: musicbot/config.py:1427 +#: musicbot/config.py:1426 #, python-format msgid "Failed to save config: %s" msgstr "Det gick inte att spara konfigurationen: %s" -#: musicbot/config.py:1932 +#: musicbot/config.py:1931 msgid "Option names are not unique between INI sections! Resolver is disabled." msgstr "Alternativnamn är inte unika mellan INI-sektioner! Lösaren är inaktiverad." -#: musicbot/config.py:2094 musicbot/permissions.py:859 +#: musicbot/config.py:2099 musicbot/permissions.py:859 #, python-format msgid "Failed to save default INI file at: %s" msgstr "Misslyckades att spara standard-INI-filen på: %s" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2436,7 +2454,7 @@ msgstr "Fel vid laddning av konfigurationsvärde.\n\n" "Solution:\n" " sätt %(option)s till ett numeriskt ID eller sätt det till `auto` eller `0` för automatisk ägarbindning." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2449,7 +2467,7 @@ msgstr "Fel vid laddning av konfigurationsvärde.\n\n" "Lösning:\n" " Kontrollera sökvägsinställningen och se till att filen finns och är tillgänglig för MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2462,60 +2480,60 @@ msgstr "Fel vid laddning av konfigurationsvärde.\n\n" "Lösning:\n" " Se till att alla ID är numeriska, och separeras endast med mellanslag eller kommatecken." -#: musicbot/config.py:2283 +#: musicbot/config.py:2288 #, python-format msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" msgstr "Ogiltigt DebugLevel alternativ \"%(value)s\" angiven, faller tillbaka till nivå: %(fallback)s" -#: musicbot/config.py:2304 +#: musicbot/config.py:2309 #, python-format msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." msgstr "Alternativ [%(section)s] > %(option)s har ogiltigt konfigurationsvärde '%(value)s' som använder standard istället." -#: musicbot/config.py:2353 +#: musicbot/config.py:2358 #, python-format msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." msgstr "Alternativ [%(section)s] > %(option)s har ett värde som är större än 100 %% (%(value)s) och kommer istället att sättas till %(fallback)s." -#: musicbot/config.py:2437 +#: musicbot/config.py:2442 #, python-format msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" msgstr "Döper om INI-filpost [%(old_s)s] > %(old_o)s till [%(new_s)s] > %(new_o)s" -#: musicbot/config.py:2493 +#: musicbot/config.py:2498 msgid "Upgrading config file with renamed options..." msgstr "Uppgraderar konfigurationsfilen med bytt namn på alternativ..." -#: musicbot/config.py:2510 +#: musicbot/config.py:2515 msgid "Failed to upgrade config. You'll need to upgrade it manually." msgstr "Det gick inte att uppgradera konfigurationen. Du måste uppgradera den manuellt." -#: musicbot/config.py:2551 +#: musicbot/config.py:2556 #, python-format msgid "Block list file not found: %s" msgstr "Blocklistefil hittades inte: %s" -#: musicbot/config.py:2572 +#: musicbot/config.py:2577 #, python-format msgid "Could not load block list from file: %s" msgstr "Kunde inte ladda blocklistan från filen: %s" -#: musicbot/config.py:2610 musicbot/config.py:2643 +#: musicbot/config.py:2615 musicbot/config.py:2648 #, python-format msgid "Could not update the block list file: %s" msgstr "Kunde inte uppdatera blocklistefilen: %s" -#: musicbot/config.py:2670 +#: musicbot/config.py:2675 #, python-format msgid "Loaded User Block list with %s entries." msgstr "Laddad lista över användarblock med %s poster." -#: musicbot/config.py:2681 +#: musicbot/config.py:2686 #, python-format msgid "We found a legacy blacklist file, it will be renamed to: %s" msgstr "Vi hittade en gammal svartlistad fil, den kommer att döpas om till: %s" -#: musicbot/config.py:2727 +#: musicbot/config.py:2732 #, python-format msgid "Loaded a Song Block list with %s entries." msgstr "Laddade en Låtblockslista med %s poster." @@ -2539,20 +2557,20 @@ msgstr "Laddar guild-data för guild med ID: %(id)s/%(name)s" msgid "An OS error prevented reading guild data file: %s" msgstr "Ett OS-fel förhindrat läsning av guild datafil: %s" -#: musicbot/constructs.py:255 +#: musicbot/constructs.py:257 #, python-format msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" msgstr "Guild %(id)s/%(name)s har anpassat kommandoprefix: %(prefix)s" -#: musicbot/constructs.py:275 +#: musicbot/constructs.py:277 msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" msgstr "Kan inte spara data för guild med ID 0. Detta är sannolikt ett fel i koden!" -#: musicbot/constructs.py:298 +#: musicbot/constructs.py:301 msgid "Could not save guild specific data due to OS Error." msgstr "Kunde inte spara guild-specifika data på grund av OS-fel." -#: musicbot/constructs.py:301 +#: musicbot/constructs.py:304 msgid "Failed to serialize guild specific data due to invalid data." msgstr "Det gick inte att serialisera guild specifik data på grund av ogiltiga data." @@ -3025,10 +3043,10 @@ msgstr "Lang Argument fel: %s" msgid "Failed to load log translations for any of: [%s] in: %s" msgstr "Det gick inte att läsa in loggöversättningar för någon av: [%s] i: %s" -#: musicbot/i18n.py:333 +#: musicbot/i18n.py:340 #, python-format -msgid "Failed to load discord translations for any of: [%s] in: %s" -msgstr "Misslyckades att läsa in discord översättningar för någon av: [%s] i: %s" +msgid "Failed to load discord translations for any of: [%s] guild: %s in: %s" +msgstr "Misslyckades att läsa in discord-översättningar för någon av: [%s] guild: %s i: %s" #: musicbot/json.py:14 #, python-format diff --git a/i18n/sv_SE/LC_MESSAGES/musicbot_messages.mo b/i18n/sv_SE/LC_MESSAGES/musicbot_messages.mo index 75ce65a32c1c076e8abceb57bc1c90b36fe5826f..679d7262428b5c92b2c0c430a75c3c3d2d681797 100644 GIT binary patch delta 10590 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 D+y|L< delta 9445 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 %(max)s)" msgstr "Sånglängden överskrider gränsen (%(length)s > %(max)s)" -#: musicbot/bot.py:4289 +#: musicbot/bot.py:4292 #, python-format msgid "Enqueued `%(track)s` to be played.\n" "Position in queue: %(position)s" msgstr "Enqueued `%(track)s` ska spelas.\n" "Position i kön: %(position)s" -#: musicbot/bot.py:4297 musicbot/bot.py:4312 +#: musicbot/bot.py:4300 musicbot/bot.py:4315 msgid "Playing next!" msgstr "Spelar nästa!" -#: musicbot/bot.py:4320 +#: musicbot/bot.py:4323 #, python-format msgid "%(position)s - estimated time until playing: `%(eta)s`" msgstr "%(position)s - uppskattad tid till att spela: `%(eta)s`" -#: musicbot/bot.py:4328 +#: musicbot/bot.py:4331 #, python-format msgid "%(position)s - cannot estimate time until playing." msgstr "%(position)s - kan inte uppskatta tiden innan du spelar." -#: musicbot/bot.py:4346 +#: musicbot/bot.py:4349 msgid "Add a media URL to the queue as a Stream.\n" "The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" "You can also use non-streamed media to play it without downloading it.\n" @@ -711,26 +711,26 @@ msgstr "Lägg till en media-URL i kön som en ström.\n" "Du kan också använda icke-strömmade medier för att spela upp den utan att ladda ner den.\n" "Obs: FFmpeg kan släppa strömmen slumpmässigt eller om anslutning hicka händer.\n" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "Streaming av spellistor stöds ännu inte." -#: musicbot/bot.py:4419 +#: musicbot/bot.py:4422 #, python-format msgid "Now streaming track `%(track)s`" msgstr "Nu strömmande spår `%(track)s`" -#: musicbot/bot.py:4428 +#: musicbot/bot.py:4431 msgid " Search with service for a number of results with the search query.\n" msgstr " Sök med tjänst för ett antal resultat med sökfrågan.\n" -#: musicbot/bot.py:4432 +#: musicbot/bot.py:4435 msgid " Search YouTube for query but get a custom number of results.\n" " Note: the double-quotes are required in this case.\n" msgstr " Sök på YouTube efter frågor men få ett anpassat antal resultat.\n" " Obs: dubbelcitat krävs i detta fall.\n" -#: musicbot/bot.py:4438 +#: musicbot/bot.py:4441 msgid "Search a supported service and select from results to add to queue.\n" "Service and number arguments can be omitted, default number is 3 results.\n" "Select from these services:\n" @@ -744,191 +744,191 @@ msgstr "Sök i en tjänst som stöds och välj från resultat att lägga till i "- sc, soundcloud\n" "- yh, yahoo\n" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "Du har nått din gräns för spellistans objekt (%(max)s)" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "Ange en sökfråga. Använd `help search` för mer information." -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "Du kan inte söka efter mer än %(max)s videor" -#: musicbot/bot.py:4532 +#: musicbot/bot.py:4535 msgid "Searching for videos..." msgstr "Söker efter videor..." -#: musicbot/bot.py:4554 +#: musicbot/bot.py:4557 #, python-format msgid "Search failed due to an error: %(error)s" msgstr "Sökning misslyckades på grund av ett fel: %(error)s" -#: musicbot/bot.py:4566 +#: musicbot/bot.py:4569 msgid "No videos found." msgstr "Inga videor hittades." -#: musicbot/bot.py:4575 +#: musicbot/bot.py:4578 msgid "To select a song, type the corresponding number." msgstr "För att välja en låt, skriv in motsvarande nummer." -#: musicbot/bot.py:4576 +#: musicbot/bot.py:4579 #, python-format msgid "Search results from %(service)s:" msgstr "Sökresultat från %(service)s:" -#: musicbot/bot.py:4585 +#: musicbot/bot.py:4588 #, python-format msgid "**%(index)s**. **%(track)s** | %(length)s" msgstr "**%(index)s**. **%(track)s** %(length)s" -#: musicbot/bot.py:4594 +#: musicbot/bot.py:4597 msgid "\n" "**0**. Cancel" msgstr "\n" "**0**. Avbryt" -#: musicbot/bot.py:4598 +#: musicbot/bot.py:4601 msgid "Pick a song" msgstr "Välj en låt" -#: musicbot/bot.py:4649 +#: musicbot/bot.py:4652 #, python-format msgid "Added song [%(track)s](%(url)s) to the queue." msgstr "Lade till låt [%(track)s](%(url)s) till kön." -#: musicbot/bot.py:4663 +#: musicbot/bot.py:4666 #, python-format msgid "Result %(number)s of %(total)s: %(url)s" msgstr "Resultat %(number)s i %(total)s: %(url)s" -#: musicbot/bot.py:4713 +#: musicbot/bot.py:4716 msgid "Alright, coming right up!" msgstr "Okej, kommer rakt upp!" -#: musicbot/bot.py:4725 +#: musicbot/bot.py:4728 msgid "Show information on what is currently playing." msgstr "Visa information om vad som spelas just nu." -#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +#: musicbot/bot.py:4780 musicbot/bot.py:6028 musicbot/bot.py:6060 msgid "[autoplaylist]" msgstr "[autoplaylist]" -#: musicbot/bot.py:4781 +#: musicbot/bot.py:4784 msgid "Now playing" msgstr "Nu spelas" -#: musicbot/bot.py:4784 +#: musicbot/bot.py:4787 msgid "Currently streaming:" msgstr "Strömmar just nu:" -#: musicbot/bot.py:4786 +#: musicbot/bot.py:4789 msgid "Currently playing:" msgstr "Spelar just nu:" -#: musicbot/bot.py:4792 +#: musicbot/bot.py:4795 msgid "Added By:" msgstr "Tillagd av:" -#: musicbot/bot.py:4793 +#: musicbot/bot.py:4796 #, python-format msgid "`%(user)s`" msgstr "`%(user)s`" -#: musicbot/bot.py:4797 +#: musicbot/bot.py:4800 msgid "Progress:" msgstr "Förlopp:" -#: musicbot/bot.py:4815 musicbot/bot.py:6004 +#: musicbot/bot.py:4818 musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "Det finns inga låtar köade! Köa något med ett spelkommando." -#: musicbot/bot.py:4818 +#: musicbot/bot.py:4821 msgid "Tell MusicBot to join the channel you're in." msgstr "Säg till MusicBot att gå med i kanalen du är i." -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "Du är inte ansluten till röst. Försök att ansluta till en röstkanal!" -#: musicbot/bot.py:4876 +#: musicbot/bot.py:4879 #, python-format msgid "Connected to `%(channel)s`" msgstr "Ansluten till `%(channel)s`" -#: musicbot/bot.py:4882 +#: musicbot/bot.py:4885 msgid "Makes MusicBot follow a user when they change channels in a server.\n" msgstr "Gör MusicBot att följa en användare när de byter kanal på en server.\n" -#: musicbot/bot.py:4905 +#: musicbot/bot.py:4908 #, python-format msgid "No longer following user `%(user)s`" msgstr "Följer inte längre användaren `%(user)s`" -#: musicbot/bot.py:4915 +#: musicbot/bot.py:4918 #, python-format msgid "Now following user `%(user)s` between voice channels." msgstr "Nu följer användaren `%(user)s` mellan röstkanaler." -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot kan inte följa en användare som inte är medlem i servern." -#: musicbot/bot.py:4935 +#: musicbot/bot.py:4938 #, python-format msgid "Will follow user `%(user)s` between voice channels." msgstr "Följer användaren `%(user)s` mellan röstkanaler." -#: musicbot/bot.py:4941 +#: musicbot/bot.py:4944 msgid "Pause playback if a track is currently playing." msgstr "Pausa uppspelning om en låt spelas upp." -#: musicbot/bot.py:4952 +#: musicbot/bot.py:4955 #, python-format msgid "Paused music in `%(channel)s`" msgstr "Pausad musik i `%(channel)s`" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "Spelaren spelar inte." -#: musicbot/bot.py:4958 +#: musicbot/bot.py:4961 msgid "Resumes playback if the player was previously paused." msgstr "Återuppspelning om spelaren tidigare var pausad." -#: musicbot/bot.py:4969 +#: musicbot/bot.py:4972 #, python-format msgid "Resumed music in `%(channel)s`" msgstr "Återupptagen musik i `%(channel)s`" -#: musicbot/bot.py:4975 +#: musicbot/bot.py:4978 msgid "Resumed music queue" msgstr "Återupptagen musikkö" -#: musicbot/bot.py:4977 +#: musicbot/bot.py:4980 msgid "Player is not paused." msgstr "Spelaren är inte pausad." -#: musicbot/bot.py:4979 +#: musicbot/bot.py:4982 msgid "Shuffle all current tracks in the queue." msgstr "Blanda alla aktuella spår i kön." -#: musicbot/bot.py:5014 +#: musicbot/bot.py:5017 msgid "Shuffled all songs in the queue." msgstr "Blandade alla låtar i kön." -#: musicbot/bot.py:5016 +#: musicbot/bot.py:5019 msgid "Removes all songs currently in the queue." msgstr "Tar bort alla låtar i kön." -#: musicbot/bot.py:5028 +#: musicbot/bot.py:5031 msgid "Cleared all songs from the queue." msgstr "Rensade alla låtar från kön." -#: musicbot/bot.py:5033 +#: musicbot/bot.py:5036 msgid "Remove a song from the queue, optionally at the given queue position.\n" "If the position is omitted, the song at the end of the queue is removed.\n" "Use the queue command to find position number of your track.\n" @@ -938,41 +938,41 @@ msgstr "Ta bort en låt från kön, eventuellt på den givna köpositionen.\n" "Använd kökommandot för att hitta positionsnumret på din spår.\n" "Dock ändras positioner för alla låtar när en ny låt börjar spela.\n" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "Ingenting i kön att ta bort!" -#: musicbot/bot.py:5068 +#: musicbot/bot.py:5071 #, python-format msgid "Removed `%(track)s` added by `%(user)s`" msgstr "Tog bort `%(track)s` tillagd av `%(user)s`" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "Ingenting hittades i kön från användaren `%(user)s`" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "Du har inte behörighet att ta bort den posten från kön.\n" "Du måste vara den som köade det eller har omedelbar hoppa över behörigheter." -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "Ogiltigt postnummer. Använd kökommandot för att hitta köpositioner." -#: musicbot/bot.py:5105 +#: musicbot/bot.py:5108 #, python-format msgid "Removed entry `%(track)s` added by `%(user)s`" msgstr "Tog bort post `%(track)s` tillagd av `%(user)s`" -#: musicbot/bot.py:5110 +#: musicbot/bot.py:5113 #, python-format msgid "Removed entry `%(track)s`" msgstr "Tog bort post `%(track)s`" -#: musicbot/bot.py:5121 +#: musicbot/bot.py:5124 msgid "Skip or vote to skip the current playing song.\n" "Members with InstaSkip permission may use force parameter to bypass voting.\n" "If LegacySkip option is enabled, the force parameter can be ignored.\n" @@ -980,67 +980,67 @@ msgstr "Hoppa över eller rösta för att hoppa över den nuvarande låten.\n" "Medlemmar med InstaSkip tillstånd kan använda force parameter för att kringgå röstning.\n" "Om LegacySkip -alternativet är aktiverat kan kraftparametern ignoreras.\n" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "Kan inte hoppa över! Spelaren spelar inte!" -#: musicbot/bot.py:5153 +#: musicbot/bot.py:5156 #, python-format msgid "The next song `%(track)s` is downloading, please wait." msgstr "Nästa låt `%(track)s` laddas ner, vänligen vänta." -#: musicbot/bot.py:5161 +#: musicbot/bot.py:5164 msgid "The next song will be played shortly. Please wait." msgstr "Nästa låt kommer att spelas inom kort. Vänligen vänta." -#: musicbot/bot.py:5166 +#: musicbot/bot.py:5169 msgid "Something odd is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Något udda händer.\n" "Du kanske vill starta om boten om den inte börjar fungera." -#: musicbot/bot.py:5173 +#: musicbot/bot.py:5176 msgid "Something strange is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "Något konstigt händer.\n" "Du kanske vill starta om boten om den inte börjar fungera." -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "Du har inte behörighet att tvinga hoppa över en loopad låt." -#: musicbot/bot.py:5211 +#: musicbot/bot.py:5214 #, python-format msgid "Force skipped `%(track)s`." msgstr "Tvinga hoppad `%(track)s`." -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "Du har inte behörighet att tvinga hopp." -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "Du har inte behörighet att hoppa över en loopad låt." -#: musicbot/bot.py:5269 +#: musicbot/bot.py:5272 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "The vote to skip has been passed.%(next_up)s" msgstr "Din skip för `%(track)s` godkändes.\n" "Omröstningen att hoppa över har passerats.%(next_up)s" -#: musicbot/bot.py:5276 +#: musicbot/bot.py:5279 msgid " Next song coming up!" msgstr " Nästa låt kommer!" -#: musicbot/bot.py:5293 +#: musicbot/bot.py:5296 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "Need **%(votes)s** more vote(s) to skip this song." msgstr "Din hoppa över `%(track)s` blev erkänd.\n" "Behöver **%(votes)s** fler röster för att hoppa över denna låt." -#: musicbot/bot.py:5306 +#: musicbot/bot.py:5309 msgid "Set the output volume level of MusicBot from 1 to 100.\n" "Volume parameter allows a leading + or - for relative adjustments.\n" "The volume setting is retained until MusicBot is restarted.\n" @@ -1048,34 +1048,34 @@ msgstr "Set the output volume level of MusicBot from 1 to 100.\n" "Volymparameter tillåter en ledande + eller - för relativa justeringar.\n" "Volyminställningen behålls tills MusicBot startas om.\n" -#: musicbot/bot.py:5323 +#: musicbot/bot.py:5326 #, python-format msgid "Current volume: `%(volume)s%%`" msgstr "Nuvarande volym: `%(volume)s%%`" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "`%(new_volume)s` är inte ett giltigt tal" -#: musicbot/bot.py:5351 +#: musicbot/bot.py:5354 #, python-format msgid "Updated volume from **%(old)d** to **%(new)d**" msgstr "Uppdaterad volym från **%(old)d** till **%(new)d**" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "Orimlig volymförändring angiven: %(old_volume)s%(adjustment)s är %(new_volume)s.\n" "Volymen kan endast ändras från 1 till 100." -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "Orimlig volym angiven: %(volume)s. Ange ett värde mellan 1 och 100." -#: musicbot/bot.py:5374 +#: musicbot/bot.py:5377 msgid "Change the playback speed of the currently playing track only.\n" "The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" "Streaming playback does not support speed adjustments.\n" @@ -1083,133 +1083,133 @@ msgstr "Ändra endast uppspelningshastigheten för den nuvarande uppspelningslå "Graden måste vara mellan 0.5 och 100. på grund av ffmpeg begränsningar.\n" "Uppspelning av strömning stöder inte hastighetsjusteringar.\n" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "Inget spår spelas, kan inte ställa in hastighet.\n" "Använd konfigurationskommandot för att ställa in en standard uppspelningshastighet." -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "Hastighet kan inte tillämpas på strömmade medier." -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "Du måste ange en hastighet att ställa in." -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "Hastigheten du angav är ogiltig. Använd ett nummer mellan 0,5 och 100." -#: musicbot/bot.py:5432 +#: musicbot/bot.py:5435 #, python-format msgid "Setting playback speed to `%(speed).3f` for current track." msgstr "Ställer in uppspelningshastighet till `%(speed).3f` för nuvarande spår." -#: musicbot/bot.py:5441 +#: musicbot/bot.py:5444 msgid " Add an new alias with optional arguments.\n" msgstr " Lägg till ett nytt alias med valfria argument.\n" -#: musicbot/bot.py:5444 +#: musicbot/bot.py:5447 msgid " Remove an alias with the given name." msgstr " Ta bort ett alias med det angivna namnet." -#: musicbot/bot.py:5447 +#: musicbot/bot.py:5450 msgid " Reload or save aliases from/to the config file." msgstr " Ladda om eller spara alias från/till konfigurationsfilen." -#: musicbot/bot.py:5451 +#: musicbot/bot.py:5454 msgid "Allows management of aliases from discord. To see aliases use the help command." msgstr "Tillåter hantering av alias från oenighet. För att se alias använder du hjälpkommandot." -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "Ogiltigt alternativ för kommandot: `%(option)s`" -#: musicbot/bot.py:5477 +#: musicbot/bot.py:5480 msgid "Aliases reloaded from config file." msgstr "Alias laddade om från konfigurationsfilen." -#: musicbot/bot.py:5482 +#: musicbot/bot.py:5485 msgid "Aliases saved to config file." msgstr "Alias sparade i konfigurationsfilen." -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "Det gick inte att spara alias på grund av fel:\n" "`%(raw_error)s`" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "Du måste tillhandahålla ett alias och ett kommando till alias" -#: musicbot/bot.py:5498 +#: musicbot/bot.py:5501 #, python-format msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" msgstr "Nytt alias tillagt. `%(alias)s` är nu ett alias av `%(command)s`" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "Du måste ange ett alias namn för att ta bort." -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "Alias `%(alias)s` finns inte." -#: musicbot/bot.py:5518 +#: musicbot/bot.py:5521 #, python-format msgid "Alias `%(alias)s` was removed." msgstr "Alias `%(alias)s` togs bort." -#: musicbot/bot.py:5528 +#: musicbot/bot.py:5531 msgid " Shows help text about any missing config options.\n" msgstr " Visar hjälptext om eventuella saknade konfigurationsalternativ.\n" -#: musicbot/bot.py:5531 +#: musicbot/bot.py:5534 msgid " Lists the names of options which have been changed since loading config file.\n" msgstr " Listar namnen på alternativ som har ändrats sedan du laddade konfigurationsfilen.\n" -#: musicbot/bot.py:5534 +#: musicbot/bot.py:5537 msgid " List the available config options and their sections.\n" msgstr " Lista tillgängliga konfigurationsalternativ och deras sektioner.\n" -#: musicbot/bot.py:5537 +#: musicbot/bot.py:5540 msgid " Reload the options.ini file from disk.\n" msgstr " Ladda om filen options.ini från disk.\n" -#: musicbot/bot.py:5540 +#: musicbot/bot.py:5543 msgid " Shows help text for a specific option.\n" msgstr " Visar hjälptext för ett specifikt alternativ.\n" -#: musicbot/bot.py:5543 +#: musicbot/bot.py:5546 msgid " Display the current value of the option.\n" msgstr " Visa det aktuella värdet av alternativet.\n" -#: musicbot/bot.py:5546 +#: musicbot/bot.py:5549 msgid " Saves the current value to the options file.\n" msgstr " Sparar det aktuella värdet till alternativfilen.\n" -#: musicbot/bot.py:5549 +#: musicbot/bot.py:5552 msgid " Validates the option and sets the config for the session, but not to file.\n" msgstr " Validerar alternativet och ställer in konfigurationen för sessionen, men inte filen.\n" -#: musicbot/bot.py:5552 +#: musicbot/bot.py:5555 msgid " Reset the option to its default value.\n" msgstr " Återställ alternativet till dess standardvärde.\n" -#: musicbot/bot.py:5555 +#: musicbot/bot.py:5558 msgid "Manage options.ini configuration from within Discord." msgstr "Hantera options.ini konfiguration inifrån Discord." -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "Konfigurationen kan inte använda kanal och användarnamn samtidigt." -#: musicbot/bot.py:5596 +#: musicbot/bot.py:5599 #, python-format msgid "**Missing Option:** `%(config)s`\n" "```\n" @@ -1220,22 +1220,22 @@ msgstr "**Alternativ saknas :** `%(config)s`\n" "%(comment)s\n" "Standard är satt till: %(default)s```\n" -#: musicbot/bot.py:5609 +#: musicbot/bot.py:5612 msgid "*All config options are present and accounted for!*" msgstr "*Alla konfigurationsalternativ är närvarande och redovisas för!*" -#: musicbot/bot.py:5625 +#: musicbot/bot.py:5628 msgid "No config options appear to be changed." msgstr "Inga konfigurationsalternativ verkar ändras." -#: musicbot/bot.py:5627 +#: musicbot/bot.py:5630 #, python-format msgid "**Changed Options:**\n" "%(changed)s" msgstr "**Ändrade alternativ:**\n" "%(changed)s" -#: musicbot/bot.py:5647 +#: musicbot/bot.py:5650 #, python-format msgid "## Available Options:\n" "**Editable Options:**\n" @@ -1248,51 +1248,51 @@ msgstr "## Tillgängliga alternativ:\n" "**Endast manuell redigering:**\n" "%(manual)s" -#: musicbot/bot.py:5669 +#: musicbot/bot.py:5672 msgid "Config options reloaded from file successfully!" msgstr "Konfigurationsalternativ laddades om från filen framgångsrikt!" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "Det går inte att ladda om konfigurationen på grund av följande fel:\n" "%(raw_error)s" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "Kunde inte lösa undervisningsnamn från alternativets namn. Ange ett giltigt undervisnings- och alternativnamn." -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "Det alternativ som anges är tvetydigt, ange ett avsnittsnamn." -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "Du måste ange ett namn och alternativnamn för detta kommando." -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "Sektionen `%(section)s` är inte tillgänglig.\n" "De tillgängliga sektionerna är: %(sections)s" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "Alternativet `%(option)s` är inte tillgängligt." -#: musicbot/bot.py:5733 +#: musicbot/bot.py:5736 msgid "This option can only be set by editing the config file." msgstr "Det här alternativet kan bara ställas in genom att redigera konfigurationsfilen." -#: musicbot/bot.py:5737 +#: musicbot/bot.py:5740 #, python-format msgid "By default this option is set to: %(default)s" msgstr "Som standard är detta alternativ inställt på: %(default)s" -#: musicbot/bot.py:5742 +#: musicbot/bot.py:5745 #, python-format msgid "**Option:** `%(config)s`\n" "%(comment)s\n\n" @@ -1301,27 +1301,27 @@ msgstr "**Val:** `%(config)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte spara till disk." -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "Kunde inte spara alternativet: `%(option)s`" -#: musicbot/bot.py:5767 +#: musicbot/bot.py:5770 #, python-format msgid "Successfully saved the option: `%(config)s`" msgstr "Alternativet sparades framgångsrikt: `%(config)s`" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "Alternativ `%(option)s` är inte redigerbar, värde kan inte visas." -#: musicbot/bot.py:5784 +#: musicbot/bot.py:5787 #, python-format msgid "**Option:** `%(config)s`\n" "Current Value: `%(loaded)s`\n" @@ -1330,80 +1330,80 @@ msgstr "**Val:** `%(config)s`\n" "Nuvarande värde: `%(loaded)s`\n" "INI filvärde: `%(ini)s`" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte uppdatera inställningen." -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "Du måste ange ett avsnitt, alternativ och värde för detta underkommando." -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "Alternativet `%(option)s` uppdaterades inte!" -#: musicbot/bot.py:5822 +#: musicbot/bot.py:5825 #, python-format msgid "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "Alternativet `%(config)s` uppdaterades för denna session.\n" "För att spara ändringen använd `config save %(section)s %(option)s`" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte återställa till standard." -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "Alternativet `%(option)s` återställdes inte till standard!" -#: musicbot/bot.py:5857 +#: musicbot/bot.py:5860 #, python-format msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "Alternativ `%(config)s` återställdes till sitt standardvärde `%(default)s`.\n" "För att spara ändringen använd `config save %(section)s %(option)s`" -#: musicbot/bot.py:5872 +#: musicbot/bot.py:5875 msgid "Deprecated command, use the config command instead." msgstr "Föråldrat kommando, använd kommandot config istället." -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "Alternativkommandot är föråldrat, använd kommandot config istället." -#: musicbot/bot.py:5892 +#: musicbot/bot.py:5895 msgid "Display information about cache storage or clear cache according to configured limits.\n" "Using update option will scan the cache for external changes before displaying details." msgstr "Visa information om cache-lagring eller rensa cache enligt konfigurerade begränsningar.\n" "Genom att använda uppdateringsalternativet kommer att skanna cachen efter externa ändringar innan detaljer visas." -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "Ogiltigt alternativ angivet, användning: info, uppdatering eller rensa" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Disabled" msgstr "Inaktiverad" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Enabled" msgstr "Aktiverad" -#: musicbot/bot.py:5919 +#: musicbot/bot.py:5922 #, python-format msgid "%(time)s days" msgstr "%(time)s dagar" -#: musicbot/bot.py:5925 musicbot/bot.py:5928 +#: musicbot/bot.py:5928 musicbot/bot.py:5931 msgid "Unlimited" msgstr "Obegränsad" -#: musicbot/bot.py:5933 +#: musicbot/bot.py:5936 #, python-format msgid "**Video Cache:** *%(state)s*\n" "**Storage Limit:** *%(size)s*\n" @@ -1414,40 +1414,40 @@ msgstr "**Video Cache:** *%(state)s*\n" "**Tidsbegränsning:** *%(time)s*\n\n" "**Cached nu: %(used)s i %(files)s fil(er)." -#: musicbot/bot.py:5956 +#: musicbot/bot.py:5959 msgid "Cache has been cleared." msgstr "Cachen har rensats." -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**Misslyckades** att ta bort cache, kolla loggar för mer information..." -#: musicbot/bot.py:5965 +#: musicbot/bot.py:5968 msgid "No cache found to clear." msgstr "Ingen cache hittades att rensa." -#: musicbot/bot.py:5973 +#: musicbot/bot.py:5976 msgid "Display information about the current player queue.\n" "Optional page number shows later entries in the queue.\n" msgstr "Visa information om aktuell spelarkö.\n" "Valfritt sidnummer visar senare poster i kön.\n" -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "Kö sida argument måste vara ett heltal." -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "Begärt sidnummer är utanför gränserna.\n" "Det finns **%(total)s** sidor." -#: musicbot/bot.py:6025 +#: musicbot/bot.py:6026 msgid "(unknown duration)" msgstr "(okänd tid)" -#: musicbot/bot.py:6034 +#: musicbot/bot.py:6035 #, python-format msgid "Currently playing: `%(title)s`\n" "Added by: `%(user)s`\n" @@ -1456,14 +1456,14 @@ msgstr "Spelar just nu: `%(title)s`\n" "La till: `%(user)s`\n" "Framsteg: `[%(progress)s/%(total)s]`\n" -#: musicbot/bot.py:6064 +#: musicbot/bot.py:6065 #, python-format msgid "**Entry #%(index)s:**Title: `%(title)s`\n" "Added by: `%(user)s\n\n" msgstr "**Inlägg #%(index)s:**Titel: `%(title)s`\n" "Lades till av: `%(user)s\n\n" -#: musicbot/bot.py:6072 +#: musicbot/bot.py:6073 #, python-format msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" "Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" @@ -1472,17 +1472,17 @@ msgstr "%(progress)sDet finns `%(total)s` poster i kön.\n" "Här är nästa %(per_page)s låtar, med start på låten #%(start)s\n\n" "%(tracks)s" -#: musicbot/bot.py:6085 +#: musicbot/bot.py:6086 msgid "Songs in queue" msgstr "Låtar i kö" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "Försök igen. MusicBot kunde inte göra eller få en referens till kömeddelandet.\n" "Om problemet kvarstår, skicka in en felrapport." -#: musicbot/bot.py:6156 +#: musicbot/bot.py:6157 msgid "Search for and remove bot messages and commands from the calling text channel.\n" "Optionally supply a number of messages to search through, 50 by default 500 max.\n" "This command may be slow if larger ranges are given.\n" @@ -1490,64 +1490,64 @@ msgstr "Sök efter och ta bort botmeddelanden och kommandon från anropstextkana "Tillval tillhandahålla ett antal meddelanden att söka genom, 50 som standard 500 max.\n" "Detta kommando kan vara långsamt om större intervall anges.\n" -#: musicbot/bot.py:6180 +#: musicbot/bot.py:6181 msgid "Invalid parameter. Please provide a number of messages to search." msgstr "Ogiltig parameter. Ange ett antal meddelanden att söka." -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "Kan inte använda rensning på privat DM-kanal." -#: musicbot/bot.py:6222 +#: musicbot/bot.py:6223 #, python-format msgid "Cleaned up %(number)s message(s)." msgstr "Rensade upp %(number)s meddelande(er)." -#: musicbot/bot.py:6226 +#: musicbot/bot.py:6227 msgid "Bot does not have permission to manage messages." msgstr "Bot har inte behörighet att hantera meddelanden." -#: musicbot/bot.py:6231 +#: musicbot/bot.py:6232 msgid "Dump the individual URLs of a playlist to a file." msgstr "Dumpa de enskilda webbadresserna i en spellista till en fil." -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "Den angivna URL:en var inte en giltig URL." -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "Kunde inte extrahera information från indata-url\n" "%(raw_error)s\n" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "Detta verkar inte vara en spellista." -#: musicbot/bot.py:6282 +#: musicbot/bot.py:6283 #, python-format msgid "Here is the playlist dump for: %(url)s" msgstr "Här är spellistan dumpa för: %(url)s" -#: musicbot/bot.py:6292 +#: musicbot/bot.py:6293 msgid "Display your Discord User ID, or the ID of a mentioned user.\n" "This command is deprecated in favor of Developer Mode in Discord clients.\n" msgstr "Visa ditt Discord-användar-ID eller ID för en nämnd användare.\n" "Detta kommando är föråldrat till förmån för utvecklarläge i Discord-klienter.\n" -#: musicbot/bot.py:6307 +#: musicbot/bot.py:6308 #, python-format msgid "Your user ID is `%(id)s`" msgstr "Ditt användar-ID är `%(id)s`" -#: musicbot/bot.py:6312 +#: musicbot/bot.py:6313 #, python-format msgid "The user ID for `%(username)s` is `%(id)s`" msgstr "Användar-ID för `%(username)s` är `%(id)s`" -#: musicbot/bot.py:6319 +#: musicbot/bot.py:6320 msgid "List the Discord IDs for the selected category.\n" "Returns all ID data by default, but one or more categories may be selected.\n" "This command is deprecated in favor of using Developer mode in Discord clients.\n" @@ -1555,28 +1555,28 @@ msgstr "Lista Discord-ID för den valda kategorin.\n" "Returnerar alla ID-data som standard, men en eller flera kategorier kan väljas.\n" "Detta kommando är föråldrat till förmån för att använda Utvecklarläge i Discord-klienter.\n" -#: musicbot/bot.py:6341 +#: musicbot/bot.py:6342 #, python-format msgid "Valid categories: %(cats)s" msgstr "Giltiga kategorier: %(cats)s" -#: musicbot/bot.py:6388 +#: musicbot/bot.py:6389 msgid "Here are the IDs you requested:" msgstr "Här är de ID du begärt:" -#: musicbot/bot.py:6395 +#: musicbot/bot.py:6396 msgid "Get a list of your permissions, or the permissions of the mentioned user." msgstr "Få en lista över dina rättigheter eller behörigheter för den nämnda användaren." -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "Ogiltigt användar-ID eller server-smeknamn, vänligen dubbelkolla ID och försök igen." -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "Kunde inte bestämma discord-användaren. Försök igen." -#: musicbot/bot.py:6439 +#: musicbot/bot.py:6440 #, python-format msgid "Your command permissions in %(server)s are:\n" "```\n" @@ -1587,7 +1587,7 @@ msgstr "Dina kommandobehörigheter i %(server)s är:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6448 +#: musicbot/bot.py:6449 #, python-format msgid "The command permissions for %(username)s in %(server)s are:\n" "```\n" @@ -1598,58 +1598,58 @@ msgstr "Kommandobehörigheterna för %(username)s i %(server)s är:\n" "%(permissions)s\n" "```" -#: musicbot/bot.py:6464 +#: musicbot/bot.py:6465 msgid " Show loaded groups and list permission options.\n" msgstr " Visa laddade grupper och listbehörighetsalternativ.\n" -#: musicbot/bot.py:6467 +#: musicbot/bot.py:6468 msgid " Reloads permissions from the permissions.ini file.\n" msgstr " Laddar om behörigheter från permissions.ini filen.\n" -#: musicbot/bot.py:6470 +#: musicbot/bot.py:6471 msgid " Add new group with defaults.\n" msgstr " Lägg till ny grupp med standardinställningar.\n" -#: musicbot/bot.py:6473 +#: musicbot/bot.py:6474 msgid " Remove existing group.\n" msgstr " Ta bort befintlig grupp.\n" -#: musicbot/bot.py:6476 +#: musicbot/bot.py:6477 msgid " Show help text for the permission option.\n" msgstr " Visa hjälptext för behörighetsalternativet.\n" -#: musicbot/bot.py:6479 +#: musicbot/bot.py:6480 msgid " Show permission value for given group and permission.\n" msgstr " Visa behörighetsvärde för given grupp och behörighet.\n" -#: musicbot/bot.py:6482 +#: musicbot/bot.py:6483 msgid " Save permissions group to file.\n" msgstr " Spara behörighetsgrupp till fil.\n" -#: musicbot/bot.py:6485 +#: musicbot/bot.py:6486 msgid " Set permission value for the group.\n" msgstr " Ange behörighetsvärde för gruppen.\n" -#: musicbot/bot.py:6488 +#: musicbot/bot.py:6489 msgid "Manage permissions.ini configuration from within discord." msgstr "Hantera behörighet.ini konfiguration inifrån diskord." -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "Behörigheter kan inte använda kanal och användarnamn samtidigt." -#: musicbot/bot.py:6534 +#: musicbot/bot.py:6535 msgid "Permissions reloaded from file successfully!" msgstr "Behörigheter laddades om från filen framgångsrikt!" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "Det går inte att ladda om behörigheter på grund av ett fel:\n" "%(raw_error)s" -#: musicbot/bot.py:6558 +#: musicbot/bot.py:6559 #, python-format msgid "## Available Groups:\n" "%(groups)s\n" @@ -1660,41 +1660,41 @@ msgstr "## Tillgängliga grupper:\n" "## Tillgängliga alternativ:\n" "%(options)s\n" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "Du måste ange ett grupp- eller alternativnamn för detta kommando." -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "Du måste ange en grupp, alternativ och värde för detta kommando." -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "%(option)s underkommandot kräver ett grupp- och behörighetsnamn." -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "Gruppen `%(group)s` är inte tillgänglig.\n" "De tillgängliga grupperna är: %(sections)s" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "Behörigheten `%(option)s` är inte tillgänglig." -#: musicbot/bot.py:6624 +#: musicbot/bot.py:6625 msgid "This permission can only be set by editing the permissions file." msgstr "Denna behörighet kan bara ställas in genom att redigera behörighetsfilen." -#: musicbot/bot.py:6633 +#: musicbot/bot.py:6634 #, python-format msgid "By default this permission is set to: `%(value)s`" msgstr "Som standard är den här behörigheten satt till: `%(value)s`" -#: musicbot/bot.py:6638 +#: musicbot/bot.py:6639 #, python-format msgid "**Permission:** `%(option)s`\n" "%(comment)s\n\n" @@ -1703,12 +1703,12 @@ msgstr "**Behörighet:** `%(option)s`\n" "%(comment)s\n\n" "%(default)s" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "Kan inte lägga till grupp `%(group)s` det finns redan." -#: musicbot/bot.py:6660 +#: musicbot/bot.py:6661 #, python-format msgid "Successfully added new group: `%(group)s`\n" "You can now customize the permissions with: `setperms set %(group)s`\n" @@ -1717,32 +1717,32 @@ msgstr "Ny grupp lades till: `%(group)s`\n" "Du kan nu anpassa behörigheterna med: `setperms set %(group)s`\n" "Se till att spara den nya gruppen med: `setperms save %(group)s`" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "Kan inte ta bort inbyggd grupp." -#: musicbot/bot.py:6677 +#: musicbot/bot.py:6678 #, python-format msgid "Successfully removed group: `%(group)s`\n" "Make sure to save this change with: `setperms save %(group)s`" msgstr "Tog bort grupp: `%(group)s`\n" "Se till att spara denna ändring med: `setperms save %(group)s`" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "Ägargruppen är inte redigerbar." -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "Det gick inte att spara gruppen: `%(group)s`" -#: musicbot/bot.py:6700 +#: musicbot/bot.py:6701 #, python-format msgid "Successfully saved the group: `%(group)s`" msgstr "Gruppen sparades framgångsrikt: `%(group)s`" -#: musicbot/bot.py:6711 +#: musicbot/bot.py:6712 #, python-format msgid "**Permission:** `%(permission)s`\n" "Current Value: `%(loaded)s`\n" @@ -1751,155 +1751,205 @@ msgstr "**Behörighet:** `%(permission)s`\n" "Nuvarande värde: `%(loaded)s`\n" "INI filvärde: `%(ini)s`" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "Behörighet `%(option)s` uppdaterades inte!" -#: musicbot/bot.py:6748 +#: musicbot/bot.py:6749 #, python-format msgid "Permission `%(permission)s` was updated for this session.\n" "To save the change use `setperms save %(section)s %(option)s`" msgstr "Behörighet `%(permission)s` uppdaterades för denna session.\n" "För att spara ändringen använd `setperms save %(section)s %(option)s`" -#: musicbot/bot.py:6765 +#: musicbot/bot.py:6766 msgid "Change the bot's username on discord.\n" "Note: The API may limit name changes to twice per hour." msgstr "Ändra botens användarnamn på diskett.\n" "Obs: API:et kan begränsa namnändringar till två gånger per timme." -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "Det gick inte att ändra användarnamn. Ändrade du namn för många gånger?\n" "Kom ihåg att namnändringar är begränsade till två gånger per timme.\n" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "Misslyckades att ändra användarnamn på grund av fel: \n" "%(raw_error)s" -#: musicbot/bot.py:6795 +#: musicbot/bot.py:6796 #, python-format msgid "Set the bot's username to `%(name)s`" msgstr "Ange botens användarnamn till `%(name)s`" -#: musicbot/bot.py:6798 +#: musicbot/bot.py:6799 msgid "Change the MusicBot's nickname." msgstr "Ändra MusicBots smeknamn." -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "Det går inte att ändra smeknamn: ingen behörighet." -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "Misslyckades att ange smeknamn på grund av fel: \n" "%(raw_error)s" -#: musicbot/bot.py:6825 +#: musicbot/bot.py:6826 #, python-format msgid "Set the bot's nickname to `%(nick)s`" msgstr "Sätt botens smeknamn till `%(nick)s`" -#: musicbot/bot.py:6832 +#: musicbot/bot.py:6833 msgid " Set a per-server command prefix." msgstr " Ange ett prefix för kommandot per server." -#: musicbot/bot.py:6834 +#: musicbot/bot.py:6835 msgid " Clear the per-server command prefix." msgstr " Rensa kommandoprefixet per server." -#: musicbot/bot.py:6838 +#: musicbot/bot.py:6839 msgid "Override the default command prefix in the server.\n" "The option EnablePrefixPerGuild must be enabled first." msgstr "Åsidosätt standardkommandoprefixet på servern.\n" "Alternativet EnablePrefixPerGuild måste aktiveras först." -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "Anpassad emoji måste vara från den här servern för att använda som prefix." -#: musicbot/bot.py:6866 +#: musicbot/bot.py:6867 msgid "Server command prefix is cleared." msgstr "Server-kommandoprefixet är rensat." -#: musicbot/bot.py:6871 +#: musicbot/bot.py:6872 #, python-format msgid "Server command prefix is now: %(prefix)s" msgstr "Serverkommandoprefix är nu: %(prefix)s" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "Prefix per server är inte aktiverad!\n" "Använd konfigurationskommandot för att uppdatera prefixet istället." -#: musicbot/bot.py:6885 +#: musicbot/bot.py:6886 +msgid " Show language codes available to use.\n" +msgstr " Visa språkkoder tillgängliga att använda.\n" + +#: musicbot/bot.py:6889 +msgid " Set the desired language for this server.\n" +msgstr " Ange önskat språk för den här servern.\n" + +#: musicbot/bot.py:6892 +msgid " Reset the server language to bot's default language.\n" +msgstr " Återställ serverspråket till botens standardspråk.\n" + +#: musicbot/bot.py:6895 +msgid "Manage the language used for messages in the calling server." +msgstr "Hantera språket som används för meddelanden i samtalsservern." + +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "Detta kommando kan endast användas i guilds." + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "Ogiltigt underkommando ges. Använd hjälpkommandot för mer information." + +#: musicbot/bot.py:6924 +#, python-format +msgid "**Current Language:** `%(locale)s`\n" +"**Available Languages:**\n" +"```\n" +"%(languages)s```" +msgstr "**Nuvarande språk:** `%(locale)s`\n" +"**Tillgängliga språk:**\n" +"```\n" +"%(languages)s```" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "Kan inte ställa in språk till `%(locale)s` det är inte tillgängligt." + +#: musicbot/bot.py:6939 +#, python-format +msgid "Language for this server now set to: `%(locale)s`" +msgstr "Språk för denna server nu satt till: `%(locale)s`" + +#: musicbot/bot.py:6947 +#, python-format +msgid "Language for this server has been reset to: `%(locale)s`" +msgstr "Språk för den här servern har återställts till: `%(locale)s`" + +#: musicbot/bot.py:6959 msgid "Change MusicBot's avatar.\n" "Attaching a file and omitting the url parameter also works.\n" msgstr "Ändra MusicBots avatar.\n" "Att koppla en fil och utelämna url-parametern fungerar.\n" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "Du måste ange en URL eller bifoga en fil." -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "Det gick inte att ändra avatar på grund av fel: \n" "%(raw_error)s" -#: musicbot/bot.py:6919 +#: musicbot/bot.py:6993 msgid "Changed the bot's avatar." msgstr "Ändrade botens avatar." -#: musicbot/bot.py:6922 +#: musicbot/bot.py:6996 msgid "Force MusicBot to disconnect from the discord server." msgstr "Tvinga MusicBot att koppla från discord-servern." -#: musicbot/bot.py:6933 +#: musicbot/bot.py:7007 #, python-format msgid "Disconnected from server `%(guild)s`" msgstr "Frånkopplad från servern `%(guild)s`" -#: musicbot/bot.py:6948 +#: musicbot/bot.py:7022 msgid "Disconnected a playerless voice client? [BUG]" msgstr "Kopplade från en spellös röstklient? [BUG]" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "Inte ansluten till servern `%(guild)s`" -#: musicbot/bot.py:6960 +#: musicbot/bot.py:7034 msgid " Attempt to reload without process restart. The default option.\n" msgstr " Försök att ladda om utan processens omstart. Standardalternativet.\n" -#: musicbot/bot.py:6962 +#: musicbot/bot.py:7036 msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" msgstr " Försök att starta om hela MusicBot processen, ladda om allt.\n" -#: musicbot/bot.py:6964 +#: musicbot/bot.py:7038 msgid " Full restart, but attempt to update pip packages before restart.\n" msgstr " Fullständig omstart, men försök att uppdatera pip-paket innan omstart.\n" -#: musicbot/bot.py:6966 +#: musicbot/bot.py:7040 msgid " Full restart, but update MusicBot source code with git first.\n" msgstr " Fullständig omstart, men uppdatera MusicBot källkod med git först.\n" -#: musicbot/bot.py:6968 +#: musicbot/bot.py:7042 msgid " Attempt to update all dependency and source code before fully restarting.\n" msgstr " Försök att uppdatera alla beroenden och källkod innan den startas om.\n" -#: musicbot/bot.py:6972 +#: musicbot/bot.py:7046 msgid "Attempts to restart the MusicBot in a number of different ways.\n" "With no option supplied, a `soft` restart is implied.\n" "It can be used to remotely update a MusicBot installation, but should be used with care.\n" @@ -1909,103 +1959,103 @@ msgstr "Försök att starta om MusicBot på ett antal olika sätt.\n" "Den kan användas för att fjärruppdatera en MusicBot installation, men bör användas med försiktighet.\n" "Om du har en servicehanterare, rekommenderar vi att du använder den istället för detta kommando för omstart.\n" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "Ogiltigt angivet alternativ, använd en av: mjuk, full, uppgradering, uppip eller upgit" -#: musicbot/bot.py:6999 +#: musicbot/bot.py:7073 #, python-format msgid "%(emoji)s Restarting current instance..." msgstr "%(emoji)s Startar om aktuell instans..." -#: musicbot/bot.py:7004 +#: musicbot/bot.py:7078 #, python-format msgid "%(emoji)s Restarting bot process..." msgstr "%(emoji)s Startar om botprocessen..." -#: musicbot/bot.py:7009 +#: musicbot/bot.py:7083 #, python-format msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." msgstr "%(emoji)s Försöker uppgradera nödvändiga pip-paket och starta om boten..." -#: musicbot/bot.py:7014 +#: musicbot/bot.py:7088 #, python-format msgid "%(emoji)s Will try to update bot code with git and restart the bot..." msgstr "%(emoji)s Kommer att försöka uppdatera botkoden med git och starta om boten..." -#: musicbot/bot.py:7019 +#: musicbot/bot.py:7093 #, python-format msgid "%(emoji)s Will try to upgrade everything and restart the bot..." msgstr "%(emoji)s Kommer att försöka uppgradera allt och starta om boten..." -#: musicbot/bot.py:7053 +#: musicbot/bot.py:7127 msgid "Disconnect from all voice channels and close the MusicBot process." msgstr "Koppla från alla röstkanaler och avsluta MusicBot-processen." -#: musicbot/bot.py:7079 +#: musicbot/bot.py:7153 msgid " Leave the discord server given by name or server ID." msgstr " Lämna discord-servern med namn eller server-ID." -#: musicbot/bot.py:7083 +#: musicbot/bot.py:7157 msgid "Force MusicBot to leave the given Discord server.\n" "Names are case-sensitive, so using an ID number is more reliable.\n" msgstr "Tvinga MusicBot att lämna den angivna Discord-servern.\n" "Namnen är skiftlägeskänsliga, så att använda ett ID-nummer är mer tillförlitligt.\n" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "Du måste ange ett ID eller namn." -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "Ingen guild hittades med ID eller namn `%(input)s`" -#: musicbot/bot.py:7121 +#: musicbot/bot.py:7195 msgid "Unknown" msgstr "Okänd" -#: musicbot/bot.py:7128 +#: musicbot/bot.py:7202 #, python-format msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" msgstr "Lämnade guilden: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" -#: musicbot/bot.py:7138 +#: musicbot/bot.py:7212 msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." msgstr "Kommando som används för testning. Det skriver ut en lista med kommandon som kan verifieras av en testsvit." -#: musicbot/bot.py:7162 +#: musicbot/bot.py:7236 msgid "This command issues a log at level CRITICAL, but does nothing else.\n" "Can be used to manually pinpoint events in the MusicBot log file.\n" msgstr "Detta kommando utfärdar en logg på nivå CRITICAL, men gör inget annat.\n" "Kan användas för att manuellt identifiera händelser i MusicBot loggfilen.\n" -#: musicbot/bot.py:7173 +#: musicbot/bot.py:7247 #, python-format msgid "Logged breakpoint with ID: %(uuid)s" msgstr "Loggad brytpunkt med ID: %(uuid)s" -#: musicbot/bot.py:7180 +#: musicbot/bot.py:7254 msgid " View most common types reported by objgraph.\n" msgstr " Visa de vanligaste typerna som rapporterats av objgraph.\n" -#: musicbot/bot.py:7183 +#: musicbot/bot.py:7257 msgid " View limited objgraph.show_growth() output.\n" msgstr " Visa begränsad objgraph.show_growth() utgång.\n" -#: musicbot/bot.py:7186 +#: musicbot/bot.py:7260 msgid " View most common types of leaking objects.\n" msgstr " Visa de vanligaste typerna av läckande objekt.\n" -#: musicbot/bot.py:7189 +#: musicbot/bot.py:7263 msgid " View typestats of leaking objects.\n" msgstr " Visa typvärden för läckande objekt.\n" -#: musicbot/bot.py:7192 +#: musicbot/bot.py:7266 msgid " Evaluate the given function and arguments on objgraph.\n" msgstr " Utvärdera den givna funktionen och argumenten på objektgrafen.\n" -#: musicbot/bot.py:7196 +#: musicbot/bot.py:7270 msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" "You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" "Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" @@ -2013,11 +2063,11 @@ msgstr "Interagera med objektgrafen, om den är installerad, för att få insikt "Du kan skicka en godtycklig metod med argument (men inga mellanslag!) som är medlem i objektgrafen.\n" "Eftersom denna metod utvärderar godtycklig kod anses den vara farlig som debug kommandot.\n" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "Kunde inte importera `objgraph`, är det installerat?" -#: musicbot/bot.py:7249 +#: musicbot/bot.py:7323 msgid "This command will execute arbitrary python code in the command scope.\n" "First eval() is attempted, if exceptions are thrown exec() is tried next.\n" "If eval is successful, it's return value is displayed.\n" @@ -2035,7 +2085,7 @@ msgstr "Detta kommando kommer att exekvera godtycklig python-kod i kommandomfån "Detta kommando kan tas bort i en framtida version, och används av utvecklare för att felsöka MusicBot beteende.\n" "Faran med detta kommando kan inte underskattas. Använd den inte eller ge tillgång till den om du inte förstår riskerna!\n" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -2048,65 +2098,65 @@ msgstr "Misslyckades att köra felsökningskod:\n" "%(ex_name)s:\n" "%(ex_text)s```" -#: musicbot/bot.py:7320 +#: musicbot/bot.py:7394 msgid "Create 'markdown' for options, permissions, or commands from the code.\n" "The output is used to update GitHub Pages and is thus unsuitable for normal reference use." msgstr "Skapa 'markdown' för alternativ, behörigheter eller kommandon från koden.\n" "Utgången används för att uppdatera GitHub sidor och är därmed olämplig för normal referensanvändning." -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "Underkommando måste vara ett av: %(options)s" -#: musicbot/bot.py:7387 +#: musicbot/bot.py:7461 msgid "Makes default INI files." msgstr "Gör standard INI-filer." -#: musicbot/bot.py:7410 +#: musicbot/bot.py:7486 msgid "Saved the requested INI file to disk. Go check it" msgstr "Sparade den begärda INI-filen till disk. Gå och kontrollera den" -#: musicbot/bot.py:7415 +#: musicbot/bot.py:7491 msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" msgstr "Visa den nuvarande botversionen och sök efter uppdateringar till MusicBot eller beroenden.\n" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "Kunde inte lokalisera git körbar." -#: musicbot/bot.py:7473 +#: musicbot/bot.py:7549 #, python-format msgid "No updates in branch `%(branch)s` remote." msgstr "Inga uppdateringar i grenen `%(branch)s` fjärrkontroll." -#: musicbot/bot.py:7478 +#: musicbot/bot.py:7554 #, python-format msgid "New commits are available in `%(branch)s` branch remote." msgstr "Nya commits finns i `%(branch)s` branch remote." -#: musicbot/bot.py:7484 musicbot/bot.py:7527 +#: musicbot/bot.py:7560 musicbot/bot.py:7603 msgid "Error while checking, see logs for details." msgstr "Fel vid kontroll, se loggar för detaljer." -#: musicbot/bot.py:7518 +#: musicbot/bot.py:7594 #, python-format msgid "Update for `%(name)s` to version: `%(version)s`\n" msgstr "Uppdatering för `%(name)s` till version: `%(version)s`\n" -#: musicbot/bot.py:7524 +#: musicbot/bot.py:7600 msgid "No updates for dependencies found." msgstr "Inga uppdateringar för beroenden hittades." -#: musicbot/bot.py:7530 +#: musicbot/bot.py:7606 msgid "There are updates for MusicBot available for download." msgstr "Det finns uppdateringar för MusicBot tillgängliga för nedladdning." -#: musicbot/bot.py:7532 +#: musicbot/bot.py:7608 msgid "MusicBot is totally up-to-date!" msgstr "MusicBot är helt uppdaterad!" -#: musicbot/bot.py:7536 +#: musicbot/bot.py:7612 #, python-format msgid "%(status)s\n\n" "**Source Code Updates:**\n" @@ -2119,29 +2169,29 @@ msgstr "%(status)s\n\n" "**Uppdateringar för beroendeförhållanden:**\n" "%(pip_status)s" -#: musicbot/bot.py:7550 +#: musicbot/bot.py:7626 msgid "Displays the MusicBot uptime, or time since last start / restart." msgstr "Visar MusicBot upptid, eller tid sedan senaste start / omstart." -#: musicbot/bot.py:7565 +#: musicbot/bot.py:7641 #, python-format msgid "%(name)s has been online for `%(time)s`" msgstr "%(name)s har varit online för `%(time)s`" -#: musicbot/bot.py:7572 +#: musicbot/bot.py:7648 msgid "Display latency information for Discord API and all connected voice clients." msgstr "Visa latensinformation för Discord API och alla anslutna röstklienter." -#: musicbot/bot.py:7594 +#: musicbot/bot.py:7670 #, python-format msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) i region: `%(region)s`\n" -#: musicbot/bot.py:7599 +#: musicbot/bot.py:7675 msgid "No voice clients connected.\n" msgstr "Inga röstklienter anslutna.\n" -#: musicbot/bot.py:7604 +#: musicbot/bot.py:7680 #, python-format msgid "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" @@ -2150,47 +2200,47 @@ msgstr "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" "%(voices)s" -#: musicbot/bot.py:7612 +#: musicbot/bot.py:7688 msgid "Display API latency and Voice latency if MusicBot is connected." msgstr "Visa API-latens och röstfördröjning om MusicBot är ansluten." #. TRANSLATORS: short for automatic, displayed when voice region is not selected. -#: musicbot/bot.py:7628 +#: musicbot/bot.py:7704 msgid "auto" msgstr "automatiskt" -#: musicbot/bot.py:7630 +#: musicbot/bot.py:7706 #, python-format msgid "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" msgstr "\n" "**Röstlatency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) i regionen `%(region)s`" -#: musicbot/bot.py:7635 +#: musicbot/bot.py:7711 #, python-format msgid "**API Latency:** `%(delay).0f ms`%(voice)s" msgstr "**API Latency:** `%(delay).0f ms`%(voice)s" -#: musicbot/bot.py:7640 +#: musicbot/bot.py:7716 msgid "Display MusicBot version number in the chat." msgstr "Visa MusicBot versionsnummer i chatten." -#: musicbot/bot.py:7648 +#: musicbot/bot.py:7724 #, python-format msgid "https://github.com/Just-Some-Bots/MusicBot\n" "Current version: `%(version)s`" msgstr "https://github.com/Just-Some-Bots/MusicBot\n" "Aktuell version: `%(version)s`" -#: musicbot/bot.py:7660 +#: musicbot/bot.py:7736 msgid " Update the cookies.txt file using a cookies.txt attachment." msgstr " Uppdatera cookies.txt-filen med hjälp av en cookies.txt-bilaga." -#: musicbot/bot.py:7663 +#: musicbot/bot.py:7739 msgid " Enable or disable cookies.txt file without deleting it." msgstr " Aktivera eller inaktivera cookies.txt-fil utan att ta bort den." -#: musicbot/bot.py:7667 +#: musicbot/bot.py:7743 msgid "Allows management of the cookies feature in yt-dlp.\n" "When updating cookies, you must upload a file named cookies.txt\n" "If cookies are disabled, uploading will enable the feature.\n" @@ -2210,90 +2260,90 @@ msgstr "Tillåter hantering av funktionen cookies i yt-dlp.\n" " Det rekommenderas inte på grund av dessa risker, och du bör inte använda denna\n" " funktion om du inte förstår hur man undviker riskerna." -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookies har redan aktiverats." -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Cookies måste laddas upp för att kunna aktiveras. (Missing cookies file.)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "Kunde inte aktivera cookies på grund av fel: %(raw_error)s" -#: musicbot/bot.py:7711 +#: musicbot/bot.py:7787 msgid "Cookies have been enabled." msgstr "Cookies har aktiverats." -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "Kunde inte byta namn på cookiefilen på grund av fel: %(raw_error)s\n" "Cookies tillfälligt inaktiverade och kommer att aktiveras igen vid nästa omstart." -#: musicbot/bot.py:7726 +#: musicbot/bot.py:7802 msgid "Cookies have been disabled." msgstr "Cookies har inaktiverats." -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "Inga bifogade uppladdningar hittades, försök igen när du laddade upp en cookie-fil." -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "Fel vid nedladdning av cookie-filen från diskett: %(raw_error)s" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "Kunde inte spara kakor till disk: %(raw_error)s" -#: musicbot/bot.py:7762 +#: musicbot/bot.py:7838 msgid "Cookies uploaded and enabled." msgstr "Cookies uppladdade och aktiverade." -#: musicbot/bot.py:7872 +#: musicbot/bot.py:7948 msgid "You cannot use this bot in private messages." msgstr "Du kan inte använda denna bot i privata meddelanden." -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "Detta kommando är inte tillåtet för din behörighetsgrupp: %(group)s" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "Detta kommando kräver att du är i en röstkanal." -#: musicbot/bot.py:8075 +#: musicbot/bot.py:8151 #, python-format msgid "**Command:** %(name)s" msgstr "**Kommando:** %(name)s" -#: musicbot/bot.py:8134 +#: musicbot/bot.py:8210 msgid "Exception Error" msgstr "Fel vid undantag" -#: musicbot/bot.py:8179 +#: musicbot/bot.py:8255 #, python-format msgid "**Example with prefix:**\n" "%(prefix)s`%(command)s ...`\n" msgstr "**Exempel med prefix:**\n" "%(prefix)s`%(command)s ...`\n" -#: musicbot/bot.py:8183 +#: musicbot/bot.py:8259 msgid "No description given.\n" msgstr "Ingen beskrivning angiven.\n" -#: musicbot/bot.py:8186 +#: musicbot/bot.py:8262 msgid "No usage given." msgstr "Ingen användning angiven." -#: musicbot/bot.py:8220 +#: musicbot/bot.py:8296 #, python-format msgid "**Example usage:**\n" "```%(usage)s```\n" @@ -2304,12 +2354,12 @@ msgstr "**Exempel användning:**\n" "%(prefix_note)s**Beskrivning:**\n" "%(desc)s" -#: musicbot/bot.py:8273 +#: musicbot/bot.py:8349 #, python-format msgid "Leaving voice channel %(channel)s due to inactivity." msgstr "Lämnar röstkanal %(channel)s på grund av inaktivitet." -#: musicbot/bot.py:8554 +#: musicbot/bot.py:8645 #, python-format msgid "Left `%(guild)s` due to bot owner not being found in it." msgstr "Vänster `%(guild)s` på grund av att bot ägaren inte hittas i den." @@ -2493,43 +2543,43 @@ msgid "Enable automatic skip of auto playlist songs when a user plays a new song msgstr "Aktivera automatisk hoppa över automatiskt spellista låtar när en användare spelar en ny låt.\n" "Detta gäller endast för den aktuella låten om den lades till av auto spellista." -#: musicbot/config.py:469 +#: musicbot/config.py:468 msgid "Remove songs from the auto playlist if they are found in the song block list." msgstr "Ta bort låtar från auto spellistan om de finns i listan låtblock." -#: musicbot/config.py:488 +#: musicbot/config.py:487 msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" "Delay period is controlled by DeleteDelayShort and DeleteDelayLong." msgstr "Tillåt MusicBot att automatiskt ta bort meddelanden som skickas, efter en fördröjning.\n" "Fördröjningsperioden kontrolleras av DeleteDelayShort och DeleteDelayLong." -#: musicbot/config.py:498 +#: musicbot/config.py:497 msgid "Auto delete valid commands after a delay." msgstr "Ta automatiskt bort giltiga kommandon efter försening." -#: musicbot/config.py:507 +#: musicbot/config.py:506 msgid "Sets the short period of seconds before deleting messages.\n" "This period is used by messages that require no further interaction." msgstr "Anger den korta perioden av sekunder innan meddelanden tas bort.\n" "Denna period används av meddelanden som inte kräver någon ytterligare interaktion." -#: musicbot/config.py:518 +#: musicbot/config.py:517 msgid "Sets the long delay period before deleting messages.\n" "This period is used by interactive or long-winded messages, like search and help." msgstr "Sätter den långa fördröjningsperioden innan meddelanden tas bort.\n" "Denna period används av interaktiva eller långlindade meddelanden, som sökning och hjälp." -#: musicbot/config.py:530 +#: musicbot/config.py:529 msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." msgstr "Tillåt MusicBot att spara låtkön, så köade låtar kommer att överleva omstart." -#: musicbot/config.py:540 +#: musicbot/config.py:539 msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" "Currently this option does not apply to auto playlist or songs added to an empty queue." msgstr "Aktivera MusicBot att ladda ner nästa låt i kön medan en låt spelas.\n" "För närvarande gäller inte detta alternativ för automatisk spellista eller låtar som lagts till i en tom kön." -#: musicbot/config.py:550 +#: musicbot/config.py:549 msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" "will display dynamic info about music currently being played in its status instead.\n" "Status messages may also use the following variables:\n" @@ -2553,69 +2603,69 @@ msgstr "Ange ett anpassat meddelande som ska användas som botens status. Om den " {p0_title} = Spårtiteln för den aktuella låten.\n" " {p0_url} = Spår-URL för den nuvarande uppspelningslåten." -#: musicbot/config.py:571 +#: musicbot/config.py:570 msgid "If enabled, status messages will report info on paused players." msgstr "Om aktiverad, kommer statusmeddelanden att rapportera information om pausade spelare." #. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. -#: musicbot/config.py:582 +#: musicbot/config.py:581 msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" msgstr "Om aktiverad, kommer MusicBot att spara låttiteln till: data/[Server ID]/current.txt" -#: musicbot/config.py:592 +#: musicbot/config.py:591 msgid "Allow the member who requested the song to skip it, bypassing votes." msgstr "Tillåt den medlem som bad låten att hoppa över den, kringgående röster." -#: musicbot/config.py:602 +#: musicbot/config.py:601 msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" "This option can cause delay between playing songs, as the whole track must be processed." msgstr "Försöker använda ffmpeg för att få volymnormaliserande alternativ för användning i uppspelning.\n" "Det här alternativet kan orsaka fördröjning mellan att spela låtar, eftersom hela låten måste bearbetas." -#: musicbot/config.py:612 +#: musicbot/config.py:611 msgid "Allow MusicBot to format its messages as embeds." msgstr "Tillåt MusicBot att formatera sina meddelanden som inbäddar." -#: musicbot/config.py:621 +#: musicbot/config.py:620 msgid "The number of entries to show per-page when using q command to list the queue." msgstr "Antalet poster att visa per sida när du använder q-kommandot för att lista kön." -#: musicbot/config.py:631 +#: musicbot/config.py:630 msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." msgstr "Aktivera MusicBot att automatiskt ta bort ospelbara poster från auto-spellistan." -#: musicbot/config.py:640 +#: musicbot/config.py:639 msgid "Display MusicBot config settings in the logs at startup." msgstr "Visa konfigurationsinställningar för MusicBot i loggarna vid start." #. TRANSLATORS: InstaSkip should not be translated. -#: musicbot/config.py:650 +#: musicbot/config.py:649 msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." msgstr "Aktivera användare med InstaSkip tillåtelse att kringgå röstning och tvinga hoppar över." -#: musicbot/config.py:660 +#: musicbot/config.py:659 msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." msgstr "Om aktiverad, kommer MusicBot att lämna servrar om ägaren inte är med i deras medlemslista." -#: musicbot/config.py:670 +#: musicbot/config.py:669 msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" msgstr "Om aktiverad, kommer MusicBot att tillåta kommandon att ha flera namn med data i: config/aliases.json" -#: musicbot/config.py:681 +#: musicbot/config.py:680 msgid "Replace MusicBot name/version in embed footer with custom text.\n" "Only applied when UseEmbeds is enabled and it is not blank." msgstr "Ersätt MusicBot namn/version i inbäddad sidfot med anpassad text.\n" "Används endast när UseEmbeds är aktiverat och det är inte tomt." -#: musicbot/config.py:691 +#: musicbot/config.py:690 msgid "Completely remove the footer from embeds." msgstr "Ta helt bort sidfoten från bäddar." -#: musicbot/config.py:700 +#: musicbot/config.py:699 msgid "MusicBot will automatically deafen itself when entering a voice channel." msgstr "MusicBot kommer automatiskt att döva sig själv när du går in i en röstkanal." -#: musicbot/config.py:711 +#: musicbot/config.py:710 msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" "after waiting for a period set in LeaveInactiveVCTimeOut option.\n" "Listeners are channel members, excluding bots, who are not deafened." @@ -2623,17 +2673,17 @@ msgstr "Om aktiverad, kommer MusicBot att lämna en röstkanal när inga använd "efter att ha väntat på en period i LeaveInactiveVCTimeOut alternativet.\n" "Lyssnare är kanalmedlemmar, exklusive botar, som inte är döva." -#: musicbot/config.py:723 +#: musicbot/config.py:722 msgid "Set a period of time to wait before leaving an inactive voice channel.\n" "You can set this to a number of seconds or phrase like: 4 hours" msgstr "Ange en tidsperiod att vänta innan du lämnar en inaktiv röstkanal.\n" "Du kan ställa in detta till ett antal sekunder eller fras som: 4 timmar" -#: musicbot/config.py:734 +#: musicbot/config.py:733 msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." msgstr "Om aktiverad, kommer MusicBot att lämna kanalen omedelbart när låtkön är tom." -#: musicbot/config.py:744 +#: musicbot/config.py:743 msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" "You can set this to a number of seconds of phrase like: 15 minutes\n" "Set it to 0 to disable leaving in this way." @@ -2641,24 +2691,24 @@ msgstr "När pausad eller inte längre spelar, vänta på denna tid sedan lämna "Du kan ställa in detta till ett antal sekunder av fras som: 15 minuter\n" "Sätt det till 0 för att inaktivera lämnar på detta sätt." -#: musicbot/config.py:756 +#: musicbot/config.py:755 msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." msgstr "Om aktiverad, måste användare ange sökresultatval genom att skicka ett meddelande istället för att använda reaktioner." -#: musicbot/config.py:766 +#: musicbot/config.py:765 msgid "Sets the default number of search results to fetch when using the search command without a specific number." msgstr "Anger standardantalet sökresultat att hämta när du använder sökkommandot utan ett specifikt nummer." #. TRANSLATORS: setprefix should not be translated. -#: musicbot/config.py:778 +#: musicbot/config.py:777 msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." msgstr "Tillåt MusicBot att spara ett kommando per server och aktivera kommandot setprefix." -#: musicbot/config.py:789 +#: musicbot/config.py:788 msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." msgstr "Om aktiverad och flera medlemmar lägger till låtar, kommer MusicBot att organisera uppspelning för en låt per medlem." -#: musicbot/config.py:800 +#: musicbot/config.py:799 msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" "This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" "MusicBot must be restarted to enable network testing.\n" @@ -2668,7 +2718,7 @@ msgstr "Tillåt MusicBot att använda tidsinställda pings för att upptäcka n "MusicBot måste startas om för att aktivera nätverkstestning.\n" "Som standard är detta inaktiverat." -#: musicbot/config.py:814 +#: musicbot/config.py:813 #, python-format msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" "This will contain all songs from all servers." @@ -2676,12 +2726,12 @@ msgstr "Aktivera sparande av alla låtar som spelas av MusicBot till en global s "Detta kommer att innehålla alla låtar från alla servrar." #. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. -#: musicbot/config.py:829 +#: musicbot/config.py:828 #, python-format msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" msgstr "Aktivera sparande av låtar som spelas per server till en spellistfil: %(basename)s[Server ID]%(ext)s" -#: musicbot/config.py:845 +#: musicbot/config.py:844 msgid "Enable playback of local media files using the play command.\n" "When enabled, users can use: `play file://path/to/file.ext`\n" "to play files from the local MediaFileDirectory path." @@ -2689,11 +2739,11 @@ msgstr "Aktivera uppspelning av lokala mediefiler med hjälp av uppspelningskomm "När detta är aktiverat kan användare använda: `play file://path/to/fil. xt`\n" "för att spela upp filer från den lokala MediaFileDirectory-sökvägen." -#: musicbot/config.py:858 +#: musicbot/config.py:857 msgid "Allow MusicBot to automatically unpause when play commands are used." msgstr "Tillåt MusicBot att automatiskt avpausa när spelkommandon används." -#: musicbot/config.py:877 +#: musicbot/config.py:876 msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" "The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" "Leave blank to disable." @@ -2701,7 +2751,7 @@ msgstr "Experimentella, HTTP/HTTPS proxyinställningar för att använda med ytd "Värdet som anges här skickas till `ytdlp --proxy` och aiohttp header checking.\n" "Lämna tomt för att inaktivera." -#: musicbot/config.py:888 +#: musicbot/config.py:887 msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" "It is not typically recommended by yt-dlp to change the UA string.\n" "For examples of what you might put here, check the following two links:\n" @@ -2715,7 +2765,7 @@ msgstr "Experimentellt alternativ för att ställa in ett statiskt User-Agent-hu " https://www.useragents.me/ \n" "Lämna tomt för att använda standardsträngar, dynamiskt genererade UA-strängar." -#: musicbot/config.py:903 +#: musicbot/config.py:902 #, python-format msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" "When enabled, you must use the generated URL and code to authorize an account.\n" @@ -2730,7 +2780,7 @@ msgstr "Experimentellt alternativ för att aktivera yt-dlp att använda ett YouT "Att använda ett personligt konto kanske inte rekommenderas.\n" "Ställ in ja för att aktivera eller nej för att inaktivera." -#: musicbot/config.py:920 +#: musicbot/config.py:919 msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" "This starts the OAuth2 prompt early, rather than waiting for a song request.\n" "The URL set here should be an accessible YouTube video URL.\n" @@ -2740,31 +2790,31 @@ msgstr "Valfri YouTube-video-URL används vid uppstart för att utlösa OAuth2-b "URL-adressen här bör vara en tillgänglig YouTube-video-URL.\n" "Auktoriseringen måste vara klar innan uppstart kommer att fortsätta när detta är inställt." -#: musicbot/config.py:939 +#: musicbot/config.py:938 msgid "Toggle the user block list feature, without emptying the block list." msgstr "Växla funktionen för användarblocklistan, utan att tömma blocklistan." -#: musicbot/config.py:949 +#: musicbot/config.py:948 msgid "An optional file path to a text file listing Discord User IDs, one per line." msgstr "En valfri sökväg till en textfil som listar Discords användar-ID, en per rad." -#: musicbot/config.py:961 +#: musicbot/config.py:960 msgid "Enable the song block list feature, without emptying the block list." msgstr "Aktivera funktionen för blockering av låtar, utan att tömma blocklistan." -#: musicbot/config.py:971 +#: musicbot/config.py:970 msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" "Any song title or URL that contains any line in the list will be blocked." msgstr "En valfri sökväg till en textfil som visar webbadresser, ord eller fraser en per rad.\n" "Varje låttitel eller URL som innehåller någon rad i listan kommer att blockeras." -#: musicbot/config.py:984 +#: musicbot/config.py:983 msgid "An optional path to a directory containing auto playlist files.\n" "Each file should contain a list of playable URLs or terms, one track per line." msgstr "En valfri sökväg till en katalog som innehåller filer för automatisk spellista.\n" "Varje fil ska innehålla en lista över spelbara webbadresser eller termer, ett spår per rad." -#: musicbot/config.py:996 +#: musicbot/config.py:995 #, python-format msgid "An optional directory path where playable media files can be stored.\n" "All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" @@ -2775,11 +2825,11 @@ msgstr "En valfri sökväg där spelbara mediefiler kan lagras.\n" "Exempel: file://some/folder/name/file.ext\n" "Kartor till: %(path)s/some/folder/name/file.ext" -#: musicbot/config.py:1015 +#: musicbot/config.py:1014 msgid "An optional directory path where MusicBot will store long and short-term cache for playback." msgstr "En valfri sökväg där MusicBot lagrar lång- och kortsiktig cache för uppspelning." -#: musicbot/config.py:1026 +#: musicbot/config.py:1025 #, python-format msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" "When disabled, only one log is kept and its contents are replaced each run.\n" @@ -2788,7 +2838,7 @@ msgstr "Konfigurera automatisk loggfil rotation vid omstart och begränsa antale "När den är inaktiverad sparas endast en logg och dess innehåll byts ut varje körning.\n" "Sätt till 0 för att inaktivera. Maximalt tillåtet tal är %(max)s." -#: musicbot/config.py:1039 +#: musicbot/config.py:1038 msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" "If left blank, a warning is logged and the default will be used instead.\n" "Learn more about time format codes from the tables and data here:\n" @@ -2798,13 +2848,13 @@ msgstr "Konfigurera loggfilens datumformat som används när LogsMaxKept är akt "Läs mer om tidsformatkoder från tabeller och data här:\n" " https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" -#: musicbot/config.py:1053 +#: musicbot/config.py:1052 msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" "This option will disable UseExperimentalEqualization option as well." msgstr "Potentiellt minskar CPU-användningen, men inaktiverar volym- och hastighetskontroller.\n" "Detta alternativ kommer även att inaktivera UseExperimentalEqualization-alternativet." -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2827,7 +2877,7 @@ msgstr "Fel vid läsning av konfigurationen.\n\n" " Varje avsnitt måste ha minst ett alternativ.\n" " Använd exempelalternativen som mall eller kopiera den från förrådet." -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2839,7 +2889,7 @@ msgstr "Fel vid validering av konfigurationsalternativ.\n\n" "Lösning:\n" " Kontrollera att sökvägen du har konfigurerat är en sökväg till en mapp / katalog." -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2854,7 +2904,7 @@ msgstr "Fel vid validering av konfigurationsalternativ.\n\n" "Solution:\n" " Dubbelkolla inställningen är giltig, sökväg för tillgänglig katalog." -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2867,7 +2917,7 @@ msgstr "Fel vid läsning av konfigurationsalternativ.\n\n" "Lösning:\n" " Ställ in konfigurationsalternativet eller ange miljövariabeln %(env_var)s med en app-token." -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2881,7 +2931,7 @@ msgstr "Fel vid hämtning av 'OwnerID' automatiskt.\n\n" "Lösning:\n" " Ställ Manuellt in 'OwnerID' konfigurationsalternativet eller försök igen senare." -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2893,7 +2943,7 @@ msgstr "Fel vid validering av konfigurationsalternativ.\n\n" "Lösning:\n" " Använd inte Bot eller App ID i fältet 'OwnerID'." -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2908,7 +2958,7 @@ msgstr "Fel vid lokalisering av konfiguration.\n\n" "Lösning:\n" " Verifiera konfigurationsmappen och filerna finns och kan läsas av MusicBot." -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2925,7 +2975,7 @@ msgstr "Fel vid laddning av konfiguration.\n\n" " Se till att filen är tillgänglig och felfri.\n" " Kopiera exempelfilen från repo om allt annat misslyckas." -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2938,7 +2988,7 @@ msgstr "Fel vid laddning av konfigurationsvärde.\n\n" "Solution:\n" " sätt %(option)s till ett numeriskt ID eller sätt det till `auto` eller `0` för automatisk ägarbindning." -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2951,7 +3001,7 @@ msgstr "Fel vid laddning av konfigurationsvärde.\n\n" "Lösning:\n" " Kontrollera sökvägsinställningen och se till att filen finns och är tillgänglig för MusicBot." -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" diff --git a/i18n/zh_CN/LC_MESSAGES/musicbot_logs.mo b/i18n/zh_CN/LC_MESSAGES/musicbot_logs.mo index dd5cd1c6135f1f135511d0009559350df341e0b5..3b288978b7334269de96529120e3cf107ac565b7 100644 GIT binary patch delta 9144 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 N-S>V;c3IV${{{Ar$wB}C delta 8908 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 %(max)s)" msgstr "" -#: musicbot/bot.py:4295 +#: musicbot/bot.py:4298 #, python-format msgid "Added song(s) at position %s" msgstr "" -#: musicbot/bot.py:4332 +#: musicbot/bot.py:4335 #, python-format msgid "Cannot estimate time until playing for position: %d" msgstr "" -#: musicbot/bot.py:4393 +#: musicbot/bot.py:4396 #, python-format msgid "Failed to get info from the stream request: %s" msgstr "" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "尚不支持流播放列表。" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "请指定一个搜索查询。使用 \"help search \" 获取更多信息。" -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "" -#: musicbot/bot.py:4834 +#: musicbot/bot.py:4837 #, python-format msgid "Waiting for summon lock: %s" msgstr "" -#: musicbot/bot.py:4837 +#: musicbot/bot.py:4840 #, python-format msgid "Summon lock acquired for: %s" msgstr "" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "您没有连接到语音。请尝试加入一个语音频道!" -#: musicbot/bot.py:4866 +#: musicbot/bot.py:4869 #, python-format msgid "Joining %(guild)s/%(channel)s" msgstr "" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot 不能关注不是服务器成员的用户。" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "播放器未播放。" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "队列中没有要移除的内容!" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "" -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "无效的条目编号。使用队列命令来查找队列位置。" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "无法跳过!玩家没有在玩!" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "您没有权限强制跳过循环歌曲。" -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "您没有强制跳过的权限。" -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "您没有权限跳过循环歌曲。" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "" -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "" -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "速度不能应用于流媒体。" -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "您必须提供一个速度来设置。" -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "您提供的速度无效。请使用0.5 至 100之间的数字。" -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "您必须为别名提供别名和命令" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "您必须提供一个别名来移除。" -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "" -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "配置不能同时使用频道和用户提到。" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "无法解析选项名称中的部分名称。请提供一个有效的部分和选项名称。" -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "给定的选项含混,请提供一个章节名称。" -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "您必须提供此命令的部分名称和选项名称。" -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "" -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "" -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "您必须为此子命令提供一个章节、选项和值。" -#: musicbot/bot.py:5810 +#: musicbot/bot.py:5813 #, python-format msgid "Doing set with on %(config)s == %(value)s" msgstr "" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "" -#: musicbot/bot.py:5845 +#: musicbot/bot.py:5848 #, python-format msgid "Resetting %(config)s to default %(value)s" msgstr "" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "选项命令已废弃,请使用配置命令。" -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "指定的选项无效,使用:信息、更新或清除" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**删除缓存失败,请检查日志获取更多信息..." -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "队列页面参数必须是一个整数。" -#: musicbot/bot.py:6004 +#: musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "没有播放队列的歌曲!队列中有播放命令的歌曲。" -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "" -#: musicbot/bot.py:6056 +#: musicbot/bot.py:6057 msgid "Skipped the current playlist entry." msgstr "跳过当前播放列表条目。" -#: musicbot/bot.py:6099 +#: musicbot/bot.py:6100 msgid "Not enough entries to paginate the queue." msgstr "没有足够的条目来分页队列。" -#: musicbot/bot.py:6103 +#: musicbot/bot.py:6104 msgid "Could not post queue message, no message to add reactions to." msgstr "无法发布队列消息,没有消息添加反应。" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "" -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "无法在私有DM频道上使用净化。" -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "给定的 URL 不是有效的 URL。" -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "这似乎不是一个播放列表。" -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "无效的用户ID或服务器昵称,请重新检查ID,然后重试。" -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "无法确定 Discord 用户,请重试。" -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "权限不能同时使用频道和用户提到。" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "您必须为此命令提供一个组或选项名称。" -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "您必须为此命令设置一个组、选项和值。" -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "" -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "无法删除内置组。" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "所有者群组不可编辑。" -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "" -#: musicbot/bot.py:6736 +#: musicbot/bot.py:6737 #, python-format msgid "Doing set on %(option)s with value: %(value)s" msgstr "" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "无法更改昵称:没有权限。" -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "自定义表情必须来自此服务器才能用作前缀。" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "每个服务器的前缀未启用!\n" "使用配置命令来更新前缀。" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "此命令只能用于公会。" + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "给定的子命令无效。请使用帮助命令获取更多信息。" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "" + +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "您必须提供一个 URL 或附加文件。" -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:6940 +#: musicbot/bot.py:7014 #, python-format msgid "MusicBot found a %s with no guild! This could be a problem." msgstr "MusicBot找到了一个 %s 没有公会!这可能是一个问题。" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "给定的选项无效,请使用其中一项:软、完整、升级、上传或上传。" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "您必须提供一个ID或名称。" -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "" -#: musicbot/bot.py:7172 +#: musicbot/bot.py:7246 #, python-format msgid "Activating debug breakpoint ID: %(uuid)s" msgstr "" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "无法导入 `objgraph` ,是否安装?" -#: musicbot/bot.py:7287 +#: musicbot/bot.py:7361 msgid "Debug code ran with eval()." msgstr "调试代码使用 eval()." -#: musicbot/bot.py:7297 +#: musicbot/bot.py:7371 msgid "Debug code ran with exec()." msgstr "调试代码与 exec() 一起运行。" -#: musicbot/bot.py:7300 +#: musicbot/bot.py:7374 msgid "Debug code failed to execute." msgstr "调试代码执行失败。" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1852,274 +1870,274 @@ msgid "Failed to execute debug code:\n" "%(ex_text)s```" msgstr "" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "无法找到 git 可执行文件。" -#: musicbot/bot.py:7483 +#: musicbot/bot.py:7559 msgid "Failed while checking for updates via git command." msgstr "通过 git 命令检查更新失败。" -#: musicbot/bot.py:7512 +#: musicbot/bot.py:7588 msgid "Package missing meta in pip report." msgstr "Pip报告中缺少元数据。" -#: musicbot/bot.py:7526 +#: musicbot/bot.py:7602 msgid "Failed to get pip update status due to some error." msgstr "由于某些错误,Pip更新状态失败。" -#: musicbot/bot.py:7586 +#: musicbot/bot.py:7662 msgid "Got a strange voice client entry." msgstr "获取一个奇怪的语音客户端条目。" -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookie 已启用。" -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Cookie 必须上传才能启用。(正在使用 cookies 文件)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "" -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "没有找到附加的上传文件,上传cookie文件时再试一次。" -#: musicbot/bot.py:7740 +#: musicbot/bot.py:7816 #, python-format msgid "Could not remove old, disabled cookies file: %(raw_error)s" msgstr "" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "" -#: musicbot/bot.py:7772 +#: musicbot/bot.py:7848 #, python-format msgid "Got a message with no channel, somehow: %s" msgstr "获取一条没有频道的消息,或者说: %s" -#: musicbot/bot.py:7800 +#: musicbot/bot.py:7876 #, python-format msgid "Ignoring command from myself (%s)" msgstr "忽略自身的命令 (%s)" -#: musicbot/bot.py:7808 +#: musicbot/bot.py:7884 #, python-format msgid "Ignoring command from other bot (%s)" msgstr "忽略其它机器人的命令(%s)" -#: musicbot/bot.py:7816 +#: musicbot/bot.py:7892 #, python-format msgid "Ignoring command from channel of type: %s" msgstr "忽略频道类型的命令: %s" -#: musicbot/bot.py:7900 +#: musicbot/bot.py:7976 #, python-format msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" msgstr "" -#: musicbot/bot.py:7907 +#: musicbot/bot.py:7983 #, python-format msgid "Message from %(id)s/%(name)s: %(message)s" msgstr "" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "此命令要求您在语音频道中。" -#: musicbot/bot.py:8060 +#: musicbot/bot.py:8136 #, python-format msgid "Invalid command usage, missing values for params: %(params)r" msgstr "" -#: musicbot/bot.py:8102 +#: musicbot/bot.py:8178 #, python-format msgid "Error in %(command)s: %(err_name)s: %(err_text)s" msgstr "" -#: musicbot/bot.py:8126 +#: musicbot/bot.py:8202 #, python-format msgid "Exception while handling command: %(command)s" msgstr "" -#: musicbot/bot.py:8158 +#: musicbot/bot.py:8234 #, python-format msgid "Cannot generate help for missing command: %s" msgstr "无法为缺失的命令生成帮助: %s" -#: musicbot/bot.py:8162 +#: musicbot/bot.py:8238 #, python-format msgid "Missing help data for command: %s" msgstr "缺少命令的帮助数据: %s" -#: musicbot/bot.py:8279 +#: musicbot/bot.py:8355 #, python-format msgid "Leaving voice channel %s in %s due to inactivity." msgstr "" -#: musicbot/bot.py:8288 +#: musicbot/bot.py:8364 msgid "MusicBot has become connected." msgstr "MusicBot 已连接。" -#: musicbot/bot.py:8292 +#: musicbot/bot.py:8368 msgid "MusicBot has become disconnected." msgstr "MusicBot 已断开连接。" -#: musicbot/bot.py:8297 +#: musicbot/bot.py:8373 #, python-format msgid "Got a Socket Event: %s" msgstr "获取一个套接字事件: %s" -#: musicbot/bot.py:8313 +#: musicbot/bot.py:8389 msgid "VoiceState updated before on_ready finished" msgstr "在 on_ready 完成之前更新语音状态" -#: musicbot/bot.py:8326 +#: musicbot/bot.py:8402 #, python-format msgid "Ignoring %s in %s as it is a bound voice channel." msgstr "忽略 %s 中的 %s ,因为它是一个绑定的语音频道。" -#: musicbot/bot.py:8335 +#: musicbot/bot.py:8411 #, python-format msgid "%s has been detected as empty. Handling timeouts." msgstr "%s 被检测为空。处理超时。" -#: musicbot/bot.py:8346 +#: musicbot/bot.py:8422 #, python-format msgid "A user joined %s, cancelling timer." msgstr "一个用户加入 %s,取消计时器。" -#: musicbot/bot.py:8359 +#: musicbot/bot.py:8435 #, python-format msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." msgstr "机器人移动了,音频道 %s 为空。处理超时。" -#: musicbot/bot.py:8368 +#: musicbot/bot.py:8444 #, python-format msgid "The bot got moved and the voice channel %s is not empty." msgstr "机器人移动了,声音频道 %s 不是空的。" -#: musicbot/bot.py:8402 +#: musicbot/bot.py:8493 #, python-format msgid "No longer following user %s" msgstr "不再关注用户 %s" -#: musicbot/bot.py:8424 +#: musicbot/bot.py:8515 #, python-format msgid "Following user `%(user)s` to channel: %(channel)s" msgstr "" -#: musicbot/bot.py:8444 +#: musicbot/bot.py:8535 msgid "VoiceState disconnect before.channel is None." msgstr "频道前没有语音状态断开连接。" -#: musicbot/bot.py:8471 +#: musicbot/bot.py:8562 #, python-format msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" msgstr "" -#: musicbot/bot.py:8493 +#: musicbot/bot.py:8584 #, python-format msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" msgstr "" -#: musicbot/bot.py:8500 +#: musicbot/bot.py:8591 #, python-format msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" msgstr "找不到自动加入的频道,是否删除?公会: %s" -#: musicbot/bot.py:8506 +#: musicbot/bot.py:8597 #, python-format msgid "Reconnecting to auto-joined guild on channel: %s" msgstr "重新连接到频道上的自动加入公会: %s" -#: musicbot/bot.py:8519 +#: musicbot/bot.py:8610 #, python-format msgid "Cannot auto join channel: %s" msgstr "无法自动加入频道: %s" -#: musicbot/bot.py:8535 +#: musicbot/bot.py:8626 #, python-format msgid "Bot has been added to guild: %s" msgstr "帐号已添加到公会: %s" -#: musicbot/bot.py:8547 +#: musicbot/bot.py:8638 #, python-format msgid "Left guild '%s' due to bot owner not found." msgstr "由于找不到机器人所有人,左公会为%s' 。" -#: musicbot/bot.py:8561 +#: musicbot/bot.py:8652 #, python-format msgid "Creating data folder for guild %s" msgstr "为公会创建数据文件夹 %s" -#: musicbot/bot.py:8569 +#: musicbot/bot.py:8660 #, python-format msgid "Bot has been removed from guild: %s" msgstr "机器人已从公会中移除: %s" -#: musicbot/bot.py:8570 +#: musicbot/bot.py:8661 msgid "Updated guild list:" msgstr "更新公会列表:" -#: musicbot/bot.py:8585 +#: musicbot/bot.py:8676 #, python-format msgid "Guild \"%s\" has become available." msgstr "公会\"%s\"已经可用。" -#: musicbot/bot.py:8591 +#: musicbot/bot.py:8682 #, python-format msgid "Resuming player in \"%s\" due to availability." msgstr "由于可用,恢复玩家“%s”。" -#: musicbot/bot.py:8608 +#: musicbot/bot.py:8699 #, python-format msgid "Guild \"%s\" has become unavailable." msgstr "公会\"%s\" 已不可用。" -#: musicbot/bot.py:8614 +#: musicbot/bot.py:8705 #, python-format msgid "Pausing player in \"%s\" due to unavailability." msgstr "由于不可用而暂停玩家 \"%s\"。" -#: musicbot/bot.py:8630 +#: musicbot/bot.py:8721 #, python-format msgid "Guild update for: %s" msgstr "公会更新: %s" -#: musicbot/bot.py:8636 +#: musicbot/bot.py:8727 #, python-format msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" msgstr "" -#: musicbot/bot.py:8668 +#: musicbot/bot.py:8759 #, python-format msgid "Channel update for: %(channel)s -- %(changes)s" msgstr "" @@ -2134,7 +2152,7 @@ msgstr "正在创建 %s" msgid "Loading config from: %s" msgstr "正在加载配置: %s" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2148,16 +2166,16 @@ msgid "Error while reading config.\n\n" " Use the example options as a template or copy it from the repository." msgstr "" -#: musicbot/config.py:1113 +#: musicbot/config.py:1112 #, python-format msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." msgstr "不能存储超过 %s 的日志文件。选项LogsMaxKept 将被限制。" -#: musicbot/config.py:1121 +#: musicbot/config.py:1120 msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." msgstr "配置选项 LogsDateFormat 是空的,这将破坏日志文件的旋转。使用默认值。" -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2165,11 +2183,11 @@ msgid "Error while validating config options.\n\n" " Make sure the path you configured is a path to a folder / directory." msgstr "" -#: musicbot/config.py:1149 +#: musicbot/config.py:1148 msgid "An exception was thrown while validating AudioCachePath." msgstr "验证AudioCachePath时出现异常。" -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2179,12 +2197,12 @@ msgid "Error while validating config options.\n\n" " Double check the setting is a valid, accessible directory path." msgstr "" -#: musicbot/config.py:1165 +#: musicbot/config.py:1164 #, python-format msgid "Audio Cache will be stored in: %s" msgstr "音频缓存将存储在: %s" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2193,16 +2211,16 @@ msgid "Error while reading config options.\n\n" " Set the Token config option or set environment variable %(env_var)s with an App token." msgstr "" -#: musicbot/config.py:1197 +#: musicbot/config.py:1196 msgid "StatusMessage config option is too long, it will be limited to 128 characters." msgstr "状态消息配置选项太长,它将被限制为128个字符。" -#: musicbot/config.py:1206 +#: musicbot/config.py:1205 #, python-format msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." msgstr "默认播放速度必须在 0.5 和 100.0之间。 %.3f 的选项值将被限制。" -#: musicbot/config.py:1216 +#: musicbot/config.py:1215 msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" "Cookies are not recommended, may not be supported, and may totally break.\n" "Copying cookies from your web-browser risks exposing personal data and \n" @@ -2214,15 +2232,15 @@ msgstr "检测到 Cookies TXT 文件。MusicBot 会将它们传递到 yt-dlp.\n" "在最好的情况下可能导致您的账户被禁止!\n\n" "您已被警告!祝您好运! \\U0001F596\n" -#: musicbot/config.py:1234 +#: musicbot/config.py:1233 msgid "Validating options with service data..." msgstr "正在通过服务数据验证选项..." -#: musicbot/config.py:1240 +#: musicbot/config.py:1239 msgid "Acquired owner ID via API" msgstr "通过 API 获得所有者ID" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2231,11 +2249,11 @@ msgid "Error while fetching 'OwnerID' automatically.\n\n" " Manually set the 'OwnerID' config option or try again later." msgstr "" -#: musicbot/config.py:1256 +#: musicbot/config.py:1255 msgid "MusicBot does not have a user instance, cannot proceed." msgstr "MusicBot 没有用户实例,不能继续。" -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2247,30 +2265,30 @@ msgstr "验证配置选项时出错。\n\n" "解决方案:\n" " 不要在“所有者ID”字段中使用机器人或App ID。" -#: musicbot/config.py:1286 +#: musicbot/config.py:1285 msgid "Config options file not found. Checking for alternatives..." msgstr "找不到配置选项文件,正在检查替代..." -#: musicbot/config.py:1298 +#: musicbot/config.py:1297 #, python-format msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." msgstr "" -#: musicbot/config.py:1306 +#: musicbot/config.py:1305 #, python-format msgid "Copying existing example options file: %(example_file)s" msgstr "" -#: musicbot/config.py:1315 +#: musicbot/config.py:1314 #, python-format msgid "Generated a new %(example_file)s and copied it to %(option_file)s" msgstr "" -#: musicbot/config.py:1323 +#: musicbot/config.py:1322 msgid "Something went wrong while trying to find a config option file." msgstr "试图找到配置选项文件时出了错。" -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2285,7 +2303,7 @@ msgstr "定位配置时出错。\n\n" "解决方案:\n" " 验证配置文件夹和文件存在并且可以通过 MusicBot 读取。" -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2296,43 +2314,43 @@ msgid "Error loading config.\n\n" " Copy the example file from the repo if all else fails." msgstr "" -#: musicbot/config.py:1369 +#: musicbot/config.py:1368 msgid "Dev Bug! Config option has getter that is not available." msgstr "开发错误!配置选项有不可用的getter。" -#: musicbot/config.py:1374 +#: musicbot/config.py:1373 msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." msgstr "开发错误!配置选项的类型无效,获取类型和默认类型必须相同。" -#: musicbot/config.py:1394 +#: musicbot/config.py:1393 msgid "Option was missing previously." msgstr "此前缺少备选办法。" -#: musicbot/config.py:1409 +#: musicbot/config.py:1408 #, python-format msgid "Config section not in parsed config! Missing: %s" msgstr "配置部分不在解析后的配置中!缺少: %s" -#: musicbot/config.py:1414 +#: musicbot/config.py:1413 #, python-format msgid "Saved config option: %(config)s = %(value)s" msgstr "" -#: musicbot/config.py:1427 +#: musicbot/config.py:1426 #, python-format msgid "Failed to save config: %s" msgstr "保存配置失败: %s" -#: musicbot/config.py:1932 +#: musicbot/config.py:1931 msgid "Option names are not unique between INI sections! Resolver is disabled." msgstr "选项名称在INI部分之间并不唯一!解析器已被禁用。" -#: musicbot/config.py:2094 musicbot/permissions.py:859 +#: musicbot/config.py:2099 musicbot/permissions.py:859 #, python-format msgid "Failed to save default INI file at: %s" msgstr "保存默认 INI 文件失败: %s" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2341,7 +2359,7 @@ msgid "Error loading config value.\n\n" " Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." msgstr "" -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2350,7 +2368,7 @@ msgid "Error loading config value.\n\n" " Check the path setting and make sure the file exists and is accessible to MusicBot." msgstr "" -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2359,60 +2377,60 @@ msgid "Error loading config value.\n\n" " Ensure all IDs are numerical, and separated only by spaces or commas." msgstr "" -#: musicbot/config.py:2283 +#: musicbot/config.py:2288 #, python-format msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" msgstr "" -#: musicbot/config.py:2304 +#: musicbot/config.py:2309 #, python-format msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." msgstr "" -#: musicbot/config.py:2353 +#: musicbot/config.py:2358 #, python-format msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." msgstr "" -#: musicbot/config.py:2437 +#: musicbot/config.py:2442 #, python-format msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" msgstr "" -#: musicbot/config.py:2493 +#: musicbot/config.py:2498 msgid "Upgrading config file with renamed options..." msgstr "使用重命名选项升级配置文件..." -#: musicbot/config.py:2510 +#: musicbot/config.py:2515 msgid "Failed to upgrade config. You'll need to upgrade it manually." msgstr "升级配置失败。您需要手动升级。" -#: musicbot/config.py:2551 +#: musicbot/config.py:2556 #, python-format msgid "Block list file not found: %s" msgstr "未找到方块列表文件: %s" -#: musicbot/config.py:2572 +#: musicbot/config.py:2577 #, python-format msgid "Could not load block list from file: %s" msgstr "无法从文件加载块列表: %s" -#: musicbot/config.py:2610 musicbot/config.py:2643 +#: musicbot/config.py:2615 musicbot/config.py:2648 #, python-format msgid "Could not update the block list file: %s" msgstr "无法更新块列表文件: %s" -#: musicbot/config.py:2670 +#: musicbot/config.py:2675 #, python-format msgid "Loaded User Block list with %s entries." msgstr "使用 %s 条目加载用户块列表。" -#: musicbot/config.py:2681 +#: musicbot/config.py:2686 #, python-format msgid "We found a legacy blacklist file, it will be renamed to: %s" msgstr "我们找到了一个旧的黑名单文件,它将被重命名为: %s" -#: musicbot/config.py:2727 +#: musicbot/config.py:2732 #, python-format msgid "Loaded a Song Block list with %s entries." msgstr "使用 %s 条目加载歌曲方块列表。" @@ -2436,20 +2454,20 @@ msgstr "" msgid "An OS error prevented reading guild data file: %s" msgstr "一个操作系统错误阻止读取公会数据文件: %s" -#: musicbot/constructs.py:255 +#: musicbot/constructs.py:257 #, python-format msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" msgstr "" -#: musicbot/constructs.py:275 +#: musicbot/constructs.py:277 msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" msgstr "无法保存与 ID 0的公会数据。这可能是代码中的一个错误!" -#: musicbot/constructs.py:298 +#: musicbot/constructs.py:301 msgid "Could not save guild specific data due to OS Error." msgstr "由于操作系统错误,无法保存公会特定数据。" -#: musicbot/constructs.py:301 +#: musicbot/constructs.py:304 msgid "Failed to serialize guild specific data due to invalid data." msgstr "由于无效数据,无法序列化公会特定数据。" @@ -2914,9 +2932,9 @@ msgstr "Lang 参数错误: %s" msgid "Failed to load log translations for any of: [%s] in: %s" msgstr "" -#: musicbot/i18n.py:333 +#: musicbot/i18n.py:340 #, python-format -msgid "Failed to load discord translations for any of: [%s] in: %s" +msgid "Failed to load discord translations for any of: [%s] guild: %s in: %s" msgstr "" #: musicbot/json.py:14 diff --git a/i18n/zh_CN/LC_MESSAGES/musicbot_messages.mo b/i18n/zh_CN/LC_MESSAGES/musicbot_messages.mo index ad1a014a9db2db619175c2d3f847cd1f9d66bcc9..643cc8452f983fe365b9b485da125f6462fac429 100644 GIT binary patch delta 6008 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 diff --git a/i18n/zh_CN/LC_MESSAGES/musicbot_messages.po b/i18n/zh_CN/LC_MESSAGES/musicbot_messages.po index b5d1dfe0b..4aba49cdc 100644 --- a/i18n/zh_CN/LC_MESSAGES/musicbot_messages.po +++ b/i18n/zh_CN/LC_MESSAGES/musicbot_messages.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: notmusicbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-08 07:52-0800\n" -"PO-Revision-Date: 2024-11-08 18:12\n" +"POT-Creation-Date: 2024-11-11 16:38-0800\n" +"PO-Revision-Date: 2024-11-12 00:39\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -32,89 +32,89 @@ msgstr "加载别名时出错。\n\n" " 替换别名配置文件或复制它们:\n" " https://github.com/Just-Some-Bots/MusicBot/" -#: musicbot/bot.py:713 +#: musicbot/bot.py:715 msgid "Member is not voice-enabled and cannot use this command." msgstr "会员没有语音功能,无法使用此命令。" -#: musicbot/bot.py:721 +#: musicbot/bot.py:723 msgid "You cannot use this command when not in the voice channel." msgstr "您不能在语音频道中使用此命令。" -#: musicbot/bot.py:764 +#: musicbot/bot.py:766 #, python-format msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" msgstr "" -#: musicbot/bot.py:773 +#: musicbot/bot.py:775 #, python-format msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" msgstr "" -#: musicbot/bot.py:806 +#: musicbot/bot.py:808 msgid "MusicBot could not connect to the channel.\n" "Try again later, or restart the bot if this continues." msgstr "MusicBot 无法连接到频道。\n" "请稍后再尝试,如果继续,请重启机器人。" -#: musicbot/bot.py:830 +#: musicbot/bot.py:832 msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" msgstr "MusicBot 与语音的连接已取消。这是奇异的。可能要重新启动吗?" -#: musicbot/bot.py:840 +#: musicbot/bot.py:843 msgid "MusicBot does not have permission to speak." msgstr "MusicBot 没有发言权限。" -#: musicbot/bot.py:844 +#: musicbot/bot.py:847 msgid "MusicBot could not request to speak." msgstr "MusicBot 无法请求发言。" -#: musicbot/bot.py:1016 +#: musicbot/bot.py:1019 msgid "The bot is not in a voice channel.\n" "Use the summon command to bring the bot to your voice channel." msgstr "机器人不在语音频道。\n" "使用召唤命令将机器人带到您的语音频道。" -#: musicbot/bot.py:1028 +#: musicbot/bot.py:1031 msgid "Something is wrong, we didn't get the VoiceClient." msgstr "出错了,我们没有得到语音客户端。" -#: musicbot/bot.py:1084 +#: musicbot/bot.py:1087 #, python-format msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" msgstr "" -#: musicbot/bot.py:1102 +#: musicbot/bot.py:1105 #, python-format msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" msgstr "" -#: musicbot/bot.py:1111 +#: musicbot/bot.py:1114 #, python-format msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" msgstr "" -#: musicbot/bot.py:1122 +#: musicbot/bot.py:1125 #, python-format msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" msgstr "" -#: musicbot/bot.py:1333 +#: musicbot/bot.py:1336 #, python-format msgid "Skipping songs added by %(user)s as they are not in voice!" msgstr "" -#: musicbot/bot.py:1555 +#: musicbot/bot.py:1558 #, python-format msgid "Playback failed for song `%(song)s` due to an error:\n" "```\n" "%(error)s```" msgstr "" -#: musicbot/bot.py:1807 +#: musicbot/bot.py:1810 msgid "[Dev Bug] Tried sending an invalid response object." msgstr "[Dev Bug ] 试图发送无效的响应对象。" -#: musicbot/bot.py:2147 +#: musicbot/bot.py:2150 msgid "Failed Discord API Login!\n\n" "Problem:\n" " MusicBot could not log into Discord API.\n" @@ -124,59 +124,59 @@ msgid "Failed Discord API Login!\n\n" " Check API status at the official site: discordstatus.com" msgstr "" -#: musicbot/bot.py:2695 +#: musicbot/bot.py:2698 #, python-format msgid "The requested song `%(subject)s` is blocked by the song block list." msgstr "" -#: musicbot/bot.py:2831 +#: musicbot/bot.py:2834 msgid "Reset the auto playlist queue by copying it back into player memory.\n" "This command will be removed in a future version, replaced by the autoplaylist command(s)." msgstr "重置自动播放列表队列,将其复制到玩家内存中。\n" "此命令将在未来版本中被删除,替换为自动布局命令(s)。" -#: musicbot/bot.py:2846 +#: musicbot/bot.py:2849 msgid "\\N{OK HAND SIGN}" msgstr "\\N{OK HAND SIGN}" -#: musicbot/bot.py:2853 +#: musicbot/bot.py:2856 msgid "Show usage and description of a command, or list all available commands.\n" msgstr "显示命令的使用情况和描述,或列出所有可用的命令。\n" -#: musicbot/bot.py:2888 +#: musicbot/bot.py:2891 msgid "**Aliases for this command:**\n" msgstr "**此命令的别名:**\n" -#: musicbot/bot.py:2891 +#: musicbot/bot.py:2894 #, python-format msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" msgstr "" -#: musicbot/bot.py:2924 +#: musicbot/bot.py:2927 #, python-format msgid "**Alias of command:**\n" " `%(command)s`\n" msgstr "" #. TRANSLATORS: template string for command-specific help output. -#: musicbot/bot.py:2931 +#: musicbot/bot.py:2934 #, python-format msgid "%(is_alias)s\n" "%(docs)s\n" "%(alias_list)s" msgstr "" -#: musicbot/bot.py:2940 +#: musicbot/bot.py:2943 msgid "No such command" msgstr "没有这种命令" -#: musicbot/bot.py:2959 +#: musicbot/bot.py:2962 #, python-format msgid "The list above shows only commands permitted for your use.\n" "For a list of all commands, run: %(example_all)s\n" msgstr "" -#: musicbot/bot.py:2965 +#: musicbot/bot.py:2968 #, python-format msgid "**Commands by name:** *(without prefix)*\n" "```\n" @@ -187,85 +187,85 @@ msgid "**Commands by name:** *(without prefix)*\n" "%(all_note)s" msgstr "" -#: musicbot/bot.py:2984 +#: musicbot/bot.py:2987 msgid " Block a mentioned user." msgstr " 屏蔽提及的用户。" -#: musicbot/bot.py:2987 +#: musicbot/bot.py:2990 msgid " Unblock a mentioned user." msgstr " 取消屏蔽提及的用户。" -#: musicbot/bot.py:2990 +#: musicbot/bot.py:2993 msgid " Show the block status of a mentioned user." msgstr " 显示提及用户的方块状态。" -#: musicbot/bot.py:2994 +#: musicbot/bot.py:2997 msgid "Manage the users in the user block list.\n" "Blocked users are forbidden from using all bot commands.\n" msgstr "" -#: musicbot/bot.py:3016 +#: musicbot/bot.py:3019 msgid "You must mention a user or provide their ID number." msgstr "您必须提及用户或提供他们的身份号码。" -#: musicbot/bot.py:3021 +#: musicbot/bot.py:3024 msgid "Invalid sub-command given. Use `help blockuser` for usage examples." msgstr "给定的子命令无效。使用 \"help blockuser\" 作为使用示例。" -#: musicbot/bot.py:3032 +#: musicbot/bot.py:3035 msgid "MusicBot could not find the user(s) you specified." msgstr "MusicBot 无法找到您指定的用户。" -#: musicbot/bot.py:3039 +#: musicbot/bot.py:3042 msgid "The owner cannot be added to the block list." msgstr "所有者不能添加到方块列表。" -#: musicbot/bot.py:3059 +#: musicbot/bot.py:3062 msgid "User block list is currently enabled." msgstr "用户块列表当前已启用。" -#: musicbot/bot.py:3061 +#: musicbot/bot.py:3064 msgid "User block list is currently disabled." msgstr "用户块列表目前已禁用。" -#: musicbot/bot.py:3069 +#: musicbot/bot.py:3072 msgid "Cannot add the users you listed, they are already added." msgstr "无法添加您列出的用户,他们已经被添加。" -#: musicbot/bot.py:3078 +#: musicbot/bot.py:3081 #, python-format msgid "%(number)s user(s) have been added to the block list.\n" "%(status)s" msgstr "" -#: musicbot/bot.py:3089 +#: musicbot/bot.py:3092 msgid "None of those users are in the blacklist." msgstr "这些用户中没有一个在黑名单上。" -#: musicbot/bot.py:3094 +#: musicbot/bot.py:3097 #, python-format msgid "User: `%(user)s` is not blocked.\n" msgstr "" -#: musicbot/bot.py:3096 +#: musicbot/bot.py:3099 #, python-format msgid "User: `%(user)s` is blocked.\n" msgstr "" -#: musicbot/bot.py:3099 +#: musicbot/bot.py:3102 #, python-format msgid "**Block list status:**\n" "%(status)s\n" "%(users)s" msgstr "" -#: musicbot/bot.py:3109 +#: musicbot/bot.py:3112 #, python-format msgid "%(number)s user(s) have been removed from the block list.\n" "%(status)s" msgstr "" -#: musicbot/bot.py:3118 +#: musicbot/bot.py:3121 msgid "Manage a block list applied to song requests and extracted song data.\n" "A subject may be a song URL or a word or phrase found in the track title.\n" "If subject is omitted, any currently playing track URL will be added instead.\n\n" @@ -273,168 +273,168 @@ msgid "Manage a block list applied to song requests and extracted song data.\n" "This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" msgstr "" -#: musicbot/bot.py:3146 +#: musicbot/bot.py:3149 msgid "You must provide a song subject if no song is currently playing." msgstr "如果没有歌曲正在播放,您必须提供一个歌曲主题。" -#: musicbot/bot.py:3152 +#: musicbot/bot.py:3155 msgid "Invalid sub-command given. Use `help blocksong` for usage examples." msgstr "给定的子命令无效。使用 \"help blocksong\" 作为使用示例。" -#: musicbot/bot.py:3164 +#: musicbot/bot.py:3167 #, python-format msgid "Subject `%(subject)s` is already in the song block list." msgstr "" -#: musicbot/bot.py:3187 +#: musicbot/bot.py:3190 #, python-format msgid "Added subject `%(subject)s` to the song block list.\n" "%(status)s" msgstr "" -#: musicbot/bot.py:3196 +#: musicbot/bot.py:3199 msgid "The subject is not in the song block list and cannot be removed." msgstr "主题不在歌曲块列表中,无法删除。" -#: musicbot/bot.py:3204 +#: musicbot/bot.py:3207 #, python-format msgid "Subject `%(subject)s` has been removed from the block list.\n" "%(status)s" msgstr "" -#: musicbot/bot.py:3214 +#: musicbot/bot.py:3217 msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" msgstr " 添加或删除指定的歌曲或正在播放的歌曲到当前播放列表中。\n" -#: musicbot/bot.py:3217 +#: musicbot/bot.py:3220 msgid " Adds the entire queue to the guilds playlist.\n" msgstr " 将整个队列添加到公会播放列表。\n" -#: musicbot/bot.py:3220 +#: musicbot/bot.py:3223 msgid " Show a list of existing playlist files.\n" msgstr " 显示现有播放列表文件列表。\n" -#: musicbot/bot.py:3223 +#: musicbot/bot.py:3226 msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" msgstr " 重置自动播放列表队列,除非随机重启。\n" -#: musicbot/bot.py:3226 +#: musicbot/bot.py:3229 msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" msgstr " 设置这个公会的默认播放列表并重新加载公会自动播放列表。\n" -#: musicbot/bot.py:3229 +#: musicbot/bot.py:3232 msgid "Manage auto playlist files and per-guild settings." msgstr "管理自动播放列表文件和每个公会设置。" -#: musicbot/bot.py:3249 +#: musicbot/bot.py:3252 msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." msgstr "给定的子命令无效。使用 \"help autoplaylist\" 作为使用示例。" -#: musicbot/bot.py:3256 +#: musicbot/bot.py:3259 msgid "The supplied song link is invalid" msgstr "提供的歌曲链接无效" -#: musicbot/bot.py:3262 +#: musicbot/bot.py:3265 msgid "The queue is empty. Add some songs with a play command!" msgstr "队列为空。用播放命令添加一些歌曲!" -#: musicbot/bot.py:3273 +#: musicbot/bot.py:3276 msgid "All songs in the queue are already in the autoplaylist." msgstr "队列中的所有歌曲已经在自动播放列表中。" -#: musicbot/bot.py:3277 +#: musicbot/bot.py:3280 #, python-format msgid "Added %(number)d songs to the autoplaylist." msgstr "%(number)d 首歌曲添加到自动布局列表。" -#: musicbot/bot.py:3287 +#: musicbot/bot.py:3290 #, python-format msgid "Added `%(url)s` to the autoplaylist." msgstr "" -#: musicbot/bot.py:3290 +#: musicbot/bot.py:3293 msgid "This song is already in the autoplaylist." msgstr "这首歌已经在自动播放列表中。" -#: musicbot/bot.py:3304 +#: musicbot/bot.py:3307 #, python-format msgid "Removed `%(url)s` from the autoplaylist." msgstr "" -#: musicbot/bot.py:3307 +#: musicbot/bot.py:3310 msgid "This song is not yet in the autoplaylist." msgstr "这首歌尚未在自动播放列表中。" -#: musicbot/bot.py:3316 +#: musicbot/bot.py:3319 #, python-format msgid "Loaded a fresh copy of the playlist: `%(file)s`" msgstr "" -#: musicbot/bot.py:3327 +#: musicbot/bot.py:3330 #, python-format msgid "**Available Playlists:**\n" "%(names)s" msgstr "" -#: musicbot/bot.py:3337 +#: musicbot/bot.py:3340 msgid "You must provide a playlist filename." msgstr "您必须提供一个播放列表文件名。" -#: musicbot/bot.py:3357 +#: musicbot/bot.py:3360 msgid "\n" "This playlist is new, you must add songs to save it to disk!" msgstr "\n" "此播放列表是新的,您必须添加歌曲才能保存到磁盘!" -#: musicbot/bot.py:3362 +#: musicbot/bot.py:3365 #, python-format msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" msgstr "" -#: musicbot/bot.py:3373 +#: musicbot/bot.py:3376 msgid "Generate an invite link that can be used to add this bot to another server." msgstr "生成一个可用于将此机器人添加到另一个服务器的邀请链接。" -#: musicbot/bot.py:3385 +#: musicbot/bot.py:3388 #, python-format msgid "Click here to add me to a discord server:\n" "%(url)s" msgstr "" -#: musicbot/bot.py:3391 +#: musicbot/bot.py:3394 msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" "Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" msgstr "" -#: musicbot/bot.py:3403 +#: musicbot/bot.py:3406 msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." msgstr "\\N{OK HAND SIGN} Karaoke模式已启用。" -#: musicbot/bot.py:3405 +#: musicbot/bot.py:3408 msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." msgstr "\\N{OK HAND SIGN} Karaoke模式现已禁用。" -#: musicbot/bot.py:3428 +#: musicbot/bot.py:3431 msgid "You are not allowed to request playlists" msgstr "您无权请求播放列表" -#: musicbot/bot.py:3436 +#: musicbot/bot.py:3439 #, python-format msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" msgstr "" -#: musicbot/bot.py:3447 +#: musicbot/bot.py:3450 #, python-format msgid "The playlist entries will exceed your queue limit.\n" "There are %(songs)s in the list, and %(queued)s already in queue.\n" "The limit is %(max)s for your group." msgstr "" -#: musicbot/bot.py:3580 +#: musicbot/bot.py:3583 msgid "Bot was previously paused, resuming playback now." msgstr "帐号先前已暂停,现在恢复播放。" -#: musicbot/bot.py:3589 +#: musicbot/bot.py:3592 msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" "You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" "Playlist links will be extracted into multiple links and added to the queue.\n" @@ -442,240 +442,240 @@ msgid "Add a song to be played in the queue. If no song is playing or paused, pl "MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" msgstr "" -#: musicbot/bot.py:3628 +#: musicbot/bot.py:3631 msgid "Play command that shuffles playlist entries before adding them to the queue.\n" msgstr "" -#: musicbot/bot.py:3665 +#: musicbot/bot.py:3668 #, python-format msgid "Shuffled playlist items into the queue from `%(request)s`" msgstr "" -#: musicbot/bot.py:3672 +#: musicbot/bot.py:3675 msgid "A play command that adds the song as the next to play rather than last.\n" "Read help for the play command for information on supported inputs.\n" msgstr "" -#: musicbot/bot.py:3707 +#: musicbot/bot.py:3710 msgid "A play command which skips any current song and plays immediately.\n" "Read help for the play command for information on supported inputs.\n" msgstr "" -#: musicbot/bot.py:3744 +#: musicbot/bot.py:3747 msgid "Restarts the current song at the given time.\n" "If time starts with + or - seek will be relative to current playback time.\n" "Time should be given in seconds, fractional seconds are accepted.\n" "Due to codec specifics in ffmpeg, this may not be accurate.\n" msgstr "" -#: musicbot/bot.py:3764 +#: musicbot/bot.py:3767 msgid "Cannot use seek if there is nothing playing." msgstr "如果没有播放,无法使用寻找。" -#: musicbot/bot.py:3769 +#: musicbot/bot.py:3772 msgid "Cannot use seek on current track, it has an unknown duration." msgstr "无法在当前轨道上使用寻找,它有未知的持续时间。" -#: musicbot/bot.py:3775 +#: musicbot/bot.py:3778 msgid "Seeking is not supported for streams." msgstr "不支持搜索。" -#: musicbot/bot.py:3785 +#: musicbot/bot.py:3788 msgid "Cannot use seek without a time to position playback." msgstr "没有时间定位播放,无法使用搜索引擎。" -#: musicbot/bot.py:3803 +#: musicbot/bot.py:3806 #, python-format msgid "Could not convert `%(input)s` to a valid time in seconds." msgstr "" -#: musicbot/bot.py:3816 +#: musicbot/bot.py:3819 #, python-format msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" msgstr "" -#: musicbot/bot.py:3840 +#: musicbot/bot.py:3843 #, python-format msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." msgstr "" -#: musicbot/bot.py:3852 +#: musicbot/bot.py:3855 msgid "Toggles playlist or song looping.\n" "If no option is provided the current song will be repeated.\n" "If no option is provided and the song is already repeating, repeating will be turned off.\n" msgstr "" -#: musicbot/bot.py:3870 +#: musicbot/bot.py:3873 msgid "No songs are currently playing. Play something with a play command." msgstr "目前没有歌曲正在播放。播放一些带有播放命令的歌曲。" -#: musicbot/bot.py:3877 +#: musicbot/bot.py:3880 msgid "Invalid sub-command. Use the command `help repeat` for usage examples." msgstr "无效的子命令。使用命令“help repat”作为使用示例。" -#: musicbot/bot.py:3883 musicbot/bot.py:3920 +#: musicbot/bot.py:3886 musicbot/bot.py:3923 msgid "Playlist is now repeating." msgstr "播放列表正在重复。" -#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +#: musicbot/bot.py:3889 musicbot/bot.py:3916 musicbot/bot.py:3927 msgid "Playlist is no longer repeating." msgstr "播放列表已不再重复。" -#: musicbot/bot.py:3892 musicbot/bot.py:3901 +#: musicbot/bot.py:3895 musicbot/bot.py:3904 msgid "Player will now loop the current song." msgstr "播放器现在将循环当前歌曲。" -#: musicbot/bot.py:3894 musicbot/bot.py:3908 +#: musicbot/bot.py:3897 musicbot/bot.py:3911 msgid "Player will no longer loop the current song." msgstr "播放器将不再循环当前歌曲。" -#: musicbot/bot.py:3898 +#: musicbot/bot.py:3901 msgid "Player is already looping a song!" msgstr "玩家正在循环一首歌!" -#: musicbot/bot.py:3915 +#: musicbot/bot.py:3918 msgid "The player is not currently looping." msgstr "玩家目前没有循环中。" -#: musicbot/bot.py:3926 +#: musicbot/bot.py:3929 msgid "Song is no longer repeating." msgstr "歌曲已不再重复。" -#: musicbot/bot.py:3930 +#: musicbot/bot.py:3933 msgid "Song is now repeating." msgstr "歌曲现在重复了。" -#: musicbot/bot.py:3938 +#: musicbot/bot.py:3941 msgid " Move song at position FROM to position TO.\n" msgstr " 将歌曲放在方位上移动到方形位置,\n" -#: musicbot/bot.py:3942 +#: musicbot/bot.py:3945 msgid "Swap existing songs in the queue using their position numbers.\n" "Use the queue command to find track position numbers.\n" msgstr "" -#: musicbot/bot.py:3961 +#: musicbot/bot.py:3964 msgid "There are no songs queued. Play something with a play command." msgstr "没有播放队列的歌曲。播放一些带有播放命令的歌曲。" -#: musicbot/bot.py:3971 +#: musicbot/bot.py:3974 msgid "Song positions must be integers!" msgstr "歌曲位置必须是整数!" -#: musicbot/bot.py:3976 +#: musicbot/bot.py:3979 msgid "You gave a position outside the playlist size!" msgstr "您提供了一个超出播放列表大小的位置!" -#: musicbot/bot.py:3984 +#: musicbot/bot.py:3987 #, python-format msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" msgstr "" -#: musicbot/bot.py:4072 +#: musicbot/bot.py:4075 #, python-format msgid "This link contains a Playlist ID:\n" "`%(url)s`\n\n" "Do you want to queue the playlist too?" msgstr "" -#: musicbot/bot.py:4114 +#: musicbot/bot.py:4117 msgid "Local media playback is not enabled." msgstr "本地媒体播放未启用。" -#: musicbot/bot.py:4155 +#: musicbot/bot.py:4158 msgid "Spotify URL is invalid or not currently supported." msgstr "Spotify URL 无效或目前不支持。" -#: musicbot/bot.py:4159 +#: musicbot/bot.py:4162 msgid "Detected a Spotify URL, but Spotify is not enabled." msgstr "检测到 Spotify 网址,但Spotify 未启用。" -#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#: musicbot/bot.py:4172 musicbot/bot.py:4377 #, python-format msgid "You have reached your enqueued song limit (%(max)s)" msgstr "" -#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +#: musicbot/bot.py:4178 musicbot/bot.py:4383 musicbot/bot.py:4477 msgid "Karaoke mode is enabled, please try again when its disabled!" msgstr "Karaoke模式已启用,请禁用后再试一次!" -#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#: musicbot/bot.py:4194 musicbot/bot.py:4399 #, python-format msgid "Failed to extract info due to error:\n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:4197 +#: musicbot/bot.py:4200 msgid "That video cannot be played. Try using the stream command." msgstr "无法播放该视频。请尝试使用流命令。" -#: musicbot/bot.py:4208 +#: musicbot/bot.py:4211 #, python-format msgid "YouTube search returned no results for: %(url)s" msgstr "" -#: musicbot/bot.py:4249 +#: musicbot/bot.py:4252 #, python-format msgid "No songs were added, all songs were over max duration (%(max)s seconds)" msgstr "" -#: musicbot/bot.py:4254 +#: musicbot/bot.py:4257 #, python-format msgid "Enqueued **%(number)s** songs to be played.\n" "Position in queue: %(position)s" msgstr "" -#: musicbot/bot.py:4277 +#: musicbot/bot.py:4280 #, python-format msgid "Song duration exceeds limit (%(length)s > %(max)s)" msgstr "" -#: musicbot/bot.py:4289 +#: musicbot/bot.py:4292 #, python-format msgid "Enqueued `%(track)s` to be played.\n" "Position in queue: %(position)s" msgstr "" -#: musicbot/bot.py:4297 musicbot/bot.py:4312 +#: musicbot/bot.py:4300 musicbot/bot.py:4315 msgid "Playing next!" msgstr "接下来玩!" -#: musicbot/bot.py:4320 +#: musicbot/bot.py:4323 #, python-format msgid "%(position)s - estimated time until playing: `%(eta)s`" msgstr "" -#: musicbot/bot.py:4328 +#: musicbot/bot.py:4331 #, python-format msgid "%(position)s - cannot estimate time until playing." msgstr "" -#: musicbot/bot.py:4346 +#: musicbot/bot.py:4349 msgid "Add a media URL to the queue as a Stream.\n" "The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" "You can also use non-streamed media to play it without downloading it.\n" "Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" msgstr "" -#: musicbot/bot.py:4402 +#: musicbot/bot.py:4405 msgid "Streaming playlists is not yet supported." msgstr "尚不支持流播放列表。" -#: musicbot/bot.py:4419 +#: musicbot/bot.py:4422 #, python-format msgid "Now streaming track `%(track)s`" msgstr "" -#: musicbot/bot.py:4428 +#: musicbot/bot.py:4431 msgid " Search with service for a number of results with the search query.\n" msgstr " 通过搜索查询服务搜索一些结果。\n" -#: musicbot/bot.py:4432 +#: musicbot/bot.py:4435 msgid " Search YouTube for query but get a custom number of results.\n" " Note: the double-quotes are required in this case.\n" msgstr "" -#: musicbot/bot.py:4438 +#: musicbot/bot.py:4441 msgid "Search a supported service and select from results to add to queue.\n" "Service and number arguments can be omitted, default number is 3 results.\n" "Select from these services:\n" @@ -689,457 +689,457 @@ msgstr "搜索支持的服务并从结果中选择添加到队列。\n" "- sc, soundcloud\n" "- yh, yahoo\n" -#: musicbot/bot.py:4468 +#: musicbot/bot.py:4471 #, python-format msgid "You have reached your playlist item limit (%(max)s)" msgstr "" -#: musicbot/bot.py:4480 +#: musicbot/bot.py:4483 msgid "Please specify a search query. Use `help search` for more information." msgstr "请指定一个搜索查询。使用 \"help search \" 获取更多信息。" -#: musicbot/bot.py:4509 +#: musicbot/bot.py:4512 #, python-format msgid "You cannot search for more than %(max)s videos" msgstr "" -#: musicbot/bot.py:4532 +#: musicbot/bot.py:4535 msgid "Searching for videos..." msgstr "正在搜索视频..." -#: musicbot/bot.py:4554 +#: musicbot/bot.py:4557 #, python-format msgid "Search failed due to an error: %(error)s" msgstr "" -#: musicbot/bot.py:4566 +#: musicbot/bot.py:4569 msgid "No videos found." msgstr "未找到视频。" -#: musicbot/bot.py:4575 +#: musicbot/bot.py:4578 msgid "To select a song, type the corresponding number." msgstr "要选择歌曲,请输入相应的数字。" -#: musicbot/bot.py:4576 +#: musicbot/bot.py:4579 #, python-format msgid "Search results from %(service)s:" msgstr "" -#: musicbot/bot.py:4585 +#: musicbot/bot.py:4588 #, python-format msgid "**%(index)s**. **%(track)s** | %(length)s" msgstr "" -#: musicbot/bot.py:4594 +#: musicbot/bot.py:4597 msgid "\n" "**0**. Cancel" msgstr "\n" "**0**。取消" -#: musicbot/bot.py:4598 +#: musicbot/bot.py:4601 msgid "Pick a song" msgstr "选择一首歌曲" -#: musicbot/bot.py:4649 +#: musicbot/bot.py:4652 #, python-format msgid "Added song [%(track)s](%(url)s) to the queue." msgstr "" -#: musicbot/bot.py:4663 +#: musicbot/bot.py:4666 #, python-format msgid "Result %(number)s of %(total)s: %(url)s" msgstr "" -#: musicbot/bot.py:4713 +#: musicbot/bot.py:4716 msgid "Alright, coming right up!" msgstr "好吧,正在准备好!" -#: musicbot/bot.py:4725 +#: musicbot/bot.py:4728 msgid "Show information on what is currently playing." msgstr "显示当前正在播放的信息。" -#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +#: musicbot/bot.py:4780 musicbot/bot.py:6028 musicbot/bot.py:6060 msgid "[autoplaylist]" msgstr "[autoplaylist]" -#: musicbot/bot.py:4781 +#: musicbot/bot.py:4784 msgid "Now playing" msgstr "正在播放" -#: musicbot/bot.py:4784 +#: musicbot/bot.py:4787 msgid "Currently streaming:" msgstr "正在串流:" -#: musicbot/bot.py:4786 +#: musicbot/bot.py:4789 msgid "Currently playing:" msgstr "当前正在播放:" -#: musicbot/bot.py:4792 +#: musicbot/bot.py:4795 msgid "Added By:" msgstr "添加人:" -#: musicbot/bot.py:4793 +#: musicbot/bot.py:4796 #, python-format msgid "`%(user)s`" msgstr "" -#: musicbot/bot.py:4797 +#: musicbot/bot.py:4800 msgid "Progress:" msgstr "进度:" -#: musicbot/bot.py:4815 musicbot/bot.py:6004 +#: musicbot/bot.py:4818 musicbot/bot.py:6007 msgid "There are no songs queued! Queue something with a play command." msgstr "没有播放队列的歌曲!队列中有播放命令的歌曲。" -#: musicbot/bot.py:4818 +#: musicbot/bot.py:4821 msgid "Tell MusicBot to join the channel you're in." msgstr "告诉MusicBot 加入您所加入的频道。" -#: musicbot/bot.py:4841 +#: musicbot/bot.py:4844 msgid "You are not connected to voice. Try joining a voice channel!" msgstr "您没有连接到语音。请尝试加入一个语音频道!" -#: musicbot/bot.py:4876 +#: musicbot/bot.py:4879 #, python-format msgid "Connected to `%(channel)s`" msgstr "" -#: musicbot/bot.py:4882 +#: musicbot/bot.py:4885 msgid "Makes MusicBot follow a user when they change channels in a server.\n" msgstr "当用户更改服务器中的频道时,让MusicBot跟随用户。\n" -#: musicbot/bot.py:4905 +#: musicbot/bot.py:4908 #, python-format msgid "No longer following user `%(user)s`" msgstr "" -#: musicbot/bot.py:4915 +#: musicbot/bot.py:4918 #, python-format msgid "Now following user `%(user)s` between voice channels." msgstr "" -#: musicbot/bot.py:4928 +#: musicbot/bot.py:4931 msgid "MusicBot cannot follow a user that is not a member of the server." msgstr "MusicBot 不能关注不是服务器成员的用户。" -#: musicbot/bot.py:4935 +#: musicbot/bot.py:4938 #, python-format msgid "Will follow user `%(user)s` between voice channels." msgstr "" -#: musicbot/bot.py:4941 +#: musicbot/bot.py:4944 msgid "Pause playback if a track is currently playing." msgstr "如果有曲目正在播放,暂停播放。" -#: musicbot/bot.py:4952 +#: musicbot/bot.py:4955 #, python-format msgid "Paused music in `%(channel)s`" msgstr "" -#: musicbot/bot.py:4956 +#: musicbot/bot.py:4959 msgid "Player is not playing." msgstr "播放器未播放。" -#: musicbot/bot.py:4958 +#: musicbot/bot.py:4961 msgid "Resumes playback if the player was previously paused." msgstr "如果玩家先前暂停,恢复播放。" -#: musicbot/bot.py:4969 +#: musicbot/bot.py:4972 #, python-format msgid "Resumed music in `%(channel)s`" msgstr "" -#: musicbot/bot.py:4975 +#: musicbot/bot.py:4978 msgid "Resumed music queue" msgstr "继续音乐队列" -#: musicbot/bot.py:4977 +#: musicbot/bot.py:4980 msgid "Player is not paused." msgstr "玩家未暂停。" -#: musicbot/bot.py:4979 +#: musicbot/bot.py:4982 msgid "Shuffle all current tracks in the queue." msgstr "随机播放队列中所有当前曲目。" -#: musicbot/bot.py:5014 +#: musicbot/bot.py:5017 msgid "Shuffled all songs in the queue." msgstr "随机播放队列中的所有歌曲。" -#: musicbot/bot.py:5016 +#: musicbot/bot.py:5019 msgid "Removes all songs currently in the queue." msgstr "移除队列中的所有歌曲。" -#: musicbot/bot.py:5028 +#: musicbot/bot.py:5031 msgid "Cleared all songs from the queue." msgstr "清除队列中的所有歌曲。" -#: musicbot/bot.py:5033 +#: musicbot/bot.py:5036 msgid "Remove a song from the queue, optionally at the given queue position.\n" "If the position is omitted, the song at the end of the queue is removed.\n" "Use the queue command to find position number of your track.\n" "However, positions of all songs are changed when a new song starts playing.\n" msgstr "" -#: musicbot/bot.py:5053 +#: musicbot/bot.py:5056 msgid "Nothing in the queue to remove!" msgstr "队列中没有要移除的内容!" -#: musicbot/bot.py:5068 +#: musicbot/bot.py:5071 #, python-format msgid "Removed `%(track)s` added by `%(user)s`" msgstr "" -#: musicbot/bot.py:5074 +#: musicbot/bot.py:5077 #, python-format msgid "Nothing found in the queue from user `%(user)s`" msgstr "" -#: musicbot/bot.py:5079 musicbot/bot.py:5114 +#: musicbot/bot.py:5082 musicbot/bot.py:5117 msgid "You do not have the permission to remove that entry from the queue.\n" "You must be the one who queued it or have instant skip permissions." msgstr "您没有从队列中删除该项的权限。\n" "您必须是排队它或拥有即时跳过权限的人。" -#: musicbot/bot.py:5090 musicbot/bot.py:5095 +#: musicbot/bot.py:5093 musicbot/bot.py:5098 msgid "Invalid entry number. Use the queue command to find queue positions." msgstr "无效的条目编号。使用队列命令来查找队列位置。" -#: musicbot/bot.py:5105 +#: musicbot/bot.py:5108 #, python-format msgid "Removed entry `%(track)s` added by `%(user)s`" msgstr "" -#: musicbot/bot.py:5110 +#: musicbot/bot.py:5113 #, python-format msgid "Removed entry `%(track)s`" msgstr "" -#: musicbot/bot.py:5121 +#: musicbot/bot.py:5124 msgid "Skip or vote to skip the current playing song.\n" "Members with InstaSkip permission may use force parameter to bypass voting.\n" "If LegacySkip option is enabled, the force parameter can be ignored.\n" msgstr "" -#: musicbot/bot.py:5145 +#: musicbot/bot.py:5148 msgid "Can't skip! The player is not playing!" msgstr "无法跳过!玩家没有在玩!" -#: musicbot/bot.py:5153 +#: musicbot/bot.py:5156 #, python-format msgid "The next song `%(track)s` is downloading, please wait." msgstr "" -#: musicbot/bot.py:5161 +#: musicbot/bot.py:5164 msgid "The next song will be played shortly. Please wait." msgstr "下一首歌即将播放,请稍候。" -#: musicbot/bot.py:5166 +#: musicbot/bot.py:5169 msgid "Something odd is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "" -#: musicbot/bot.py:5173 +#: musicbot/bot.py:5176 msgid "Something strange is happening.\n" "You might want to restart the bot if it doesn't start working." msgstr "" -#: musicbot/bot.py:5197 +#: musicbot/bot.py:5200 msgid "You do not have permission to force skip a looped song." msgstr "您没有权限强制跳过循环歌曲。" -#: musicbot/bot.py:5211 +#: musicbot/bot.py:5214 #, python-format msgid "Force skipped `%(track)s`." msgstr "" -#: musicbot/bot.py:5216 +#: musicbot/bot.py:5219 msgid "You do not have permission to force skip." msgstr "您没有强制跳过的权限。" -#: musicbot/bot.py:5253 musicbot/bot.py:5286 +#: musicbot/bot.py:5256 musicbot/bot.py:5289 msgid "You do not have permission to skip a looped song." msgstr "您没有权限跳过循环歌曲。" -#: musicbot/bot.py:5269 +#: musicbot/bot.py:5272 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "The vote to skip has been passed.%(next_up)s" msgstr "" -#: musicbot/bot.py:5276 +#: musicbot/bot.py:5279 msgid " Next song coming up!" msgstr " 下一首歌即将开始!" -#: musicbot/bot.py:5293 +#: musicbot/bot.py:5296 #, python-format msgid "Your skip for `%(track)s` was acknowledged.\n" "Need **%(votes)s** more vote(s) to skip this song." msgstr "" -#: musicbot/bot.py:5306 +#: musicbot/bot.py:5309 msgid "Set the output volume level of MusicBot from 1 to 100.\n" "Volume parameter allows a leading + or - for relative adjustments.\n" "The volume setting is retained until MusicBot is restarted.\n" msgstr "" -#: musicbot/bot.py:5323 +#: musicbot/bot.py:5326 #, python-format msgid "Current volume: `%(volume)s%%`" msgstr "" -#: musicbot/bot.py:5336 +#: musicbot/bot.py:5339 #, python-format msgid "`%(new_volume)s` is not a valid number" msgstr "" -#: musicbot/bot.py:5351 +#: musicbot/bot.py:5354 #, python-format msgid "Updated volume from **%(old)d** to **%(new)d**" msgstr "音量从 **%(old)d** 更新到 **%(new)d" -#: musicbot/bot.py:5357 +#: musicbot/bot.py:5360 #, python-format msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" "Volume can only be set from 1 to 100." msgstr "" -#: musicbot/bot.py:5367 +#: musicbot/bot.py:5370 #, python-format msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." msgstr "" -#: musicbot/bot.py:5374 +#: musicbot/bot.py:5377 msgid "Change the playback speed of the currently playing track only.\n" "The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" "Streaming playback does not support speed adjustments.\n" msgstr "" -#: musicbot/bot.py:5391 +#: musicbot/bot.py:5394 msgid "No track is playing, cannot set speed.\n" "Use the config command to set a default playback speed." msgstr "没有音轨在播放,无法设置速度。\n" "使用配置命令设置默认播放速度。" -#: musicbot/bot.py:5399 +#: musicbot/bot.py:5402 msgid "Speed cannot be applied to streamed media." msgstr "速度不能应用于流媒体。" -#: musicbot/bot.py:5404 +#: musicbot/bot.py:5407 msgid "You must provide a speed to set." msgstr "您必须提供一个速度来设置。" -#: musicbot/bot.py:5413 +#: musicbot/bot.py:5416 msgid "The speed you provided is invalid. Use a number between 0.5 and 100." msgstr "您提供的速度无效。请使用0.5 至 100之间的数字。" -#: musicbot/bot.py:5432 +#: musicbot/bot.py:5435 #, python-format msgid "Setting playback speed to `%(speed).3f` for current track." msgstr "" -#: musicbot/bot.py:5441 +#: musicbot/bot.py:5444 msgid " Add an new alias with optional arguments.\n" msgstr " 添加可选参数的新别名。\n" -#: musicbot/bot.py:5444 +#: musicbot/bot.py:5447 msgid " Remove an alias with the given name." msgstr " 删除给定名称的别名。" -#: musicbot/bot.py:5447 +#: musicbot/bot.py:5450 msgid " Reload or save aliases from/to the config file." msgstr " 从配置文件重新加载或保存别名。" -#: musicbot/bot.py:5451 +#: musicbot/bot.py:5454 msgid "Allows management of aliases from discord. To see aliases use the help command." msgstr "允许管理不一致的别名。要查看别名,请使用帮助命令。" -#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#: musicbot/bot.py:5474 musicbot/bot.py:5590 musicbot/bot.py:6520 #, python-format msgid "Invalid option for command: `%(option)s`" msgstr "" -#: musicbot/bot.py:5477 +#: musicbot/bot.py:5480 msgid "Aliases reloaded from config file." msgstr "已从配置文件重新加载别名。" -#: musicbot/bot.py:5482 +#: musicbot/bot.py:5485 msgid "Aliases saved to config file." msgstr "别名保存到配置文件。" -#: musicbot/bot.py:5485 +#: musicbot/bot.py:5488 #, python-format msgid "Failed to save aliases due to error:\n" "`%(raw_error)s`" msgstr "" -#: musicbot/bot.py:5492 +#: musicbot/bot.py:5495 msgid "You must supply an alias and a command to alias" msgstr "您必须为别名提供别名和命令" -#: musicbot/bot.py:5498 +#: musicbot/bot.py:5501 #, python-format msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" msgstr "" -#: musicbot/bot.py:5507 +#: musicbot/bot.py:5510 msgid "You must supply an alias name to remove." msgstr "您必须提供一个别名来移除。" -#: musicbot/bot.py:5512 +#: musicbot/bot.py:5515 #, python-format msgid "The alias `%(alias)s` does not exist." msgstr "" -#: musicbot/bot.py:5518 +#: musicbot/bot.py:5521 #, python-format msgid "Alias `%(alias)s` was removed." msgstr "" -#: musicbot/bot.py:5528 +#: musicbot/bot.py:5531 msgid " Shows help text about any missing config options.\n" msgstr " 显示任何缺失配置选项的帮助文本。\n" -#: musicbot/bot.py:5531 +#: musicbot/bot.py:5534 msgid " Lists the names of options which have been changed since loading config file.\n" msgstr "" -#: musicbot/bot.py:5534 +#: musicbot/bot.py:5537 msgid " List the available config options and their sections.\n" msgstr " 列出可用的配置选项及其章节。\n" -#: musicbot/bot.py:5537 +#: musicbot/bot.py:5540 msgid " Reload the options.ini file from disk.\n" msgstr " 从磁盘重新加载options.ini 文件。\n" -#: musicbot/bot.py:5540 +#: musicbot/bot.py:5543 msgid " Shows help text for a specific option.\n" msgstr " 显示特定选项的帮助文本。\n" -#: musicbot/bot.py:5543 +#: musicbot/bot.py:5546 msgid " Display the current value of the option.\n" msgstr " 显示选项的当前值。\n" -#: musicbot/bot.py:5546 +#: musicbot/bot.py:5549 msgid " Saves the current value to the options file.\n" msgstr " 将当前值保存到选项文件。\n" -#: musicbot/bot.py:5549 +#: musicbot/bot.py:5552 msgid " Validates the option and sets the config for the session, but not to file.\n" msgstr " 验证选项并设置会话配置,但不设置为文件。\n" -#: musicbot/bot.py:5552 +#: musicbot/bot.py:5555 msgid " Reset the option to its default value.\n" msgstr " 重置选项为默认值。\n" -#: musicbot/bot.py:5555 +#: musicbot/bot.py:5558 msgid "Manage options.ini configuration from within Discord." msgstr "从 Discord 内部管理options.ini 配置。" -#: musicbot/bot.py:5570 +#: musicbot/bot.py:5573 msgid "Config cannot use channel and user mentions at the same time." msgstr "配置不能同时使用频道和用户提到。" -#: musicbot/bot.py:5596 +#: musicbot/bot.py:5599 #, python-format msgid "**Missing Option:** `%(config)s`\n" "```\n" @@ -1147,21 +1147,21 @@ msgid "**Missing Option:** `%(config)s`\n" "Default is set to: %(default)s```\n" msgstr "" -#: musicbot/bot.py:5609 +#: musicbot/bot.py:5612 msgid "*All config options are present and accounted for!*" msgstr "*所有配置选项都已存在并已核算!*" -#: musicbot/bot.py:5625 +#: musicbot/bot.py:5628 msgid "No config options appear to be changed." msgstr "没有配置选项被更改。" -#: musicbot/bot.py:5627 +#: musicbot/bot.py:5630 #, python-format msgid "**Changed Options:**\n" "%(changed)s" msgstr "" -#: musicbot/bot.py:5647 +#: musicbot/bot.py:5650 #, python-format msgid "## Available Options:\n" "**Editable Options:**\n" @@ -1170,154 +1170,154 @@ msgid "## Available Options:\n" "%(manual)s" msgstr "" -#: musicbot/bot.py:5669 +#: musicbot/bot.py:5672 msgid "Config options reloaded from file successfully!" msgstr "配置选项从文件重新加载成功!" -#: musicbot/bot.py:5673 +#: musicbot/bot.py:5676 #, python-format msgid "Unable to reload Config due to the following error:\n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:5691 +#: musicbot/bot.py:5694 msgid "Could not resolve section name from option name. Please provide a valid section and option name." msgstr "无法解析选项名称中的部分名称。请提供一个有效的部分和选项名称。" -#: musicbot/bot.py:5695 +#: musicbot/bot.py:5698 msgid "The option given is ambiguous, please provide a section name." msgstr "给定的选项含混,请提供一个章节名称。" -#: musicbot/bot.py:5701 +#: musicbot/bot.py:5704 msgid "You must provide a section name and option name for this command." msgstr "您必须提供此命令的部分名称和选项名称。" -#: musicbot/bot.py:5717 +#: musicbot/bot.py:5720 #, python-format msgid "The section `%(section)s` is not available.\n" "The available sections are: %(sections)s" msgstr "" -#: musicbot/bot.py:5725 +#: musicbot/bot.py:5728 #, python-format msgid "The option `%(option)s` is not available." msgstr "" -#: musicbot/bot.py:5733 +#: musicbot/bot.py:5736 msgid "This option can only be set by editing the config file." msgstr "此选项只能通过编辑配置文件来设置。" -#: musicbot/bot.py:5737 +#: musicbot/bot.py:5740 #, python-format msgid "By default this option is set to: %(default)s" msgstr "" -#: musicbot/bot.py:5742 +#: musicbot/bot.py:5745 #, python-format msgid "**Option:** `%(config)s`\n" "%(comment)s\n\n" "%(default)s" msgstr "" -#: musicbot/bot.py:5753 +#: musicbot/bot.py:5756 #, python-format msgid "Option `%(option)s` is not editable. Cannot save to disk." msgstr "" -#: musicbot/bot.py:5762 +#: musicbot/bot.py:5765 #, python-format msgid "Failed to save the option: `%(option)s`" msgstr "" -#: musicbot/bot.py:5767 +#: musicbot/bot.py:5770 #, python-format msgid "Successfully saved the option: `%(config)s`" msgstr "" -#: musicbot/bot.py:5777 +#: musicbot/bot.py:5780 #, python-format msgid "Option `%(option)s` is not editable, value cannot be displayed." msgstr "" -#: musicbot/bot.py:5784 +#: musicbot/bot.py:5787 #, python-format msgid "**Option:** `%(config)s`\n" "Current Value: `%(loaded)s`\n" "INI File Value: `%(ini)s`" msgstr "" -#: musicbot/bot.py:5800 +#: musicbot/bot.py:5803 #, python-format msgid "Option `%(option)s` is not editable. Cannot update setting." msgstr "" -#: musicbot/bot.py:5806 musicbot/bot.py:6732 +#: musicbot/bot.py:5809 musicbot/bot.py:6733 msgid "You must provide a section, option, and value for this sub command." msgstr "您必须为此子命令提供一个章节、选项和值。" -#: musicbot/bot.py:5817 +#: musicbot/bot.py:5820 #, python-format msgid "Option `%(option)s` was not updated!" msgstr "" -#: musicbot/bot.py:5822 +#: musicbot/bot.py:5825 #, python-format msgid "Option `%(config)s` was updated for this session.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "" -#: musicbot/bot.py:5833 +#: musicbot/bot.py:5836 #, python-format msgid "Option `%(option)s` is not editable. Cannot reset to default." msgstr "" -#: musicbot/bot.py:5852 +#: musicbot/bot.py:5855 #, python-format msgid "Option `%(option)s` was not reset to default!" msgstr "" -#: musicbot/bot.py:5857 +#: musicbot/bot.py:5860 #, python-format msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" "To save the change use `config save %(section)s %(option)s`" msgstr "" -#: musicbot/bot.py:5872 +#: musicbot/bot.py:5875 msgid "Deprecated command, use the config command instead." msgstr "已废弃的命令,改用配置命令。" -#: musicbot/bot.py:5885 +#: musicbot/bot.py:5888 msgid "The option command is deprecated, use the config command instead." msgstr "选项命令已废弃,请使用配置命令。" -#: musicbot/bot.py:5892 +#: musicbot/bot.py:5895 msgid "Display information about cache storage or clear cache according to configured limits.\n" "Using update option will scan the cache for external changes before displaying details." msgstr "显示缓存信息或清除缓存根据配置的限制。\n" "使用更新选项将在显示详细信息之前扫描缓存进行外部更改。" -#: musicbot/bot.py:5905 +#: musicbot/bot.py:5908 msgid "Invalid option specified, use: info, update, or clear" msgstr "指定的选项无效,使用:信息、更新或清除" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Disabled" msgstr "已禁用" -#: musicbot/bot.py:5916 +#: musicbot/bot.py:5919 msgid "Enabled" msgstr "已启用" -#: musicbot/bot.py:5919 +#: musicbot/bot.py:5922 #, python-format msgid "%(time)s days" msgstr "" -#: musicbot/bot.py:5925 musicbot/bot.py:5928 +#: musicbot/bot.py:5928 musicbot/bot.py:5931 msgid "Unlimited" msgstr "无限制" -#: musicbot/bot.py:5933 +#: musicbot/bot.py:5936 #, python-format msgid "**Video Cache:** *%(state)s*\n" "**Storage Limit:** *%(size)s*\n" @@ -1325,155 +1325,155 @@ msgid "**Video Cache:** *%(state)s*\n" "**Cached Now: %(used)s in %(files)s file(s)." msgstr "" -#: musicbot/bot.py:5956 +#: musicbot/bot.py:5959 msgid "Cache has been cleared." msgstr "缓存已清除。" -#: musicbot/bot.py:5962 +#: musicbot/bot.py:5965 msgid "**Failed** to delete cache, check logs for more info..." msgstr "**删除缓存失败,请检查日志获取更多信息..." -#: musicbot/bot.py:5965 +#: musicbot/bot.py:5968 msgid "No cache found to clear." msgstr "没有找到要清除的缓存。" -#: musicbot/bot.py:5973 +#: musicbot/bot.py:5976 msgid "Display information about the current player queue.\n" "Optional page number shows later entries in the queue.\n" msgstr "" -#: musicbot/bot.py:5997 +#: musicbot/bot.py:6000 msgid "Queue page argument must be a whole number." msgstr "队列页面参数必须是一个整数。" -#: musicbot/bot.py:6013 +#: musicbot/bot.py:6014 #, python-format msgid "Requested page number is out of bounds.\n" "There are **%(total)s** pages." msgstr "" -#: musicbot/bot.py:6025 +#: musicbot/bot.py:6026 msgid "(unknown duration)" msgstr "(未知持续时间)" -#: musicbot/bot.py:6034 +#: musicbot/bot.py:6035 #, python-format msgid "Currently playing: `%(title)s`\n" "Added by: `%(user)s`\n" "Progress: `[%(progress)s/%(total)s]`\n" msgstr "" -#: musicbot/bot.py:6064 +#: musicbot/bot.py:6065 #, python-format msgid "**Entry #%(index)s:**Title: `%(title)s`\n" "Added by: `%(user)s\n\n" msgstr "" -#: musicbot/bot.py:6072 +#: musicbot/bot.py:6073 #, python-format msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" "Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" "%(tracks)s" msgstr "" -#: musicbot/bot.py:6085 +#: musicbot/bot.py:6086 msgid "Songs in queue" msgstr "队列中的歌曲" -#: musicbot/bot.py:6105 +#: musicbot/bot.py:6106 msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" "If the issue persists, file a bug report." msgstr "" -#: musicbot/bot.py:6156 +#: musicbot/bot.py:6157 msgid "Search for and remove bot messages and commands from the calling text channel.\n" "Optionally supply a number of messages to search through, 50 by default 500 max.\n" "This command may be slow if larger ranges are given.\n" msgstr "" -#: musicbot/bot.py:6180 +#: musicbot/bot.py:6181 msgid "Invalid parameter. Please provide a number of messages to search." msgstr "参数无效。请提供一些要搜索的消息。" -#: musicbot/bot.py:6215 +#: musicbot/bot.py:6216 msgid "Cannot use purge on private DM channel." msgstr "无法在私有DM频道上使用净化。" -#: musicbot/bot.py:6222 +#: musicbot/bot.py:6223 #, python-format msgid "Cleaned up %(number)s message(s)." msgstr "" -#: musicbot/bot.py:6226 +#: musicbot/bot.py:6227 msgid "Bot does not have permission to manage messages." msgstr "机器人没有管理信件的权限。" -#: musicbot/bot.py:6231 +#: musicbot/bot.py:6232 msgid "Dump the individual URLs of a playlist to a file." msgstr "将播放列表中的单个URL转储到一个文件。" -#: musicbot/bot.py:6247 +#: musicbot/bot.py:6248 msgid "The given URL was not a valid URL." msgstr "给定的 URL 不是有效的 URL。" -#: musicbot/bot.py:6257 +#: musicbot/bot.py:6258 #, python-format msgid "Could not extract info from input url\n" "%(raw_error)s\n" msgstr "" -#: musicbot/bot.py:6262 +#: musicbot/bot.py:6263 msgid "This does not seem to be a playlist." msgstr "这似乎不是一个播放列表。" -#: musicbot/bot.py:6282 +#: musicbot/bot.py:6283 #, python-format msgid "Here is the playlist dump for: %(url)s" msgstr "" -#: musicbot/bot.py:6292 +#: musicbot/bot.py:6293 msgid "Display your Discord User ID, or the ID of a mentioned user.\n" "This command is deprecated in favor of Developer Mode in Discord clients.\n" msgstr "" -#: musicbot/bot.py:6307 +#: musicbot/bot.py:6308 #, python-format msgid "Your user ID is `%(id)s`" msgstr "" -#: musicbot/bot.py:6312 +#: musicbot/bot.py:6313 #, python-format msgid "The user ID for `%(username)s` is `%(id)s`" msgstr "" -#: musicbot/bot.py:6319 +#: musicbot/bot.py:6320 msgid "List the Discord IDs for the selected category.\n" "Returns all ID data by default, but one or more categories may be selected.\n" "This command is deprecated in favor of using Developer mode in Discord clients.\n" msgstr "" -#: musicbot/bot.py:6341 +#: musicbot/bot.py:6342 #, python-format msgid "Valid categories: %(cats)s" msgstr "" -#: musicbot/bot.py:6388 +#: musicbot/bot.py:6389 msgid "Here are the IDs you requested:" msgstr "这里是您请求的ID:" -#: musicbot/bot.py:6395 +#: musicbot/bot.py:6396 msgid "Get a list of your permissions, or the permissions of the mentioned user." msgstr "获取您的权限列表或上述用户的权限。" -#: musicbot/bot.py:6425 +#: musicbot/bot.py:6426 msgid "Invalid user ID or server nickname, please double-check the ID and try again." msgstr "无效的用户ID或服务器昵称,请重新检查ID,然后重试。" -#: musicbot/bot.py:6432 +#: musicbot/bot.py:6433 msgid "Could not determine the discord User. Try again." msgstr "无法确定 Discord 用户,请重试。" -#: musicbot/bot.py:6439 +#: musicbot/bot.py:6440 #, python-format msgid "Your command permissions in %(server)s are:\n" "```\n" @@ -1481,7 +1481,7 @@ msgid "Your command permissions in %(server)s are:\n" "```" msgstr "" -#: musicbot/bot.py:6448 +#: musicbot/bot.py:6449 #, python-format msgid "The command permissions for %(username)s in %(server)s are:\n" "```\n" @@ -1489,57 +1489,57 @@ msgid "The command permissions for %(username)s in %(server)s are:\n" "```" msgstr "" -#: musicbot/bot.py:6464 +#: musicbot/bot.py:6465 msgid " Show loaded groups and list permission options.\n" msgstr " 显示加载组并列出权限选项。\n" -#: musicbot/bot.py:6467 +#: musicbot/bot.py:6468 msgid " Reloads permissions from the permissions.ini file.\n" msgstr " 从 permissions.ini 文件重新加载权限。\n" -#: musicbot/bot.py:6470 +#: musicbot/bot.py:6471 msgid " Add new group with defaults.\n" msgstr " 添加新组为默认值。\n" -#: musicbot/bot.py:6473 +#: musicbot/bot.py:6474 msgid " Remove existing group.\n" msgstr " 删除现有群组。\n" -#: musicbot/bot.py:6476 +#: musicbot/bot.py:6477 msgid " Show help text for the permission option.\n" msgstr " 显示权限选项的帮助文本。\n" -#: musicbot/bot.py:6479 +#: musicbot/bot.py:6480 msgid " Show permission value for given group and permission.\n" msgstr " 显示给定组的权限值和权限。\n" -#: musicbot/bot.py:6482 +#: musicbot/bot.py:6483 msgid " Save permissions group to file.\n" msgstr " 保存权限组到文件。\n" -#: musicbot/bot.py:6485 +#: musicbot/bot.py:6486 msgid " Set permission value for the group.\n" msgstr " 设置群组的权限值。\n" -#: musicbot/bot.py:6488 +#: musicbot/bot.py:6489 msgid "Manage permissions.ini configuration from within discord." msgstr "从 discord内部管理权限.ini 配置。" -#: musicbot/bot.py:6503 +#: musicbot/bot.py:6504 msgid "Permissions cannot use channel and user mentions at the same time." msgstr "权限不能同时使用频道和用户提到。" -#: musicbot/bot.py:6534 +#: musicbot/bot.py:6535 msgid "Permissions reloaded from file successfully!" msgstr "从文件重新加载权限成功!" -#: musicbot/bot.py:6538 +#: musicbot/bot.py:6539 #, python-format msgid "Unable to reload Permissions due to an error:\n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:6558 +#: musicbot/bot.py:6559 #, python-format msgid "## Available Groups:\n" "%(groups)s\n" @@ -1547,344 +1547,391 @@ msgid "## Available Groups:\n" "%(options)s\n" msgstr "" -#: musicbot/bot.py:6575 +#: musicbot/bot.py:6576 msgid "You must provide a group or option name for this command." msgstr "您必须为此命令提供一个组或选项名称。" -#: musicbot/bot.py:6579 +#: musicbot/bot.py:6580 msgid "You must provide a group, option, and value to set for this command." msgstr "您必须为此命令设置一个组、选项和值。" -#: musicbot/bot.py:6593 +#: musicbot/bot.py:6594 #, python-format msgid "The %(option)s sub-command requires a group and permission name." msgstr "" -#: musicbot/bot.py:6605 +#: musicbot/bot.py:6606 #, python-format msgid "The group `%(group)s` is not available.\n" "The available groups are: %(sections)s" msgstr "" -#: musicbot/bot.py:6616 +#: musicbot/bot.py:6617 #, python-format msgid "The permission `%(option)s` is not available." msgstr "" -#: musicbot/bot.py:6624 +#: musicbot/bot.py:6625 msgid "This permission can only be set by editing the permissions file." msgstr "此权限只能通过编辑权限文件来设置。" -#: musicbot/bot.py:6633 +#: musicbot/bot.py:6634 #, python-format msgid "By default this permission is set to: `%(value)s`" msgstr "" -#: musicbot/bot.py:6638 +#: musicbot/bot.py:6639 #, python-format msgid "**Permission:** `%(option)s`\n" "%(comment)s\n\n" "%(default)s" msgstr "" -#: musicbot/bot.py:6652 +#: musicbot/bot.py:6653 #, python-format msgid "Cannot add group `%(group)s` it already exists." msgstr "" -#: musicbot/bot.py:6660 +#: musicbot/bot.py:6661 #, python-format msgid "Successfully added new group: `%(group)s`\n" "You can now customize the permissions with: `setperms set %(group)s`\n" "Make sure to save the new group with: `setperms save %(group)s`" msgstr "" -#: musicbot/bot.py:6670 +#: musicbot/bot.py:6671 msgid "Cannot remove built-in group." msgstr "无法删除内置组。" -#: musicbot/bot.py:6677 +#: musicbot/bot.py:6678 #, python-format msgid "Successfully removed group: `%(group)s`\n" "Make sure to save this change with: `setperms save %(group)s`" msgstr "" -#: musicbot/bot.py:6688 musicbot/bot.py:6727 +#: musicbot/bot.py:6689 musicbot/bot.py:6728 msgid "The owner group is not editable." msgstr "所有者群组不可编辑。" -#: musicbot/bot.py:6696 +#: musicbot/bot.py:6697 #, python-format msgid "Failed to save the group: `%(group)s`" msgstr "" -#: musicbot/bot.py:6700 +#: musicbot/bot.py:6701 #, python-format msgid "Successfully saved the group: `%(group)s`" msgstr "" -#: musicbot/bot.py:6711 +#: musicbot/bot.py:6712 #, python-format msgid "**Permission:** `%(permission)s`\n" "Current Value: `%(loaded)s`\n" "INI File Value: `%(ini)s`" msgstr "" -#: musicbot/bot.py:6743 +#: musicbot/bot.py:6744 #, python-format msgid "Permission `%(option)s` was not updated!" msgstr "" -#: musicbot/bot.py:6748 +#: musicbot/bot.py:6749 #, python-format msgid "Permission `%(permission)s` was updated for this session.\n" "To save the change use `setperms save %(section)s %(option)s`" msgstr "" -#: musicbot/bot.py:6765 +#: musicbot/bot.py:6766 msgid "Change the bot's username on discord.\n" "Note: The API may limit name changes to twice per hour." msgstr "在 discord上更改机器人的用户名。\n" "注意:API 可能限制每小时更改两次。" -#: musicbot/bot.py:6784 +#: musicbot/bot.py:6785 msgid "Failed to change username. Did you change names too many times?\n" "Remember name changes are limited to twice per hour.\n" msgstr "" -#: musicbot/bot.py:6790 +#: musicbot/bot.py:6791 #, python-format msgid "Failed to change username due to error: \n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:6795 +#: musicbot/bot.py:6796 #, python-format msgid "Set the bot's username to `%(name)s`" msgstr "" -#: musicbot/bot.py:6798 +#: musicbot/bot.py:6799 msgid "Change the MusicBot's nickname." msgstr "更改 MusicBot 的昵称。" -#: musicbot/bot.py:6812 +#: musicbot/bot.py:6813 msgid "Unable to change nickname: no permission." msgstr "无法更改昵称:没有权限。" -#: musicbot/bot.py:6820 +#: musicbot/bot.py:6821 #, python-format msgid "Failed to set nickname due to error: \n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:6825 +#: musicbot/bot.py:6826 #, python-format msgid "Set the bot's nickname to `%(nick)s`" msgstr "" -#: musicbot/bot.py:6832 +#: musicbot/bot.py:6833 msgid " Set a per-server command prefix." msgstr " 设置每个服务器的命令前缀。" -#: musicbot/bot.py:6834 +#: musicbot/bot.py:6835 msgid " Clear the per-server command prefix." msgstr " 清除每个服务器命令前缀。" -#: musicbot/bot.py:6838 +#: musicbot/bot.py:6839 msgid "Override the default command prefix in the server.\n" "The option EnablePrefixPerGuild must be enabled first." msgstr "覆盖服务器上的默认命令前缀。\n" "必须首先启用启用启用前缀权限的选项。" -#: musicbot/bot.py:6860 +#: musicbot/bot.py:6861 msgid "Custom emoji must be from this server to use as a prefix." msgstr "自定义表情必须来自此服务器才能用作前缀。" -#: musicbot/bot.py:6866 +#: musicbot/bot.py:6867 msgid "Server command prefix is cleared." msgstr "服务器命令前缀已被清除。" -#: musicbot/bot.py:6871 +#: musicbot/bot.py:6872 #, python-format msgid "Server command prefix is now: %(prefix)s" msgstr "" -#: musicbot/bot.py:6877 +#: musicbot/bot.py:6878 msgid "Prefix per server is not enabled!\n" "Use the config command to update the prefix instead." msgstr "每个服务器的前缀未启用!\n" "使用配置命令来更新前缀。" -#: musicbot/bot.py:6885 +#: musicbot/bot.py:6886 +msgid " Show language codes available to use.\n" +msgstr " 显示可用的语言代码。\n" + +#: musicbot/bot.py:6889 +msgid " Set the desired language for this server.\n" +msgstr " 为此服务器设置所需的语言。\n" + +#: musicbot/bot.py:6892 +msgid " Reset the server language to bot's default language.\n" +msgstr " 重置服务器语言为机器人的默认语言。\n" + +#: musicbot/bot.py:6895 +msgid "Manage the language used for messages in the calling server." +msgstr "管理通话服务器中用于邮件的语言。" + +#: musicbot/bot.py:6908 +msgid "This command can only be used in guilds." +msgstr "此命令只能用于公会。" + +#: musicbot/bot.py:6913 +msgid "Invalid sub-command given. Use the help command for more information." +msgstr "给定的子命令无效。请使用帮助命令获取更多信息。" + +#: musicbot/bot.py:6924 +#, python-format +msgid "**Current Language:** `%(locale)s`\n" +"**Available Languages:**\n" +"```\n" +"%(languages)s```" +msgstr "" + +#: musicbot/bot.py:6934 +#, python-format +msgid "Cannot set language to `%(locale)s` it is not available." +msgstr "" + +#: musicbot/bot.py:6939 +#, python-format +msgid "Language for this server now set to: `%(locale)s`" +msgstr "" + +#: musicbot/bot.py:6947 +#, python-format +msgid "Language for this server has been reset to: `%(locale)s`" +msgstr "" + +#: musicbot/bot.py:6959 msgid "Change MusicBot's avatar.\n" "Attaching a file and omitting the url parameter also works.\n" msgstr "更改 MusicBot 头像。\n" "附加一个文件并省略URL参数也可以工作。\n" -#: musicbot/bot.py:6905 +#: musicbot/bot.py:6979 msgid "You must provide a URL or attach a file." msgstr "您必须提供一个 URL 或附加文件。" -#: musicbot/bot.py:6915 +#: musicbot/bot.py:6989 #, python-format msgid "Unable to change avatar due to error: \n" "%(raw_error)s" msgstr "" -#: musicbot/bot.py:6919 +#: musicbot/bot.py:6993 msgid "Changed the bot's avatar." msgstr "更改了机器人头像。" -#: musicbot/bot.py:6922 +#: musicbot/bot.py:6996 msgid "Force MusicBot to disconnect from the discord server." msgstr "强制MusicBot断开与 Discord 服务器的连接。" -#: musicbot/bot.py:6933 +#: musicbot/bot.py:7007 #, python-format msgid "Disconnected from server `%(guild)s`" msgstr "" -#: musicbot/bot.py:6948 +#: musicbot/bot.py:7022 msgid "Disconnected a playerless voice client? [BUG]" msgstr "断开一个无声音客户端的连接? [BUG]" -#: musicbot/bot.py:6952 +#: musicbot/bot.py:7026 #, python-format msgid "Not currently connected to server `%(guild)s`" msgstr "" -#: musicbot/bot.py:6960 +#: musicbot/bot.py:7034 msgid " Attempt to reload without process restart. The default option.\n" msgstr " 尝试重新加载而不重启进程。默认选项。\n" -#: musicbot/bot.py:6962 +#: musicbot/bot.py:7036 msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" msgstr "" -#: musicbot/bot.py:6964 +#: musicbot/bot.py:7038 msgid " Full restart, but attempt to update pip packages before restart.\n" msgstr " 完全重启,但尝试在重启前更新Pip包。\n" -#: musicbot/bot.py:6966 +#: musicbot/bot.py:7040 msgid " Full restart, but update MusicBot source code with git first.\n" msgstr " 完全重启,但先更新 MusicBot 源代码使用 git 。\n" -#: musicbot/bot.py:6968 +#: musicbot/bot.py:7042 msgid " Attempt to update all dependency and source code before fully restarting.\n" msgstr " 尝试在完全重启之前更新所有依赖关系和源代码。\n" -#: musicbot/bot.py:6972 +#: musicbot/bot.py:7046 msgid "Attempts to restart the MusicBot in a number of different ways.\n" "With no option supplied, a `soft` restart is implied.\n" "It can be used to remotely update a MusicBot installation, but should be used with care.\n" "If you have a service manager, we recommend using it instead of this command for restarts.\n" msgstr "" -#: musicbot/bot.py:6993 +#: musicbot/bot.py:7067 msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" msgstr "给定的选项无效,请使用其中一项:软、完整、升级、上传或上传。" -#: musicbot/bot.py:6999 +#: musicbot/bot.py:7073 #, python-format msgid "%(emoji)s Restarting current instance..." msgstr "" -#: musicbot/bot.py:7004 +#: musicbot/bot.py:7078 #, python-format msgid "%(emoji)s Restarting bot process..." msgstr "" -#: musicbot/bot.py:7009 +#: musicbot/bot.py:7083 #, python-format msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." msgstr "" -#: musicbot/bot.py:7014 +#: musicbot/bot.py:7088 #, python-format msgid "%(emoji)s Will try to update bot code with git and restart the bot..." msgstr "" -#: musicbot/bot.py:7019 +#: musicbot/bot.py:7093 #, python-format msgid "%(emoji)s Will try to upgrade everything and restart the bot..." msgstr "" -#: musicbot/bot.py:7053 +#: musicbot/bot.py:7127 msgid "Disconnect from all voice channels and close the MusicBot process." msgstr "断开所有语音频道并关闭 MusicBot 进程。" -#: musicbot/bot.py:7079 +#: musicbot/bot.py:7153 msgid " Leave the discord server given by name or server ID." msgstr " 留下由名称或服务器ID指定的Discord服务器。" -#: musicbot/bot.py:7083 +#: musicbot/bot.py:7157 msgid "Force MusicBot to leave the given Discord server.\n" "Names are case-sensitive, so using an ID number is more reliable.\n" msgstr "" -#: musicbot/bot.py:7102 +#: musicbot/bot.py:7176 msgid "You must provide an ID or name." msgstr "您必须提供一个ID或名称。" -#: musicbot/bot.py:7113 +#: musicbot/bot.py:7187 #, python-format msgid "No guild was found with the ID or name `%(input)s`" msgstr "" -#: musicbot/bot.py:7121 +#: musicbot/bot.py:7195 msgid "Unknown" msgstr "未知的" -#: musicbot/bot.py:7128 +#: musicbot/bot.py:7202 #, python-format msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" msgstr "" -#: musicbot/bot.py:7138 +#: musicbot/bot.py:7212 msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." msgstr "用于测试的命令。它打印一个可以通过测试套装验证的命令列表。" -#: musicbot/bot.py:7162 +#: musicbot/bot.py:7236 msgid "This command issues a log at level CRITICAL, but does nothing else.\n" "Can be used to manually pinpoint events in the MusicBot log file.\n" msgstr "" -#: musicbot/bot.py:7173 +#: musicbot/bot.py:7247 #, python-format msgid "Logged breakpoint with ID: %(uuid)s" msgstr "" -#: musicbot/bot.py:7180 +#: musicbot/bot.py:7254 msgid " View most common types reported by objgraph.\n" msgstr " 查看 objgraphs 报告的最常见类型。\n" -#: musicbot/bot.py:7183 +#: musicbot/bot.py:7257 msgid " View limited objgraph.show_growth() output.\n" msgstr " 查看有限的 objgraph.show_growth() 输出。\n" -#: musicbot/bot.py:7186 +#: musicbot/bot.py:7260 msgid " View most common types of leaking objects.\n" msgstr " 查看最常见的泄漏对象类型。\n" -#: musicbot/bot.py:7189 +#: musicbot/bot.py:7263 msgid " View typestats of leaking objects.\n" msgstr " 查看泄漏对象的类型遗产。\n" -#: musicbot/bot.py:7192 +#: musicbot/bot.py:7266 msgid " Evaluate the given function and arguments on objgraph.\n" msgstr " 在objgraph上评估给定的函数和参数。\n" -#: musicbot/bot.py:7196 +#: musicbot/bot.py:7270 msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" "You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" "Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" msgstr "" -#: musicbot/bot.py:7212 +#: musicbot/bot.py:7286 msgid "Could not import `objgraph`, is it installed?" msgstr "无法导入 `objgraph` ,是否安装?" -#: musicbot/bot.py:7249 +#: musicbot/bot.py:7323 msgid "This command will execute arbitrary python code in the command scope.\n" "First eval() is attempted, if exceptions are thrown exec() is tried next.\n" "If eval is successful, it's return value is displayed.\n" @@ -1895,7 +1942,7 @@ msgid "This command will execute arbitrary python code in the command scope.\n" "The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" msgstr "" -#: musicbot/bot.py:7302 +#: musicbot/bot.py:7376 #, python-format msgid "Failed to execute debug code:\n" "%(py_code)s\n" @@ -1904,65 +1951,65 @@ msgid "Failed to execute debug code:\n" "%(ex_text)s```" msgstr "" -#: musicbot/bot.py:7320 +#: musicbot/bot.py:7394 msgid "Create 'markdown' for options, permissions, or commands from the code.\n" "The output is used to update GitHub Pages and is thus unsuitable for normal reference use." msgstr "从代码创建“markdown”选项、权限或命令。\n" "输出用于更新 GitHub 页面,因此不适合正常的参考使用。" -#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#: musicbot/bot.py:7411 musicbot/bot.py:7472 #, python-format msgid "Sub-command must be one of: %(options)s" msgstr "" -#: musicbot/bot.py:7387 +#: musicbot/bot.py:7461 msgid "Makes default INI files." msgstr "创建默认 INI 文件。" -#: musicbot/bot.py:7410 +#: musicbot/bot.py:7486 msgid "Saved the requested INI file to disk. Go check it" msgstr "保存了请求的 INI 文件到磁盘。请检查它" -#: musicbot/bot.py:7415 +#: musicbot/bot.py:7491 msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" msgstr "" -#: musicbot/bot.py:7439 +#: musicbot/bot.py:7515 msgid "Could not locate git executable." msgstr "无法找到 git 可执行文件。" -#: musicbot/bot.py:7473 +#: musicbot/bot.py:7549 #, python-format msgid "No updates in branch `%(branch)s` remote." msgstr "" -#: musicbot/bot.py:7478 +#: musicbot/bot.py:7554 #, python-format msgid "New commits are available in `%(branch)s` branch remote." msgstr "" -#: musicbot/bot.py:7484 musicbot/bot.py:7527 +#: musicbot/bot.py:7560 musicbot/bot.py:7603 msgid "Error while checking, see logs for details." msgstr "检查时出错,详情请查看日志。" -#: musicbot/bot.py:7518 +#: musicbot/bot.py:7594 #, python-format msgid "Update for `%(name)s` to version: `%(version)s`\n" msgstr "" -#: musicbot/bot.py:7524 +#: musicbot/bot.py:7600 msgid "No updates for dependencies found." msgstr "没有找到依赖关系的更新。" -#: musicbot/bot.py:7530 +#: musicbot/bot.py:7606 msgid "There are updates for MusicBot available for download." msgstr "MusicBot有可用下载的更新。" -#: musicbot/bot.py:7532 +#: musicbot/bot.py:7608 msgid "MusicBot is totally up-to-date!" msgstr "MusicBot 完全是最新版本!" -#: musicbot/bot.py:7536 +#: musicbot/bot.py:7612 #, python-format msgid "%(status)s\n\n" "**Source Code Updates:**\n" @@ -1971,74 +2018,74 @@ msgid "%(status)s\n\n" "%(pip_status)s" msgstr "" -#: musicbot/bot.py:7550 +#: musicbot/bot.py:7626 msgid "Displays the MusicBot uptime, or time since last start / restart." msgstr "显示上次启动/重启后的音乐机器人时机。" -#: musicbot/bot.py:7565 +#: musicbot/bot.py:7641 #, python-format msgid "%(name)s has been online for `%(time)s`" msgstr "" -#: musicbot/bot.py:7572 +#: musicbot/bot.py:7648 msgid "Display latency information for Discord API and all connected voice clients." msgstr "显示Discord API和所有已连接的语音客户端的延迟信息。" -#: musicbot/bot.py:7594 +#: musicbot/bot.py:7670 #, python-format msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" msgstr "" -#: musicbot/bot.py:7599 +#: musicbot/bot.py:7675 msgid "No voice clients connected.\n" msgstr "没有语音客户端连接。\n" -#: musicbot/bot.py:7604 +#: musicbot/bot.py:7680 #, python-format msgid "**API Latency:** `%(delay).0f ms`\n" "**VoiceClient Latency:**\n" "%(voices)s" msgstr "" -#: musicbot/bot.py:7612 +#: musicbot/bot.py:7688 msgid "Display API latency and Voice latency if MusicBot is connected." msgstr "如果MusicBot 已连接,则显示 API 延迟和语音延迟。" #. TRANSLATORS: short for automatic, displayed when voice region is not selected. -#: musicbot/bot.py:7628 +#: musicbot/bot.py:7704 msgid "auto" msgstr "auto" -#: musicbot/bot.py:7630 +#: musicbot/bot.py:7706 #, python-format msgid "\n" "**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" msgstr "" -#: musicbot/bot.py:7635 +#: musicbot/bot.py:7711 #, python-format msgid "**API Latency:** `%(delay).0f ms`%(voice)s" msgstr "" -#: musicbot/bot.py:7640 +#: musicbot/bot.py:7716 msgid "Display MusicBot version number in the chat." msgstr "在聊天中显示 MusicBot 版本号。" -#: musicbot/bot.py:7648 +#: musicbot/bot.py:7724 #, python-format msgid "https://github.com/Just-Some-Bots/MusicBot\n" "Current version: `%(version)s`" msgstr "" -#: musicbot/bot.py:7660 +#: musicbot/bot.py:7736 msgid " Update the cookies.txt file using a cookies.txt attachment." msgstr " 使用 cookies.txt 附件更新cookies.txt 文件。" -#: musicbot/bot.py:7663 +#: musicbot/bot.py:7739 msgid " Enable or disable cookies.txt file without deleting it." msgstr " 启用或禁用 cookies.txt 文件而不删除它。" -#: musicbot/bot.py:7667 +#: musicbot/bot.py:7743 msgid "Allows management of the cookies feature in yt-dlp.\n" "When updating cookies, you must upload a file named cookies.txt\n" "If cookies are disabled, uploading will enable the feature.\n" @@ -2050,88 +2097,88 @@ msgid "Allows management of the cookies feature in yt-dlp.\n" " feature if you do not understand how to avoid the risks." msgstr "" -#: musicbot/bot.py:7688 +#: musicbot/bot.py:7764 msgid "Cookies already enabled." msgstr "Cookie 已启用。" -#: musicbot/bot.py:7695 +#: musicbot/bot.py:7771 msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" msgstr "Cookie 必须上传才能启用。(正在使用 cookies 文件)" -#: musicbot/bot.py:7708 +#: musicbot/bot.py:7784 #, python-format msgid "Could not enable cookies due to error: %(raw_error)s" msgstr "" -#: musicbot/bot.py:7711 +#: musicbot/bot.py:7787 msgid "Cookies have been enabled." msgstr "Cookie 已启用。" -#: musicbot/bot.py:7722 +#: musicbot/bot.py:7798 #, python-format msgid "Could not rename cookies file due to error: %(raw_error)s\n" "Cookies temporarily disabled and will be re-enabled on next restart." msgstr "" -#: musicbot/bot.py:7726 +#: musicbot/bot.py:7802 msgid "Cookies have been disabled." msgstr "Cookie 已被禁用。" -#: musicbot/bot.py:7731 +#: musicbot/bot.py:7807 msgid "No attached uploads were found, try again while uploading a cookie file." msgstr "没有找到附加的上传文件,上传cookie文件时再试一次。" -#: musicbot/bot.py:7749 +#: musicbot/bot.py:7825 #, python-format msgid "Error downloading the cookies file from discord: %(raw_error)s" msgstr "" -#: musicbot/bot.py:7754 +#: musicbot/bot.py:7830 #, python-format msgid "Could not save cookies to disk: %(raw_error)s" msgstr "" -#: musicbot/bot.py:7762 +#: musicbot/bot.py:7838 msgid "Cookies uploaded and enabled." msgstr "Cookie已上传并启用。" -#: musicbot/bot.py:7872 +#: musicbot/bot.py:7948 msgid "You cannot use this bot in private messages." msgstr "您不能在私信中使用此机器人。" -#: musicbot/bot.py:7941 +#: musicbot/bot.py:8017 #, python-format msgid "This command is not allowed for your permissions group: %(group)s" msgstr "" -#: musicbot/bot.py:7976 +#: musicbot/bot.py:8052 msgid "This command requires you to be in a Voice channel." msgstr "此命令要求您在语音频道中。" -#: musicbot/bot.py:8075 +#: musicbot/bot.py:8151 #, python-format msgid "**Command:** %(name)s" msgstr "" -#: musicbot/bot.py:8134 +#: musicbot/bot.py:8210 msgid "Exception Error" msgstr "异常错误" -#: musicbot/bot.py:8179 +#: musicbot/bot.py:8255 #, python-format msgid "**Example with prefix:**\n" "%(prefix)s`%(command)s ...`\n" msgstr "" -#: musicbot/bot.py:8183 +#: musicbot/bot.py:8259 msgid "No description given.\n" msgstr "没有给出任何描述。\n" -#: musicbot/bot.py:8186 +#: musicbot/bot.py:8262 msgid "No usage given." msgstr "没有给出任何用法。" -#: musicbot/bot.py:8220 +#: musicbot/bot.py:8296 #, python-format msgid "**Example usage:**\n" "```%(usage)s```\n" @@ -2139,12 +2186,12 @@ msgid "**Example usage:**\n" "%(desc)s" msgstr "" -#: musicbot/bot.py:8273 +#: musicbot/bot.py:8349 #, python-format msgid "Leaving voice channel %(channel)s due to inactivity." msgstr "" -#: musicbot/bot.py:8554 +#: musicbot/bot.py:8645 #, python-format msgid "Left `%(guild)s` due to bot owner not being found in it." msgstr "" @@ -2318,43 +2365,43 @@ msgid "Enable automatic skip of auto playlist songs when a user plays a new song msgstr "当用户播放新歌曲时,自动跳过自动播放列表歌曲。\n" "这只适用于当前播放的歌曲,如果它是由自动播放列表添加的。" -#: musicbot/config.py:469 +#: musicbot/config.py:468 msgid "Remove songs from the auto playlist if they are found in the song block list." msgstr "从自动播放列表中删除歌曲,如果在歌曲块列表中找到这些歌曲。" -#: musicbot/config.py:488 +#: musicbot/config.py:487 msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" "Delay period is controlled by DeleteDelayShort and DeleteDelayLong." msgstr "允许 MusicBot 在延迟后自动删除它发送的消息。\n" "延迟时间由DeleteDelayShort 和 DeleteDelayLong控制。" -#: musicbot/config.py:498 +#: musicbot/config.py:497 msgid "Auto delete valid commands after a delay." msgstr "延迟后自动删除有效的命令。" -#: musicbot/config.py:507 +#: musicbot/config.py:506 msgid "Sets the short period of seconds before deleting messages.\n" "This period is used by messages that require no further interaction." msgstr "设置删除消息之前的短秒时间。\n" "此时间段用于无需进一步互动的消息。" -#: musicbot/config.py:518 +#: musicbot/config.py:517 msgid "Sets the long delay period before deleting messages.\n" "This period is used by interactive or long-winded messages, like search and help." msgstr "设置删除消息之前的长时间延迟。\n" "此时间段用于交互或长时间的消息,如搜索和帮助。" -#: musicbot/config.py:530 +#: musicbot/config.py:529 msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." msgstr "允许 MusicBot 保存歌曲队列,所以队列中的歌曲将继续重启。" -#: musicbot/config.py:540 +#: musicbot/config.py:539 msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" "Currently this option does not apply to auto playlist or songs added to an empty queue." msgstr "在播放歌曲时启用 MusicBot 下载队列中的下一首歌曲。\n" "目前此选项不适用于自动播放列表或添加到空队列的歌曲。" -#: musicbot/config.py:550 +#: musicbot/config.py:549 msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" "will display dynamic info about music currently being played in its status instead.\n" "Status messages may also use the following variables:\n" @@ -2368,68 +2415,68 @@ msgid "Specify a custom message to use as the bot's status. If left empty, the b " {p0_url} = The track URL for the currently playing track." msgstr "" -#: musicbot/config.py:571 +#: musicbot/config.py:570 msgid "If enabled, status messages will report info on paused players." msgstr "如果启用,状态信息将报告暂停玩家的信息。" #. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. -#: musicbot/config.py:582 +#: musicbot/config.py:581 msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" msgstr "如果启用,MusicBot 将保存曲目标题到:data/[Server ID]/current.txt" -#: musicbot/config.py:592 +#: musicbot/config.py:591 msgid "Allow the member who requested the song to skip it, bypassing votes." msgstr "允许请求歌曲的会员跳过它,绕过投票。" -#: musicbot/config.py:602 +#: musicbot/config.py:601 msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" "This option can cause delay between playing songs, as the whole track must be processed." msgstr "尝试使用 ffmpeg 获取音量正常化选项以供播放使用。\n" "此选项可能会导致播放歌曲之间的延迟,因为整个歌曲必须处理。" -#: musicbot/config.py:612 +#: musicbot/config.py:611 msgid "Allow MusicBot to format its messages as embeds." msgstr "允许 MusicBot 将其消息格式化为嵌入板块。" -#: musicbot/config.py:621 +#: musicbot/config.py:620 msgid "The number of entries to show per-page when using q command to list the queue." msgstr "使用 q 命令列出队列时每页显示的条目数。" -#: musicbot/config.py:631 +#: musicbot/config.py:630 msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." msgstr "启用 MusicBot 自动从自动播放列表中删除不可播放的条目。" -#: musicbot/config.py:640 +#: musicbot/config.py:639 msgid "Display MusicBot config settings in the logs at startup." msgstr "启动时在日志中显示 MusicBot 配置设置。" #. TRANSLATORS: InstaSkip should not be translated. -#: musicbot/config.py:650 +#: musicbot/config.py:649 msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." msgstr "启用 InstaSkip 权限的用户跳过投票并强制跳过操作。" -#: musicbot/config.py:660 +#: musicbot/config.py:659 msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." msgstr "如果启用,MusicBot将离开服务器,如果所有者不在其会员列表中。" -#: musicbot/config.py:670 +#: musicbot/config.py:669 msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" msgstr "如果启用,MusicBot将允许命令使用多个名字:config/aliases.json" -#: musicbot/config.py:681 +#: musicbot/config.py:680 msgid "Replace MusicBot name/version in embed footer with custom text.\n" "Only applied when UseEmbeds is enabled and it is not blank." msgstr "" -#: musicbot/config.py:691 +#: musicbot/config.py:690 msgid "Completely remove the footer from embeds." msgstr "完全移除嵌套页脚。" -#: musicbot/config.py:700 +#: musicbot/config.py:699 msgid "MusicBot will automatically deafen itself when entering a voice channel." msgstr "当进入语音频道时,MusicBot 将自动自失效。" -#: musicbot/config.py:711 +#: musicbot/config.py:710 msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" "after waiting for a period set in LeaveInactiveVCTimeOut option.\n" "Listeners are channel members, excluding bots, who are not deafened." @@ -2437,17 +2484,17 @@ msgstr "如果启用,MusicBot将在没有用户正在聆听时离开语音频 "等待在LeaveInactiveVCTimeOut 选项中设置的时间段。\n" "监听器是频道成员,但不包括机器人,他们没有耳聋。" -#: musicbot/config.py:723 +#: musicbot/config.py:722 msgid "Set a period of time to wait before leaving an inactive voice channel.\n" "You can set this to a number of seconds or phrase like: 4 hours" msgstr "设置等待时间间隔,然后离开静止的语音频道。\n" "您可以将其设置为几秒或短语如:4小时" -#: musicbot/config.py:734 +#: musicbot/config.py:733 msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." msgstr "如果启用,MusicBot 将在歌曲队列为空时立即离开频道。" -#: musicbot/config.py:744 +#: musicbot/config.py:743 msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" "You can set this to a number of seconds of phrase like: 15 minutes\n" "Set it to 0 to disable leaving in this way." @@ -2455,24 +2502,24 @@ msgstr "当暂停或不再玩时,等待这么长的时间,然后留下声音 "您可以设置这个短语为几秒钟,比如:15分钟\n" "设置为0来禁用这种离开方式。" -#: musicbot/config.py:756 +#: musicbot/config.py:755 msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." msgstr "如果启用,用户必须通过发送消息而不是使用响应来表示搜索结果选择。" -#: musicbot/config.py:766 +#: musicbot/config.py:765 msgid "Sets the default number of search results to fetch when using the search command without a specific number." msgstr "设置在没有指定号码的情况下使用搜索命令获取搜索结果的默认数。" #. TRANSLATORS: setprefix should not be translated. -#: musicbot/config.py:778 +#: musicbot/config.py:777 msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." msgstr "允许 MusicBot 保存每个服务器的命令前缀,并启用 setprefix 命令。" -#: musicbot/config.py:789 +#: musicbot/config.py:788 msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." msgstr "如果启用,多个成员正在添加歌曲,MusicBot将为每个成员组织播放一首歌曲。" -#: musicbot/config.py:800 +#: musicbot/config.py:799 msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" "This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" "MusicBot must be restarted to enable network testing.\n" @@ -2482,35 +2529,35 @@ msgstr "允许 MusicBot 使用定时pings 检测网络停电和可用性。\n" "MusicBot 必须重启才能启用网络测试。\n" "默认情况下已禁用。" -#: musicbot/config.py:814 +#: musicbot/config.py:813 #, python-format msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" "This will contain all songs from all servers." msgstr "" #. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. -#: musicbot/config.py:829 +#: musicbot/config.py:828 #, python-format msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" msgstr "" -#: musicbot/config.py:845 +#: musicbot/config.py:844 msgid "Enable playback of local media files using the play command.\n" "When enabled, users can use: `play file://path/to/file.ext`\n" "to play files from the local MediaFileDirectory path." msgstr "" -#: musicbot/config.py:858 +#: musicbot/config.py:857 msgid "Allow MusicBot to automatically unpause when play commands are used." msgstr "允许 MusicBot 在使用播放命令时自动取消暂停。" -#: musicbot/config.py:877 +#: musicbot/config.py:876 msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" "The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" "Leave blank to disable." msgstr "" -#: musicbot/config.py:888 +#: musicbot/config.py:887 msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" "It is not typically recommended by yt-dlp to change the UA string.\n" "For examples of what you might put here, check the following two links:\n" @@ -2524,7 +2571,7 @@ msgstr "在yt-dlp中设置静态用户代理头的实验选项。\n" " https://www.useragents.me/ \n" "留空则使用动态生成的 UA 字符串。" -#: musicbot/config.py:903 +#: musicbot/config.py:902 #, python-format msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" "When enabled, you must use the generated URL and code to authorize an account.\n" @@ -2534,38 +2581,38 @@ msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2. "Set yes to enable or no to disable." msgstr "" -#: musicbot/config.py:920 +#: musicbot/config.py:919 msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" "This starts the OAuth2 prompt early, rather than waiting for a song request.\n" "The URL set here should be an accessible YouTube video URL.\n" "Authorization must be completed before start-up will continue when this is set." msgstr "" -#: musicbot/config.py:939 +#: musicbot/config.py:938 msgid "Toggle the user block list feature, without emptying the block list." msgstr "切换用户块列表功能,同时不清空块列表。" -#: musicbot/config.py:949 +#: musicbot/config.py:948 msgid "An optional file path to a text file listing Discord User IDs, one per line." msgstr "列出Discord用户ID的文本文件的可选文件路径,每行一个。" -#: musicbot/config.py:961 +#: musicbot/config.py:960 msgid "Enable the song block list feature, without emptying the block list." msgstr "启用歌曲方块列表功能,同时不清空方块列表。" -#: musicbot/config.py:971 +#: musicbot/config.py:970 msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" "Any song title or URL that contains any line in the list will be blocked." msgstr "一个可选的文件路径,用于列出每行的 URL、单词或短语。\n" "任何包含列表中任何行的歌曲标题或URL将被屏蔽。" -#: musicbot/config.py:984 +#: musicbot/config.py:983 msgid "An optional path to a directory containing auto playlist files.\n" "Each file should contain a list of playable URLs or terms, one track per line." msgstr "包含自动播放列表文件的目录可选路径。\n" "每个文件应该包含一个可播放的 URL 或条款列表、每行一个曲目。" -#: musicbot/config.py:996 +#: musicbot/config.py:995 #, python-format msgid "An optional directory path where playable media files can be stored.\n" "All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" @@ -2573,18 +2620,18 @@ msgid "An optional directory path where playable media files can be stored.\n" "Maps to: %(path)s/some/folder/name/file.ext" msgstr "" -#: musicbot/config.py:1015 +#: musicbot/config.py:1014 msgid "An optional directory path where MusicBot will store long and short-term cache for playback." msgstr "一个可选的目录路径,MusicBot 将存储长时间和短期的缓存来播放。" -#: musicbot/config.py:1026 +#: musicbot/config.py:1025 #, python-format msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" "When disabled, only one log is kept and its contents are replaced each run.\n" "Set to 0 to disable. Maximum allowed number is %(max)s." msgstr "" -#: musicbot/config.py:1039 +#: musicbot/config.py:1038 msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" "If left blank, a warning is logged and the default will be used instead.\n" "Learn more about time format codes from the tables and data here:\n" @@ -2594,12 +2641,12 @@ msgstr "配置 LogsMaxKept 启用时使用的日志文件日期格式。\n" "从表格和数据中了解更多的时间格式代码:\n" " https://docs.python.org/3/library/datetime.html#strftimestrptimebehaviour" -#: musicbot/config.py:1053 +#: musicbot/config.py:1052 msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" "This option will disable UseExperimentalEqualization option as well." msgstr "" -#: musicbot/config.py:1083 +#: musicbot/config.py:1082 #, python-format msgid "Error while reading config.\n\n" "Problem:\n" @@ -2613,7 +2660,7 @@ msgid "Error while reading config.\n\n" " Use the example options as a template or copy it from the repository." msgstr "" -#: musicbot/config.py:1132 +#: musicbot/config.py:1131 msgid "Error while validating config options.\n\n" "Problem:\n" " Config option AudioCachePath is not a directory.\n\n" @@ -2621,7 +2668,7 @@ msgid "Error while validating config options.\n\n" " Make sure the path you configured is a path to a folder / directory." msgstr "" -#: musicbot/config.py:1153 +#: musicbot/config.py:1152 #, python-format msgid "Error while validating config options.\n\n" "Problem:\n" @@ -2631,7 +2678,7 @@ msgid "Error while validating config options.\n\n" " Double check the setting is a valid, accessible directory path." msgstr "" -#: musicbot/config.py:1176 +#: musicbot/config.py:1175 #, python-format msgid "Error while reading config options.\n\n" "Problem:\n" @@ -2640,7 +2687,7 @@ msgid "Error while reading config options.\n\n" " Set the Token config option or set environment variable %(env_var)s with an App token." msgstr "" -#: musicbot/config.py:1244 +#: musicbot/config.py:1243 msgid "Error while fetching 'OwnerID' automatically.\n\n" "Problem:\n" " Discord App info is not available.\n" @@ -2649,7 +2696,7 @@ msgid "Error while fetching 'OwnerID' automatically.\n\n" " Manually set the 'OwnerID' config option or try again later." msgstr "" -#: musicbot/config.py:1262 +#: musicbot/config.py:1261 msgid "Error validating config options.\n\n" "Problem:\n" " The 'OwnerID' config is the same as your Bot / App ID.\n\n" @@ -2661,7 +2708,7 @@ msgstr "验证配置选项时出错。\n\n" "解决方案:\n" " 不要在“所有者ID”字段中使用机器人或App ID。" -#: musicbot/config.py:1327 +#: musicbot/config.py:1326 #, python-format msgid "Error locating config.\n\n" "Problem:\n" @@ -2676,7 +2723,7 @@ msgstr "定位配置时出错。\n\n" "解决方案:\n" " 验证配置文件夹和文件存在并且可以通过 MusicBot 读取。" -#: musicbot/config.py:1345 +#: musicbot/config.py:1344 #, python-format msgid "Error loading config.\n\n" "Problem:\n" @@ -2687,7 +2734,7 @@ msgid "Error loading config.\n\n" " Copy the example file from the repo if all else fails." msgstr "" -#: musicbot/config.py:2184 +#: musicbot/config.py:2189 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2696,7 +2743,7 @@ msgid "Error loading config value.\n\n" " Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." msgstr "" -#: musicbot/config.py:2220 +#: musicbot/config.py:2225 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" @@ -2705,7 +2752,7 @@ msgid "Error loading config value.\n\n" " Check the path setting and make sure the file exists and is accessible to MusicBot." msgstr "" -#: musicbot/config.py:2250 +#: musicbot/config.py:2255 #, python-format msgid "Error loading config value.\n\n" "Problem:\n" From 336597f5c6b85152fe155e4e347aadcba135dd26 Mon Sep 17 00:00:00 2001 From: itsTheFae Date: Fri, 15 Nov 2024 06:38:28 -0800 Subject: [PATCH 10/10] Extend autoplaylist cmd with a clear sub-command & show current playlist. Proper fix for generating missing options and permissions files. Enable moving all writable directories with --write-dir cli flag. Convert some more constants for the above cli option. --- musicbot/__init__.py | 67 +++++++++++++++++++++++++++- musicbot/autoplaylist.py | 64 ++++++++++++++++++++++++++- musicbot/bot.py | 69 ++++++++++++++++++++++++----- musicbot/config.py | 77 ++++++++++++++++++++++----------- musicbot/exceptions.py | 5 +++ musicbot/filecache.py | 21 ++++++--- musicbot/logs.py | 15 +++++-- musicbot/permissions.py | 62 +++++++++++++++++++------- musicbot/utils.py | 3 ++ musicbot/ytdlp_oauth2_plugin.py | 3 +- run.py | 60 +++++++++++++++++++------ 11 files changed, 365 insertions(+), 81 deletions(-) diff --git a/musicbot/__init__.py b/musicbot/__init__.py index 3975f75a1..4b5d2e597 100644 --- a/musicbot/__init__.py +++ b/musicbot/__init__.py @@ -1 +1,66 @@ -# Just empty for now... +import argparse +import pathlib +import sys +from typing import Any, Dict, NoReturn, Union + +BASE_WRITE_PATH: str = "" + + +def parse_write_base_arg() -> None: + """ + Handles command line arguments for base directory early. + """ + arg39: Dict[str, Any] = {} + if sys.version_info >= (3, 9): + arg39 = {"exit_on_error": False} + + ap = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description="", + epilog="", + usage="", + add_help=False, + allow_abbrev=False, + **arg39, + ) + + # Make sure argparser does not exit or print. + def _error(message: str) -> NoReturn: # type: ignore[misc] + print("Write Base Argument Error: %s", message) + + ap.error = _error # type: ignore[method-assign] + + ap.add_argument( + "--write-dir", + dest="global_writes_basedir", + type=str, + help="", + default="", + ) + + args, _ = ap.parse_known_args() + + if args.global_writes_basedir: + basedir = pathlib.Path(args.global_writes_basedir).resolve() + basedir.mkdir(parents=True, exist_ok=True) + set_write_base(basedir) + + +def set_write_base(base_path: Union[str, pathlib.Path]) -> None: + """Update the base write path for musicbot""" + global BASE_WRITE_PATH # pylint: disable=global-statement + BASE_WRITE_PATH = str(base_path) + + +def get_write_base() -> str: + """Get the string version of the base write path.""" + return BASE_WRITE_PATH + + +def write_path(path: Union[str, pathlib.Path]) -> pathlib.Path: + """ + Get a pathlib.Path object for path, with the global write base path if one was set. + """ + if BASE_WRITE_PATH: + return pathlib.Path(BASE_WRITE_PATH).resolve().joinpath(path) + return pathlib.Path(path).resolve() diff --git a/musicbot/autoplaylist.py b/musicbot/autoplaylist.py index 30e918749..07f452891 100644 --- a/musicbot/autoplaylist.py +++ b/musicbot/autoplaylist.py @@ -6,6 +6,7 @@ from collections import UserList from typing import TYPE_CHECKING, Dict, List, Optional, Set +from . import write_path from .constants import ( APL_FILE_APLCOPY, APL_FILE_DEFAULT, @@ -97,6 +98,65 @@ def _read_playlist(self) -> List[str]: playlist.append(line) return playlist + async def clear_all_tracks(self, log_msg: str) -> None: + """ + Remove all tracks from the current playlist. + Functions much like remove_track but does all the I/O stuff in bulk. + + :param: log_msg: A reason for clearing, usually states the user. + """ + async with self._update_lock: + all_tracks = list(self.data) + song_subject = "[Removed all tracks]" + + for track in all_tracks: + self.data.remove(track) + + if not self._removed_file.is_file(): + self._removed_file.touch(exist_ok=True) + + try: + with open(self._removed_file, "a", encoding="utf8") as f: + ctime = time.ctime() + # add 10 spaces to line up with # Reason: + e_str = log_msg.replace("\n", "\n#" + " " * 10) + sep = "#" * 32 + f.write( + f"# Entry removed {ctime}\n" + f"# Track: {song_subject}\n" + f"# Reason: {e_str}\n" + f"\n{sep}\n\n" + ) + except (OSError, PermissionError, FileNotFoundError, IsADirectoryError): + log.exception( + "Could not log information about the playlist URL removal." + ) + + log.info("Updating playlist file...") + + def _filter_replace(line: str, url: str) -> str: + target = line.strip() + if target == url: + return f"# Removed # {url}" + return line + + # read the original file in and update lines with the URL. + # this is done to preserve the comments and formatting. + try: + data = self._file.read_text(encoding="utf8").split("\n") + last_track = len(all_tracks) - 1 + self._bot.filecache.cachemap_defer_write = True + for idx, track in enumerate(all_tracks): + data = [_filter_replace(x, track) for x in data] + if idx == last_track: + self._bot.filecache.cachemap_defer_write = False + self._bot.filecache.remove_autoplay_cachemap_entry_by_url(track) + + text = "\n".join(data) + self._file.write_text(text, encoding="utf8") + except (OSError, PermissionError, FileNotFoundError): + log.exception("Failed to save playlist file: %s", self._file) + async def remove_track( self, song_subject: str, @@ -234,8 +294,8 @@ def setup_autoplaylist(self) -> None: self._apl_dir.mkdir(parents=True, exist_ok=True) # Files from previous versions of MusicBot - old_usercopy = pathlib.Path(OLD_DEFAULT_AUTOPLAYLIST_FILE) - old_bundle = pathlib.Path(OLD_BUNDLED_AUTOPLAYLIST_FILE) + old_usercopy = write_path(OLD_DEFAULT_AUTOPLAYLIST_FILE) + old_bundle = write_path(OLD_BUNDLED_AUTOPLAYLIST_FILE) # Copy or rename the old auto-playlist files if new files don't exist yet. if old_usercopy.is_file() and not self._apl_file_usercopy.is_file(): diff --git a/musicbot/bot.py b/musicbot/bot.py index 695f021b4..453906987 100644 --- a/musicbot/bot.py +++ b/musicbot/bot.py @@ -24,7 +24,7 @@ import discord import yt_dlp as youtube_dl # type: ignore[import-untyped] -from . import downloader, exceptions +from . import downloader, exceptions, write_path from .aliases import Aliases, AliasesDefault from .autoplaylist import AutoPlaylistManager from .config import Config, ConfigDefaults @@ -53,6 +53,8 @@ EMOJI_UPDATE_ALL, EMOJI_UPDATE_GIT, EMOJI_UPDATE_PIP, + EXAMPLE_OPTIONS_FILE, + EXAMPLE_PERMS_FILE, FALLBACK_PING_SLEEP, FALLBACK_PING_TIMEOUT, MUSICBOT_USER_AGENT_AIOHTTP, @@ -190,7 +192,10 @@ def __init__( self.players: Dict[int, MusicPlayer] = {} self.task_pool: Set[AsyncTask] = set() - self.config = Config(self._config_file) + try: + self.config = Config(self._config_file) + except exceptions.RetryConfigException: + self.config = Config(self._config_file) self.permissions = Permissions(self._perms_file) # Set the owner ID in case it wasn't auto... @@ -2136,12 +2141,14 @@ async def run_musicbot(self) -> None: # handle start up and teardown. try: + log.info("MusicBot is now doing start up steps...") await self.start(*self.config.auth) log.info("MusicBot is now doing shutdown steps...") if self.exit_signal is None: self.exit_signal = exceptions.TerminateSignal() except discord.errors.LoginFailure as e: + log.warning("Start up failed at login.") raise exceptions.HelpfulError( # fmt: off "Failed Discord API Login!\n" @@ -3216,14 +3223,23 @@ async def cmd_blocksong( "{cmd} add all\n" + _Dd(" Adds the entire queue to the guilds playlist.\n"), + "{cmd} clear [NAME]\n" + + _Dd( + " Clear all songs from the named playlist file.\n" + " If name is omitted, the currently loaded playlist is emptied.\n" + ), + "{cmd} show\n" - + _Dd(" Show a list of existing playlist files.\n"), + + _Dd(" Show the currently selected playlist and a list of existing playlist files.\n"), "{cmd} restart\n" - + _Dd(" Reset the auto playlist queue, restarting at the first track unless randomized.\n"), + + _Dd( + " Reload the auto playlist queue, restarting at the first track unless randomized.\n" + ), "{cmd} set \n" + _Dd(" Set a playlist as default for this guild and reloads the guild auto playlist.\n"), + ], # fmt: on desc=_Dd("Manage auto playlist files and per-guild settings."), @@ -3244,7 +3260,17 @@ async def cmd_autoplaylist( """ # TODO: add a method to display the current auto playlist setting in chat. option = option.lower() - if option not in ["+", "-", "add", "remove", "show", "set", "restart"]: + if option not in [ + "+", + "-", + "add", + "remove", + "clear", + "show", + "set", + "restart", + "queue", + ]: raise exceptions.CommandError( "Invalid sub-command given. Use `help autoplaylist` for usage examples.", ) @@ -3321,13 +3347,17 @@ def _get_url() -> str: if option == "show": self.playlist_mgr.discover_playlists() + filename = " " + if ssd_: + filename = ssd_.autoplaylist.filename names = "\n".join([f"`{pl}`" for pl in self.playlist_mgr.playlist_names]) return Response( _D( + "**Current Playlist:** `%(playlist)s`" "**Available Playlists:**\n%(names)s", ssd_, ) - % {"names": names}, + % {"playlist": filename, "names": names}, delete_after=self.config.delete_delay_long, ) @@ -3365,6 +3395,25 @@ def _get_url() -> str: % {"name": opt_url, "note": new_msg}, ) + if option == "clear": + if not opt_url and ssd_: + plname = ssd_.autoplaylist.filename + else: + plname = opt_url.lower() + if not plname.endswith(".txt"): + plname += ".txt" + if not self.playlist_mgr.playlist_exists(plname): + raise exceptions.CommandError( + "No playlist file exists with the name: `%(playlist)s`", + fmt_args={"playlist": plname}, + ) + pl = self.playlist_mgr.get_playlist(plname) + await pl.clear_all_tracks(f"Playlist was cleared by user: {author}") + return Response( + _D("The playlist `%(playlist)s` has been cleared.", ssd_) + % {"playlist": plname} + ) + return None @owner_only @@ -7471,14 +7520,10 @@ async def cmd_makeini( ) if cfg == "opts": - self.config.register.write_default_ini( - pathlib.Path("./config/example_options.ini") - ) + self.config.register.write_default_ini(write_path(EXAMPLE_OPTIONS_FILE)) if cfg == "perms": - self.permissions.register.write_default_ini( - pathlib.Path("./config/example_permissions.ini") - ) + self.permissions.register.write_default_ini(write_path(EXAMPLE_PERMS_FILE)) return Response(_D("Saved the requested INI file to disk. Go check it", ssd_)) diff --git a/musicbot/config.py b/musicbot/config.py index c08559cf3..ce59bc719 100644 --- a/musicbot/config.py +++ b/musicbot/config.py @@ -23,6 +23,7 @@ import configupdater from configupdater.block import Comment, Space +from . import write_path from .constants import ( APL_FILE_HISTORY, DATA_FILE_COOKIES, @@ -45,7 +46,7 @@ MAXIMUM_LOGS_LIMIT, MUSICBOT_TOKEN_ENV_VAR, ) -from .exceptions import HelpfulError +from .exceptions import HelpfulError, RetryConfigException from .i18n import _Dd from .logs import ( set_logging_level, @@ -113,7 +114,8 @@ def __init__(self, config_file: pathlib.Path) -> None: # ConfigRenameManager(self.config_file) config = ExtendedConfigParser() - config.read(config_file, encoding="utf-8") + if self.config_file.is_file(): + config.read(config_file, encoding="utf-8") self.register = ConfigOptionRegistry(self, config) # DebugLevel is important for feedback, so we load it first. @@ -816,7 +818,7 @@ def __init__(self, config_file: pathlib.Path) -> None: comment_args={"filename": f"{DEFAULT_PLAYLIST_DIR}{APL_FILE_HISTORY}"}, ) - hist_file = pathlib.Path(APL_FILE_HISTORY) + hist_file = write_path(APL_FILE_HISTORY) self.enable_queue_history_guilds: bool = self.register.init_option( section="MusicBot", option="SavePlayedHistoryGuilds", @@ -828,7 +830,7 @@ def __init__(self, config_file: pathlib.Path) -> None: "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" ), comment_args={ - "basename": f"{DEFAULT_PLAYLIST_DIR}{hist_file.stem}", + "basename": f"{hist_file.parent}/{hist_file.stem}", "ext": hist_file.suffix, }, ) @@ -1058,8 +1060,32 @@ def __init__(self, config_file: pathlib.Path) -> None: # end of config registry. # + if not self.config_file.is_file(): + log.info("Generating new config options files...") + try: + ex_file = write_path(EXAMPLE_OPTIONS_FILE) + self.register.write_default_ini(ex_file) + shutil.copy(ex_file, self.config_file) + raise RetryConfigException() + except OSError as e: + # pylint: disable=duplicate-code + raise HelpfulError( + # fmt: off + "Error creating default config options file.\n" + "\n" + "Problem:\n" + " MusicBot attempted to generate the config files but failed due to an error:\n" + " %(raw_error)s\n" + "\n" + "Solution:\n" + " Make sure MusicBot can read and write to your config files.\n", + # fmt: on + fmt_args={"raw_error": e}, + ) from e + # pylint: enable=duplicate-code + # Convert all path constants into config as pathlib.Path objects. - self.data_path = pathlib.Path(DEFAULT_DATA_DIR).resolve() + self.data_path = write_path(DEFAULT_DATA_DIR) self.server_names_path = self.data_path.joinpath(DATA_FILE_SERVERS) self.cookies_path = self.data_path.joinpath(DATA_FILE_COOKIES) self.disabled_cookies_path = self.cookies_path.parent.joinpath( @@ -1284,6 +1310,7 @@ def find_config(self) -> None: if not self.config_file.is_file(): log.warning("Config options file not found. Checking for alternatives...") + example_file = write_path(EXAMPLE_OPTIONS_FILE) try: # Check for options.ini.ini because windows. ini_file = self.config_file.with_suffix(".ini.ini") @@ -1299,23 +1326,20 @@ def find_config(self) -> None: ) # Look for an existing examples file. - elif os.path.isfile(EXAMPLE_OPTIONS_FILE): - shutil.copy(EXAMPLE_OPTIONS_FILE, self.config_file) + elif os.path.isfile(example_file): + shutil.copy(example_file, self.config_file) log.warning( "Copying existing example options file: %(example_file)s", - {"example_file": EXAMPLE_OPTIONS_FILE}, + {"example_file": example_file}, ) - # Generate a new example file and copy it too. + # Tell the user we don't have any config to use. else: - self.register.write_default_ini(pathlib.Path(EXAMPLE_OPTIONS_FILE)) - shutil.copy(EXAMPLE_OPTIONS_FILE, self.config_file) - log.warning( - "Generated a new %(example_file)s and copied it to %(option_file)s", - { - "example_file": EXAMPLE_OPTIONS_FILE, - "option_file": self.config_file, - }, + log.error( + "Could not locate config options or example options files.\n" + "MusicBot will generate the config files at the location:\n" + " %(cfg_file)s", + {"cfg_file": self.config_file.parent}, ) except OSError as e: log.exception( @@ -1522,12 +1546,12 @@ class ConfigDefaults: logs_date_format: str = DEFAULT_LOGS_ROTATE_FORMAT # Create path objects from the constants. - options_file: pathlib.Path = pathlib.Path(DEFAULT_OPTIONS_FILE) - user_blocklist_file: pathlib.Path = pathlib.Path(DEFAULT_USER_BLOCKLIST_FILE) - song_blocklist_file: pathlib.Path = pathlib.Path(DEFAULT_SONG_BLOCKLIST_FILE) - auto_playlist_dir: pathlib.Path = pathlib.Path(DEFAULT_PLAYLIST_DIR) - media_file_dir: pathlib.Path = pathlib.Path(DEFAULT_MEDIA_FILE_DIR) - audio_cache_path: pathlib.Path = pathlib.Path(DEFAULT_AUDIO_CACHE_DIR) + options_file: pathlib.Path = write_path(DEFAULT_OPTIONS_FILE) + user_blocklist_file: pathlib.Path = write_path(DEFAULT_USER_BLOCKLIST_FILE) + song_blocklist_file: pathlib.Path = write_path(DEFAULT_SONG_BLOCKLIST_FILE) + auto_playlist_dir: pathlib.Path = write_path(DEFAULT_PLAYLIST_DIR) + media_file_dir: pathlib.Path = write_path(DEFAULT_MEDIA_FILE_DIR) + audio_cache_path: pathlib.Path = write_path(DEFAULT_AUDIO_CACHE_DIR) @staticmethod def _debug_level() -> Tuple[str, int]: @@ -2274,7 +2298,10 @@ def getdebuglevel( """get a config value an parse it as a logger level.""" val = self.get(section, key, fallback="", raw=raw, vars=vars).strip().upper() if not val and fallback: - val = fallback.upper() + if isinstance(fallback, tuple): + val = fallback[0] + else: + val = fallback int_level = 0 str_level = val @@ -2680,7 +2707,7 @@ def _handle_legacy_file(self, new_file: pathlib.Path) -> None: """ In case the original, ambiguous block list file exists, lets rename it. """ - old_file = pathlib.Path(DEPRECATED_USER_BLACKLIST) + old_file = write_path(DEPRECATED_USER_BLACKLIST) if old_file.is_file() and not new_file.is_file(): log.warning( "We found a legacy blacklist file, it will be renamed to: %s", diff --git a/musicbot/exceptions.py b/musicbot/exceptions.py index 7846b88c6..f6d7ba0a5 100644 --- a/musicbot/exceptions.py +++ b/musicbot/exceptions.py @@ -93,6 +93,11 @@ class HelpfulWarning(HelpfulError): pass +# simple exception used to signal that initial config load should retry. +class RetryConfigException(Exception): + pass + + # Signal codes used in RestartSignal class RestartCode(Enum): RESTART_SOFT = 0 diff --git a/musicbot/filecache.py b/musicbot/filecache.py index f64e4aa15..7082d30c2 100644 --- a/musicbot/filecache.py +++ b/musicbot/filecache.py @@ -8,6 +8,7 @@ import time from typing import TYPE_CHECKING, Dict, Tuple +from . import write_path from .constants import DATA_FILE_CACHEMAP, DEFAULT_DATA_DIR from .utils import format_size_from_bytes @@ -32,7 +33,7 @@ def __init__(self, bot: "MusicBot") -> None: self.bot: MusicBot = bot self.config: Config = bot.config self.cache_path: pathlib.Path = bot.config.audio_cache_path - self.cachemap_file = pathlib.Path(DEFAULT_DATA_DIR).joinpath(DATA_FILE_CACHEMAP) + self.cachemap_file = write_path(DEFAULT_DATA_DIR).joinpath(DATA_FILE_CACHEMAP) self.size_bytes: int = 0 self.file_count: int = 0 @@ -40,6 +41,7 @@ def __init__(self, bot: "MusicBot") -> None: # Stores filenames without extension associated to a playlist URL. self.auto_playlist_cachemap: Dict[str, str] = {} self.cachemap_file_lock: asyncio.Lock = asyncio.Lock() + self.cachemap_defer_write: bool = False if self.config.auto_playlist: self.load_autoplay_cachemap() @@ -325,6 +327,12 @@ async def save_autoplay_cachemap(self) -> None: ): return + if self.cachemap_defer_write: + log.everything( # type: ignore[attr-defined] + "Cachemap defer flag is set, not yet saving to disk..." + ) + return + async with self.cachemap_file_lock: try: with open(self.cachemap_file, "w", encoding="utf8") as fh: @@ -365,7 +373,7 @@ def add_autoplay_cachemap_entry(self, entry: "BasePlaylistEntry") -> None: self.auto_playlist_cachemap[filename] = entry.url change_made = True - if change_made: + if change_made and not self.cachemap_defer_write: self.bot.create_task( self.save_autoplay_cachemap(), name="MB_SaveAutoPlayCachemap" ) @@ -384,9 +392,10 @@ def remove_autoplay_cachemap_entry(self, entry: "BasePlaylistEntry") -> None: filename = pathlib.Path(entry.filename).stem if filename in self.auto_playlist_cachemap: del self.auto_playlist_cachemap[filename] - self.bot.create_task( - self.save_autoplay_cachemap(), name="MB_SaveAutoPlayCachemap" - ) + if not self.cachemap_defer_write: + self.bot.create_task( + self.save_autoplay_cachemap(), name="MB_SaveAutoPlayCachemap" + ) def remove_autoplay_cachemap_entry_by_url(self, url: str) -> None: """ @@ -407,7 +416,7 @@ def remove_autoplay_cachemap_entry_by_url(self, url: str) -> None: for key in to_remove: del self.auto_playlist_cachemap[key] - if len(to_remove) != 0: + if len(to_remove) != 0 and not self.cachemap_defer_write: self.bot.create_task( self.save_autoplay_cachemap(), name="MB_SaveAutoPlayCachemap" ) diff --git a/musicbot/logs.py b/musicbot/logs.py index 2bc1f09a3..57e6d91ec 100644 --- a/musicbot/logs.py +++ b/musicbot/logs.py @@ -2,10 +2,11 @@ import glob import logging import os -import pathlib import sys from typing import TYPE_CHECKING, Any +from . import write_path + # protected imports to keep run.py from breaking on missing packages. try: import colorlog @@ -56,24 +57,28 @@ def debug(self, msg: str, *args: Any, **kwargs: Any) -> None: # type: ignore[ov """Log debug level message, translating the message first.""" if self.isEnabledFor(DEBUG): msg = self.i18n.gettext(msg) + kwargs.setdefault("stacklevel", 2) super().debug(msg, *args, **kwargs) def info(self, msg: str, *args: Any, **kwargs: Any) -> None: # type: ignore[override] """Log info level messge, translating the message first.""" if self.isEnabledFor(INFO): msg = self.i18n.gettext(msg) + kwargs.setdefault("stacklevel", 2) super().info(msg, *args, **kwargs) def warning(self, msg: str, *args: Any, **kwargs: Any) -> None: # type: ignore[override] """Log warning level message, with translation first.""" if self.isEnabledFor(WARNING): msg = self.i18n.gettext(msg) + kwargs.setdefault("stacklevel", 2) super().warning(msg, *args, **kwargs) def error(self, msg: str, *args: Any, **kwargs: Any) -> None: # type: ignore[override] """Log error level message, with translation first.""" if self.isEnabledFor(ERROR): msg = self.i18n.gettext(msg) + kwargs.setdefault("stacklevel", 2) super().error(msg, *args, **kwargs) def exception( # type: ignore[override] @@ -83,12 +88,14 @@ def exception( # type: ignore[override] Log error with exception info. Exception text may not be translated. """ + kwargs.setdefault("stacklevel", 3) self.error(msg, *args, exc_info=exc_info, **kwargs) def critical(self, msg: str, *args: Any, **kwargs: Any) -> None: # type: ignore[override] """Log critical level message, with translation first.""" if self.isEnabledFor(CRITICAL): msg = self.i18n.gettext(msg) + kwargs.setdefault("stacklevel", 2) super().critical(msg, *args, **kwargs) # Custom log levels defined here. @@ -125,7 +132,7 @@ def setup_loggers() -> None: return # Do some pre-flight checking... - log_file = pathlib.Path(DEFAULT_MUSICBOT_LOG_FILE) + log_file = write_path(DEFAULT_MUSICBOT_LOG_FILE) if not log_file.parent.is_dir(): try: log_file.parent.mkdir(parents=True, exist_ok=True) @@ -368,7 +375,7 @@ def rotate_log_files(max_kept: int = -1, date_fmt: str = "") -> None: before = datetime.datetime.now().strftime(date_fmt) # Rotate musicbot logs - logfile = pathlib.Path(DEFAULT_MUSICBOT_LOG_FILE) + logfile = write_path(DEFAULT_MUSICBOT_LOG_FILE) logpath = logfile.parent if logfile.is_file(): new_name = logpath.joinpath(f"{logfile.stem}{before}{logfile.suffix}") @@ -392,7 +399,7 @@ def rotate_log_files(max_kept: int = -1, date_fmt: str = "") -> None: path.unlink() # Rotate discord.py logs - dlogfile = pathlib.Path(DEFAULT_DISCORD_LOG_FILE) + dlogfile = write_path(DEFAULT_DISCORD_LOG_FILE) dlogpath = dlogfile.parent if dlogfile.is_file(): new_name = dlogfile.parent.joinpath(f"{dlogfile.stem}{before}{dlogfile.suffix}") diff --git a/musicbot/permissions.py b/musicbot/permissions.py index 78c6e410d..8cc2f33a2 100644 --- a/musicbot/permissions.py +++ b/musicbot/permissions.py @@ -7,6 +7,7 @@ import configupdater import discord +from . import write_path from .config import ConfigOption, ConfigOptionRegistry, ExtendedConfigParser, RegTypes from .constants import ( DEFAULT_OWNER_GROUP_NAME, @@ -64,8 +65,8 @@ class PermissionsDefaults: } # These defaults are not used per-group but rather for permissions system itself. - perms_file: pathlib.Path = pathlib.Path(DEFAULT_PERMS_FILE) - example_perms_file: pathlib.Path = pathlib.Path(EXAMPLE_PERMS_FILE) + perms_file: pathlib.Path = write_path(DEFAULT_PERMS_FILE) + example_perms_file: pathlib.Path = write_path(EXAMPLE_PERMS_FILE) class PermissiveDefaults(PermissionsDefaults): @@ -114,22 +115,29 @@ def __init__(self, perms_file: pathlib.Path) -> None: if not self.config.read(self.perms_file, encoding="utf-8"): example_file = PermissionsDefaults.example_perms_file - log.info( - "Permissions file not found, copying from: %s", - example_file, - ) - - try: - shutil.copy(example_file, self.perms_file) - self.config.read(self.perms_file, encoding="utf-8") + if example_file.is_file(): + log.warning( + "Permissions file not found, copying from: %s", + example_file, + ) - except Exception as e: - log.exception( - "Error copying example permissions file: %s", example_file + try: + shutil.copy(example_file, self.perms_file) + self.config.read(self.perms_file, encoding="utf-8") + except Exception as e: + log.exception( + "Error copying example permissions file: %s", example_file + ) + raise RuntimeError( + f"Unable to copy {example_file} to {self.perms_file}: {str(e)}" + ) from e + else: + log.error( + "Could not locate config permissions or example permissions files.\n" + "MusicBot will generate the config files at the location:\n" + " %(perms_file)s", + {"perms_file": self.perms_file.parent}, ) - raise RuntimeError( - f"Unable to copy {example_file} to {self.perms_file}: {str(e)}" - ) from e for section in self.config.sections(): if section == DEFAULT_OWNER_GROUP_NAME: @@ -151,6 +159,28 @@ def __init__(self, perms_file: pathlib.Path) -> None: self.register.validate_register_destinations() + if not self.perms_file.is_file(): + log.info("Generating new config permissions files...") + try: + ex_file = PermissionsDefaults.example_perms_file + self.register.write_default_ini(ex_file) + shutil.copy(ex_file, self.perms_file) + self.config.read(self.perms_file, encoding="utf-8") + except OSError as e: + raise HelpfulError( + # fmt: off + "Error creating default config permissions file.\n" + "\n" + "Problem:\n" + " MusicBot attempted to generate the config files but failed due to an error:\n" + " %(raw_error)s\n" + "\n" + "Solution:\n" + " Make sure MusicBot can read and write to your config files.\n", + # fmt: on + fmt_args={"raw_error": e}, + ) from e + def _generate_default_group(self, name: str) -> "PermissionGroup": """Generate a group with `name` using PermissionDefaults.""" return PermissionGroup(name, self, PermissionsDefaults) diff --git a/musicbot/utils.py b/musicbot/utils.py index ad4c93ac8..0f4e90ab7 100644 --- a/musicbot/utils.py +++ b/musicbot/utils.py @@ -397,6 +397,9 @@ def format_size_to_bytes(size_str: str, strict_si: bool = False) -> int: :param: size_str: A size notation like: 20MB or "12.3 kb" :param: strict_si: Toggles use of 1000 rather than 1024 for SI suffixes. """ + if not size_str: + return 0 + si_units = 1024 if strict_si: si_units = 1000 diff --git a/musicbot/ytdlp_oauth2_plugin.py b/musicbot/ytdlp_oauth2_plugin.py index fbaac2968..135a85e34 100644 --- a/musicbot/ytdlp_oauth2_plugin.py +++ b/musicbot/ytdlp_oauth2_plugin.py @@ -26,6 +26,7 @@ ) from yt_dlp.utils.traversal import traverse_obj # type: ignore[import-untyped] +from . import write_path from .constants import ( DATA_FILE_YTDLP_OAUTH2, DEFAULT_DATA_DIR, @@ -50,7 +51,7 @@ class YtdlpOAuth2Exception(Exception): class YouTubeOAuth2Handler(InfoExtractor): # type: ignore[misc] # pylint: disable=W0223 - _oauth2_token_path: pathlib.Path = pathlib.Path(DEFAULT_DATA_DIR).joinpath( + _oauth2_token_path: pathlib.Path = write_path(DEFAULT_DATA_DIR).joinpath( DATA_FILE_YTDLP_OAUTH2 ) _client_token_data: TokenDict = {} diff --git a/run.py b/run.py index 7c70ed87c..af81d41b1 100644 --- a/run.py +++ b/run.py @@ -17,10 +17,15 @@ from typing import Any, Callable, Coroutine, Dict, List, Optional, Tuple, Union import musicbot.logs +from musicbot import get_write_base, parse_write_base_arg, write_path from musicbot.constants import ( + DEFAULT_AUDIO_CACHE_DIR, + DEFAULT_DATA_DIR, DEFAULT_I18N_LANG, DEFAULT_LOGS_KEPT, DEFAULT_LOGS_ROTATE_FORMAT, + DEFAULT_MEDIA_FILE_DIR, + DEFAULT_OPTIONS_FILE, MAXIMUM_LOGS_LIMIT, ) from musicbot.constants import VERSION as BOTVERSION @@ -51,6 +56,7 @@ class ClientConnectorCertificateError(Exception): # type: ignore[no-redef] I18n() +parse_write_base_arg() musicbot.logs.install_logger() log = logging.getLogger("musicbot.launcher") @@ -352,9 +358,6 @@ def sanity_checks(args: argparse.Namespace) -> None: # Make sure we're in a writable env req_ensure_env() - # Make our folders if needed - pathlib.Path("data").mkdir(exist_ok=True) - # For rewrite only req_check_deps() @@ -482,10 +485,8 @@ def req_ensure_env() -> None: ) bugger_off() + # Make sure musicbot exists and test if it can be imported. try: - if not os.path.isdir("config"): - raise RuntimeError('folder "config" not found') - if not os.path.isdir("musicbot"): raise RuntimeError('folder "musicbot" not found') @@ -498,19 +499,39 @@ def req_ensure_env() -> None: log.critical("Failed environment check, %s", e) bugger_off() + # test we have permissions to write files. + # if so, make all our write-enabled directories if needed. + test_path: pathlib.Path = write_path("musicbot-test-folder") try: - os.mkdir("musicbot-test-folder") + os.mkdir(test_path) + # Make our write-enabled folders if needed. + write_path(DEFAULT_DATA_DIR).mkdir(parents=True, exist_ok=True) + write_path(DEFAULT_OPTIONS_FILE).parent.mkdir(parents=True, exist_ok=True) + write_path(DEFAULT_MEDIA_FILE_DIR).mkdir(parents=True, exist_ok=True) + write_path(DEFAULT_AUDIO_CACHE_DIR).mkdir(parents=True, exist_ok=True) except ( OSError, FileExistsError, PermissionError, IsADirectoryError, ): - log.critical("Current working directory does not seem to be writable") - log.critical("Please move the bot to a folder that is writable") + basedir = get_write_base() + if not basedir: + basedir = os.getcwd() + + log.critical( + "MusicBot could not write files in the following directory:\n%(dir)s", + {"dir": basedir}, + ) + log.critical( + "Please make sure MusicBot can read and write in the above directory." + ) bugger_off() finally: - shutil.rmtree("musicbot-test-folder", True) + try: + shutil.rmtree(test_path, ignore_errors=True) + except Exception: # pylint: disable=broad-exception-caught + log.exception("Failed to clean up write-test path.") # this actually does an access check as well. ffmpeg_bin = shutil.which("ffmpeg") @@ -787,9 +808,17 @@ def log_levels_int(level_name: str) -> int: % (DEFAULT_LOGS_ROTATE_FORMAT.replace("%", "%%")), ) - # TODO: maybe more arguments for other things: - # --config-dir force this directory for config data (all files) - # --config-file load config from this file, but default for other configs. + ap.add_argument( + "--write-dir", + dest="global_writes_basedir", + default="", + type=str, + help=_L( + "Supply a directory where MusicBot can store all mutable files.\n" + "Essentially treats the install directory as read-only.\n" + "MusicBot must have permission to create this directory.\n" + ), + ) args = ap.parse_args() @@ -1146,7 +1175,10 @@ def main() -> None: break except HelpfulError as e: - log.error(_L(e.message), e.fmt_args) + if e.fmt_args: + log.error(_L(e.message), e.fmt_args) + else: + log.error(_L(e.message)) break except TerminateSignal as e:

    pn+>$x6oss)~r^XY^-K89k03N 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 literal 0 HcmV?d00001 diff --git a/i18n/sv_SE/LC_MESSAGES/musicbot_messages.po b/i18n/sv_SE/LC_MESSAGES/musicbot_messages.po new file mode 100644 index 000000000..888815388 --- /dev/null +++ b/i18n/sv_SE/LC_MESSAGES/musicbot_messages.po @@ -0,0 +1,3217 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: 2024-11-08 18:12\n" +"Last-Translator: \n" +"Language-Team: Swedish\n" +"Language: sv_SE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: sv-SE\n" +"X-Crowdin-File: /fae/i18n/musicbot_messages.pot\n" +"X-Crowdin-File-ID: 28\n" + +#: musicbot/aliases.py:56 +msgid "Error while loading aliases.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "Fel vid laddning av alias.\n\n" +"Problem:\n" +" Dina aliase-filer (aliases.json & exempel_aliases.json) saknas.\n\n" +"Lösning:\n" +" Ersätt alias config fil(er) eller kopiera dem från:\n" +" https://github.com/Just-Some-Bots/MusicBot/" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "Medlemmen är inte röstaktiverad och kan inte använda detta kommando." + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "Du kan inte använda detta kommando när du inte är i röstkanalen." + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "MusicBot har inte behörighet att ansluta i kanalen: `%(name)s`" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "MusicBot har inte behörighet att tala i kanalen: `%(name)s`" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "MusicBot kunde inte ansluta till kanalen.\n" +"Försök igen senare, eller starta om boten om detta fortsätter." + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "MusicBot anslutning till röst avbröts. Detta är udda. Kanske omstart?" + +#: musicbot/bot.py:840 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot har inte behörighet att tala." + +#: musicbot/bot.py:844 +msgid "MusicBot could not request to speak." +msgstr "MusicBot kunde inte begära att få tala." + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "Botten är inte i en röstkanal.\n" +"Använd kommandot för att föra botten till din röstkanal." + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "Något är fel, vi fick inte röstklienten." + +#: musicbot/bot.py:1084 +#, python-format +msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" +msgstr "Hoppar över nästa låt `%(title)s` som begärare `%(user)s` är inte i röst!" + +#: musicbot/bot.py:1102 +#, python-format +msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" +msgstr "%(mention)s - din låt `%(title)s` spelar nu i %(channel)s!" + +#: musicbot/bot.py:1111 +#, python-format +msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" +msgstr "Spelar nu i %(channel)s: `%(title)s` tillagd av %(author)s!" + +#: musicbot/bot.py:1122 +#, python-format +msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" +msgstr "Nu spelas automatiskt tillagd post `%(title)s` i %(channel)s!" + +#: musicbot/bot.py:1333 +#, python-format +msgid "Skipping songs added by %(user)s as they are not in voice!" +msgstr "Hoppar över låtar som lagts till av %(user)s eftersom de inte är i röst!" + +#: musicbot/bot.py:1555 +#, python-format +msgid "Playback failed for song `%(song)s` due to an error:\n" +"```\n" +"%(error)s```" +msgstr "Uppspelning misslyckades för låt `%(song)s` på grund av ett fel:\n" +"```\n" +"%(error)s```" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug] Försökte skicka ett ogiltigt svarsobjekt." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "Misslyckades med Discord API-inloggning!\n\n" +"Problem:\n" +" MusicBot kunde inte logga in på Discord API.\n" +" Din token kan vara felaktig eller så kan det finnas ett API-avbrott.\n\n" +"Lösning:\n" +" Se till att du har rätt token inställd i din konfiguration.\n" +" Kontrollera API-status på den officiella webbplatsen: discordstatus.com" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "Den efterfrågade låten `%(subject)s` blockeras av listan över låtblock." + +#: musicbot/bot.py:2831 +msgid "Reset the auto playlist queue by copying it back into player memory.\n" +"This command will be removed in a future version, replaced by the autoplaylist command(s)." +msgstr "Återställ kön för automatisk spellista genom att kopiera den tillbaka till spelarens minne.\n" +"Detta kommando kommer att tas bort i en framtida version, ersätts av kommandot autoplaylist (autoplaylist)." + +#: musicbot/bot.py:2846 +msgid "\\N{OK HAND SIGN}" +msgstr "\\N{OK HAND SIGN}" + +#: musicbot/bot.py:2853 +msgid "Show usage and description of a command, or list all available commands.\n" +msgstr "Visa användning och beskrivning av ett kommando, eller lista alla tillgängliga kommandon.\n" + +#: musicbot/bot.py:2888 +msgid "**Aliases for this command:**\n" +msgstr "**Alias för detta kommando:**\n" + +#: musicbot/bot.py:2891 +#, python-format +msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" +msgstr "`%(alias)s` alias av `%(command)s %(args)s`\n" + +#: musicbot/bot.py:2924 +#, python-format +msgid "**Alias of command:**\n" +" `%(command)s`\n" +msgstr "**Kommandoalias:**\n" +" `%(command)s`\n" + +#. TRANSLATORS: template string for command-specific help output. +#: musicbot/bot.py:2931 +#, python-format +msgid "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" +msgstr "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "Inget sådant kommando" + +#: musicbot/bot.py:2959 +#, python-format +msgid "The list above shows only commands permitted for your use.\n" +"For a list of all commands, run: %(example_all)s\n" +msgstr "Listan ovan visar endast tillåtna kommandon för din användning.\n" +"För en lista över alla kommandon, kör: %(example_all)s\n" + +#: musicbot/bot.py:2965 +#, python-format +msgid "**Commands by name:** *(without prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Command Prefix:** %(prefix)s\n\n" +"For help with a particular command, run: %(example_command)s\n" +"%(all_note)s" +msgstr "**Kommandon efter namn:** *(utan prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Kommandoprefix:** %(prefix)s\n\n" +"För hjälp med ett visst kommando, run: %(example_command)s\n" +"%(all_note)s" + +#: musicbot/bot.py:2984 +msgid " Block a mentioned user." +msgstr " Blockera en nämnd användare." + +#: musicbot/bot.py:2987 +msgid " Unblock a mentioned user." +msgstr " Avblockera en nämnd användare." + +#: musicbot/bot.py:2990 +msgid " Show the block status of a mentioned user." +msgstr " Visa blockstatus för en nämnd användare." + +#: musicbot/bot.py:2994 +msgid "Manage the users in the user block list.\n" +"Blocked users are forbidden from using all bot commands.\n" +msgstr "Hantera användare i listan över användarblock.\n" +"Blockerade användare är förbjudna att använda alla bot kommandon.\n" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "Du måste ange en användare eller ange deras ID-nummer." + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "Ogiltigt underkommando angivet. Använd `help blockuser` för användningsexempel." + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot kunde inte hitta de användare du angav." + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "Ägaren kan inte läggas till i blocklistan." + +#: musicbot/bot.py:3059 +msgid "User block list is currently enabled." +msgstr "Användarblockslista är för närvarande aktiverad." + +#: musicbot/bot.py:3061 +msgid "User block list is currently disabled." +msgstr "Användarblockslista är för närvarande inaktiverad." + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "Kan inte lägga till de användare du listade, de är redan tillagda." + +#: musicbot/bot.py:3078 +#, python-format +msgid "%(number)s user(s) have been added to the block list.\n" +"%(status)s" +msgstr "%(number)s användare har lagts till i blocklistan.\n" +"%(status)s" + +#: musicbot/bot.py:3089 +msgid "None of those users are in the blacklist." +msgstr "Ingen av dessa användare finns i den svarta listan." + +#: musicbot/bot.py:3094 +#, python-format +msgid "User: `%(user)s` is not blocked.\n" +msgstr "Användare: `%(user)s` är inte blockerad.\n" + +#: musicbot/bot.py:3096 +#, python-format +msgid "User: `%(user)s` is blocked.\n" +msgstr "Användare: `%(user)s` är blockerad.\n" + +#: musicbot/bot.py:3099 +#, python-format +msgid "**Block list status:**\n" +"%(status)s\n" +"%(users)s" +msgstr "**Blockera liststatus:**\n" +"%(status)s\n" +"%(users)s" + +#: musicbot/bot.py:3109 +#, python-format +msgid "%(number)s user(s) have been removed from the block list.\n" +"%(status)s" +msgstr "%(number)s användare har tagits bort från blocklistan.\n" +"%(status)s" + +#: musicbot/bot.py:3118 +msgid "Manage a block list applied to song requests and extracted song data.\n" +"A subject may be a song URL or a word or phrase found in the track title.\n" +"If subject is omitted, any currently playing track URL will be added instead.\n\n" +"The song block list matches loosely, but is case-sensitive.\n" +"This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" +msgstr "Hantera en blocklista som tillämpas på låtförfrågningar och extraherade låtdata.\n" +"Ett ämne kan vara en låt-URL eller ett ord eller en fras som finns i låttiteln.\n" +"Om ämnet utelämnas kommer någon URL som spelar spår läggas till istället.\n\n" +"Låtblockslistan matchar löst, men är skiftlägeskänslig.\n" +"Detta innebär att lägga till 'Pie' matchar 'cherry Pie' men inte 'piecrust' i schack.\n" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "Du måste ange ett låtämne om ingen låt spelas just nu." + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "Ogiltigt underkommando angivet. Använd `help blocksong` för användningsexempel." + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "Ämne `%(subject)s` finns redan i listan över låtblock." + +#: musicbot/bot.py:3187 +#, python-format +msgid "Added subject `%(subject)s` to the song block list.\n" +"%(status)s" +msgstr "Lade till ämne `%(subject)s` i listan över låtblock.\n" +"%(status)s" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "Ämnet finns inte i listan över låtblock och kan inte tas bort." + +#: musicbot/bot.py:3204 +#, python-format +msgid "Subject `%(subject)s` has been removed from the block list.\n" +"%(status)s" +msgstr "Ämne `%(subject)s` har tagits bort från blocklistan.\n" +"%(status)s" + +#: musicbot/bot.py:3214 +msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" +msgstr " Lägger till eller tar bort den angivna låten eller spelar upp låten till/från den aktuella spellistan.\n" + +#: musicbot/bot.py:3217 +msgid " Adds the entire queue to the guilds playlist.\n" +msgstr " Lägger till hela kön i guilds spellista.\n" + +#: musicbot/bot.py:3220 +msgid " Show a list of existing playlist files.\n" +msgstr " Visa en lista över befintliga spellistefiler.\n" + +#: musicbot/bot.py:3223 +msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" +msgstr " Återställ kön för automatisk spellista, startar om på första spåret om inte slumpmässigt.\n" + +#: musicbot/bot.py:3226 +msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" +msgstr " Ange en spellista som standard för denna guild och laddar om guild auto spellista.\n" + +#: musicbot/bot.py:3229 +msgid "Manage auto playlist files and per-guild settings." +msgstr "Hantera automatiskt spellista filer och per-guild inställningar." + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "Ogiltigt underkommando angivet. Använd `help autoplaylist` för användningsexempel." + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "Länk till medföljande låt är ogiltig" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "Kön är tom. Lägg till några låtar med ett låtkommando!" + +#: musicbot/bot.py:3273 +msgid "All songs in the queue are already in the autoplaylist." +msgstr "Alla låtar i kön finns redan i autospellistan." + +#: musicbot/bot.py:3277 +#, python-format +msgid "Added %(number)d songs to the autoplaylist." +msgstr "Lade till %(number)d låtar till autospellistan." + +#: musicbot/bot.py:3287 +#, python-format +msgid "Added `%(url)s` to the autoplaylist." +msgstr "Lade till `%(url)s` till autospellistan." + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "Den här låten finns redan i autospellistan." + +#: musicbot/bot.py:3304 +#, python-format +msgid "Removed `%(url)s` from the autoplaylist." +msgstr "Tog bort `%(url)s` från autospellistan." + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "Den här låten finns ännu inte med i autospellistan." + +#: musicbot/bot.py:3316 +#, python-format +msgid "Loaded a fresh copy of the playlist: `%(file)s`" +msgstr "Laddade en ny kopia av spellistan: `%(file)s`" + +#: musicbot/bot.py:3327 +#, python-format +msgid "**Available Playlists:**\n" +"%(names)s" +msgstr "**Tillgängliga spellistor:**\n" +"%(names)s" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "Du måste ange ett filnamn för spellistan." + +#: musicbot/bot.py:3357 +msgid "\n" +"This playlist is new, you must add songs to save it to disk!" +msgstr "\n" +"Den här spellistan är ny, du måste lägga till låtar för att spara den på disken!" + +#: musicbot/bot.py:3362 +#, python-format +msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" +msgstr "Spellistan för denna server har uppdaterats till: `%(name)s`%(note)s" + +#: musicbot/bot.py:3373 +msgid "Generate an invite link that can be used to add this bot to another server." +msgstr "Generera en inbjudningslänk som kan användas för att lägga till denna bot till en annan server." + +#: musicbot/bot.py:3385 +#, python-format +msgid "Click here to add me to a discord server:\n" +"%(url)s" +msgstr "Klicka här för att lägga till mig till en discord-server:\n" +"%(url)s" + +#: musicbot/bot.py:3391 +msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" +"Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" +msgstr "Växla karaokeläget på eller av. Medan aktiverad, kan endast karaokemedlemmar köa låtar.\n" +"Grupper med BypassKaraokeMode behörighetsstyr vilka medlemmar som är Karaokemedlemmar.\n" + +#: musicbot/bot.py:3403 +msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." +msgstr "\\N{OK HAND SIGN} Karaokeläget är nu aktiverat." + +#: musicbot/bot.py:3405 +msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." +msgstr "\\N{OK HAND SIGN} Karaokeläget är nu inaktiverat." + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "Du har inte behörighet att begära spellistor" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "Spellistan har för många poster (%(songs)s men max är %(max)s)" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "Spellistans poster kommer att överskrida din kögräns.\n" +"Det finns %(songs)s i listan, och %(queued)s är redan i kö.\n" +"Gränsen är %(max)s för din grupp." + +#: musicbot/bot.py:3580 +msgid "Bot was previously paused, resuming playback now." +msgstr "Bot har tidigare pausats, återupptar uppspelningen nu." + +#: musicbot/bot.py:3589 +msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" +"You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" +"Playlist links will be extracted into multiple links and added to the queue.\n" +"If you enter a non-URL, the input will be used as search criteria on YouTube and the first result played.\n" +"MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" +msgstr "Lägg till en låt som ska spelas i kön. Om ingen låt spelas eller pausas kommer uppspelningen att startas.\n\n" +"Du kan ange en URL till en video- eller ljudfil eller URL till en tjänst som stöds av yt-dlp.\n" +"Spellista länkar kommer att extraheras till flera länkar och läggas till i kön.\n" +"Om du anger en icke-URL kommer inmatningen att användas som sökkriterier på YouTube och det första resultatet spelas.\n" +"MusicBot stöder också Spotify-URI:er och webbadresser, men ljudet hämtas från YouTube oavsett.\n" + +#: musicbot/bot.py:3628 +msgid "Play command that shuffles playlist entries before adding them to the queue.\n" +msgstr "Spela kommando som blandar spellista poster innan du lägger till dem i kön.\n" + +#: musicbot/bot.py:3665 +#, python-format +msgid "Shuffled playlist items into the queue from `%(request)s`" +msgstr "Blandade spellistobjekt i kön från `%(request)s`" + +#: musicbot/bot.py:3672 +msgid "A play command that adds the song as the next to play rather than last.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "Ett spelkommando som lägger till låten som nästa att spela istället för senast.\n" +"Läsa hjälp för play-kommandot för information om stödda ingångar.\n" + +#: musicbot/bot.py:3707 +msgid "A play command which skips any current song and plays immediately.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "Ett play-kommando som hoppar över alla nuvarande låtar och spelar omedelbart.\n" +"Läs hjälp för play-kommandot för information om stödda ingångar.\n" + +#: musicbot/bot.py:3744 +msgid "Restarts the current song at the given time.\n" +"If time starts with + or - seek will be relative to current playback time.\n" +"Time should be given in seconds, fractional seconds are accepted.\n" +"Due to codec specifics in ffmpeg, this may not be accurate.\n" +msgstr "Starta om den aktuella låten vid given tidpunkt.\n" +"Om tiden börjar med + eller - sök kommer att vara i förhållande till aktuell uppspelningstid.\n" +"Tid bör anges i sekunder, bråksekunderna accepteras.\n" +"På grund av codec specifika i ffmpeg, detta kanske inte är korrekt.\n" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "Kan inte använda söka om det inte finns något att spela." + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "Kan inte använda sökningen på nuvarande spår, den har en okänd varaktighet." + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "Sökandet stöds inte för strömmar." + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "Kan inte använda söka utan tid för att placera uppspelning." + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "Kunde inte konvertera `%(input)s` till en giltig tid i sekunder." + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "Kan inte söka till `%(input)s` (`%(seconds)s` sekunder) i det aktuella spåret med en längd av `%(progress)s / %(total)s`" + +#: musicbot/bot.py:3840 +#, python-format +msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." +msgstr "Söker efter tid `%(input)s` (`%(seconds).2f` sekunder) i den aktuella låten." + +#: musicbot/bot.py:3852 +msgid "Toggles playlist or song looping.\n" +"If no option is provided the current song will be repeated.\n" +"If no option is provided and the song is already repeating, repeating will be turned off.\n" +msgstr "Växlar spellista eller låtslooping.\n" +"Om inget alternativ anges kommer den aktuella låten att upprepas.\n" +"Om inget alternativ finns och låten redan upprepas, kommer upprepningen att stängas av.\n" + +#: musicbot/bot.py:3870 +msgid "No songs are currently playing. Play something with a play command." +msgstr "Inga låtar spelas just nu. Spela något med ett låtkommando." + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "Ogiltigt underkommando. Använd kommandot `help repeat` för användningsexempel." + +#: musicbot/bot.py:3883 musicbot/bot.py:3920 +msgid "Playlist is now repeating." +msgstr "Spellistan repeterar nu." + +#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +msgid "Playlist is no longer repeating." +msgstr "Spellistan repeterar inte längre." + +#: musicbot/bot.py:3892 musicbot/bot.py:3901 +msgid "Player will now loop the current song." +msgstr "Spelaren kommer nu att loopa den aktuella låten." + +#: musicbot/bot.py:3894 musicbot/bot.py:3908 +msgid "Player will no longer loop the current song." +msgstr "Spelaren kommer inte längre att loopa den aktuella låten." + +#: musicbot/bot.py:3898 +msgid "Player is already looping a song!" +msgstr "Spelaren har redan loopat en låt!" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "Spelaren loopar inte för närvarande." + +#: musicbot/bot.py:3926 +msgid "Song is no longer repeating." +msgstr "Sången repeterar inte längre." + +#: musicbot/bot.py:3930 +msgid "Song is now repeating." +msgstr "Sången repeterar nu." + +#: musicbot/bot.py:3938 +msgid " Move song at position FROM to position TO.\n" +msgstr " Flytta låten på plats FRÅN till plats TO.\n" + +#: musicbot/bot.py:3942 +msgid "Swap existing songs in the queue using their position numbers.\n" +"Use the queue command to find track position numbers.\n" +msgstr "Byt befintliga låtar i kön med hjälp av deras positionsnummer.\n" +"Använd kökommandot för att hitta låtpositionsnummer.\n" + +#: musicbot/bot.py:3961 +msgid "There are no songs queued. Play something with a play command." +msgstr "Det finns inga låtar köade. Spela något med ett play-kommando." + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "Sångpositioner måste vara heltal!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "Du gav en position utanför spellistan storlek!" + +#: musicbot/bot.py:3984 +#, python-format +msgid "Successfully moved song from position %(from)s in queue to position %(to)s!" +msgstr "Låten flyttas framgångsrikt från position %(from)s i kö till position %(to)s!" + +#: musicbot/bot.py:4072 +#, python-format +msgid "This link contains a Playlist ID:\n" +"`%(url)s`\n\n" +"Do you want to queue the playlist too?" +msgstr "Denna länk innehåller ett spellista-ID:\n" +"`%(url)s`\n\n" +"Vill du köa spellistan också?" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "Lokal medieuppspelning är inte aktiverad." + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "Spotify-URL är ogiltig eller stöds inte för närvarande." + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "Upptäckte en Spotify-URL, men Spotify är inte aktiverat." + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "Du har nått din köade låtgräns (%(max)s)" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "Karaoke-läget är aktiverat, försök igen när det är inaktiverat!" + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "Misslyckades att extrahera info på grund av fel:\n" +"%(raw_error)s" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "Den videon kan inte spelas. Prova att använda strömkommandot." + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "YouTube-sökning gav inga resultat för: %(url)s" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "Inga låtar lades till, alla låtar var över max varaktighet (%(max)s sekunder)" + +#: musicbot/bot.py:4254 +#, python-format +msgid "Enqueued **%(number)s** songs to be played.\n" +"Position in queue: %(position)s" +msgstr "Sångerna i kö **%(number)s** ska spelas.\n" +"Position i kö: %(position)s" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "Sånglängden överskrider gränsen (%(length)s > %(max)s)" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "Enqueued `%(track)s` ska spelas.\n" +"Position i kön: %(position)s" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "Spelar nästa!" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "%(position)s - uppskattad tid till att spela: `%(eta)s`" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "%(position)s - kan inte uppskatta tiden innan du spelar." + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "Lägg till en media-URL i kön som en ström.\n" +"URL kan vara faktiska strömmande medier, som Twitch, Youtube eller en shoutcast liknande tjänst.\n" +"Du kan också använda icke-strömmade medier för att spela upp den utan att ladda ner den.\n" +"Obs: FFmpeg kan släppa strömmen slumpmässigt eller om anslutning hicka händer.\n" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "Streaming av spellistor stöds ännu inte." + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "Nu strömmande spår `%(track)s`" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr " Sök med tjänst för ett antal resultat med sökfrågan.\n" + +#: musicbot/bot.py:4432 +msgid " Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr " Sök på YouTube efter frågor men få ett anpassat antal resultat.\n" +" Obs: dubbelcitat krävs i detta fall.\n" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "Sök i en tjänst som stöds och välj från resultat att lägga till i kö.\n" +"Service och nummerargument kan utelämnas, standardnummer är 3 resultat.\n" +"Välj från dessa tjänster:\n" +"- yt, youtube (standard)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "Du har nått din gräns för spellistans objekt (%(max)s)" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "Ange en sökfråga. Använd `help search` för mer information." + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "Du kan inte söka efter mer än %(max)s videor" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "Söker efter videor..." + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "Sökning misslyckades på grund av ett fel: %(error)s" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "Inga videor hittades." + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "För att välja en låt, skriv in motsvarande nummer." + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "Sökresultat från %(service)s:" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "**%(index)s**. **%(track)s** %(length)s" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "\n" +"**0**. Avbryt" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "Välj en låt" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "Lade till låt [%(track)s](%(url)s) till kön." + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "Resultat %(number)s i %(total)s: %(url)s" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "Okej, kommer rakt upp!" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "Visa information om vad som spelas just nu." + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "[autoplaylist]" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "Nu spelas" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "Strömmar just nu:" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "Spelar just nu:" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "Tillagd av:" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "`%(user)s`" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "Förlopp:" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "Det finns inga låtar köade! Köa något med ett spelkommando." + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "Säg till MusicBot att gå med i kanalen du är i." + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "Du är inte ansluten till röst. Försök att ansluta till en röstkanal!" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "Ansluten till `%(channel)s`" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "Gör MusicBot att följa en användare när de byter kanal på en server.\n" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "Följer inte längre användaren `%(user)s`" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "Nu följer användaren `%(user)s` mellan röstkanaler." + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot kan inte följa en användare som inte är medlem i servern." + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "Följer användaren `%(user)s` mellan röstkanaler." + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "Pausa uppspelning om en låt spelas upp." + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "Pausad musik i `%(channel)s`" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "Spelaren spelar inte." + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "Återuppspelning om spelaren tidigare var pausad." + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "Återupptagen musik i `%(channel)s`" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "Återupptagen musikkö" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "Spelaren är inte pausad." + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "Blanda alla aktuella spår i kön." + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "Blandade alla låtar i kön." + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "Tar bort alla låtar i kön." + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "Rensade alla låtar från kön." + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "Ta bort en låt från kön, eventuellt på den givna köpositionen.\n" +"Om positionen utelämnas tas låten i slutet av kön bort.\n" +"Använd kökommandot för att hitta positionsnumret på din spår.\n" +"Dock ändras positioner för alla låtar när en ny låt börjar spela.\n" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "Ingenting i kön att ta bort!" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "Tog bort `%(track)s` tillagd av `%(user)s`" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "Ingenting hittades i kön från användaren `%(user)s`" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "Du har inte behörighet att ta bort den posten från kön.\n" +"Du måste vara den som köade det eller har omedelbar hoppa över behörigheter." + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "Ogiltigt postnummer. Använd kökommandot för att hitta köpositioner." + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "Tog bort post `%(track)s` tillagd av `%(user)s`" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "Tog bort post `%(track)s`" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "Hoppa över eller rösta för att hoppa över den nuvarande låten.\n" +"Medlemmar med InstaSkip tillstånd kan använda force parameter för att kringgå röstning.\n" +"Om LegacySkip -alternativet är aktiverat kan kraftparametern ignoreras.\n" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "Kan inte hoppa över! Spelaren spelar inte!" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "Nästa låt `%(track)s` laddas ner, vänligen vänta." + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "Nästa låt kommer att spelas inom kort. Vänligen vänta." + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Något udda händer.\n" +"Du kanske vill starta om boten om den inte börjar fungera." + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "Något konstigt händer.\n" +"Du kanske vill starta om boten om den inte börjar fungera." + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "Du har inte behörighet att tvinga hoppa över en loopad låt." + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "Tvinga hoppad `%(track)s`." + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "Du har inte behörighet att tvinga hopp." + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "Du har inte behörighet att hoppa över en loopad låt." + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "Din skip för `%(track)s` godkändes.\n" +"Omröstningen att hoppa över har passerats.%(next_up)s" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr " Nästa låt kommer!" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "Din hoppa över `%(track)s` blev erkänd.\n" +"Behöver **%(votes)s** fler röster för att hoppa över denna låt." + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "Set the output volume level of MusicBot from 1 to 100.\n" +"Volymparameter tillåter en ledande + eller - för relativa justeringar.\n" +"Volyminställningen behålls tills MusicBot startas om.\n" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "Nuvarande volym: `%(volume)s%%`" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "`%(new_volume)s` är inte ett giltigt tal" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "Uppdaterad volym från **%(old)d** till **%(new)d**" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "Orimlig volymförändring angiven: %(old_volume)s%(adjustment)s är %(new_volume)s.\n" +"Volymen kan endast ändras från 1 till 100." + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "Orimlig volym angiven: %(volume)s. Ange ett värde mellan 1 och 100." + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "Ändra endast uppspelningshastigheten för den nuvarande uppspelningslåten.\n" +"Graden måste vara mellan 0.5 och 100. på grund av ffmpeg begränsningar.\n" +"Uppspelning av strömning stöder inte hastighetsjusteringar.\n" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "Inget spår spelas, kan inte ställa in hastighet.\n" +"Använd konfigurationskommandot för att ställa in en standard uppspelningshastighet." + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "Hastighet kan inte tillämpas på strömmade medier." + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "Du måste ange en hastighet att ställa in." + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "Hastigheten du angav är ogiltig. Använd ett nummer mellan 0,5 och 100." + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "Ställer in uppspelningshastighet till `%(speed).3f` för nuvarande spår." + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr " Lägg till ett nytt alias med valfria argument.\n" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr " Ta bort ett alias med det angivna namnet." + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr " Ladda om eller spara alias från/till konfigurationsfilen." + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "Tillåter hantering av alias från oenighet. För att se alias använder du hjälpkommandot." + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "Ogiltigt alternativ för kommandot: `%(option)s`" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "Alias laddade om från konfigurationsfilen." + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "Alias sparade i konfigurationsfilen." + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "Det gick inte att spara alias på grund av fel:\n" +"`%(raw_error)s`" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "Du måste tillhandahålla ett alias och ett kommando till alias" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "Nytt alias tillagt. `%(alias)s` är nu ett alias av `%(command)s`" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "Du måste ange ett alias namn för att ta bort." + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "Alias `%(alias)s` finns inte." + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "Alias `%(alias)s` togs bort." + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr " Visar hjälptext om eventuella saknade konfigurationsalternativ.\n" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr " Listar namnen på alternativ som har ändrats sedan du laddade konfigurationsfilen.\n" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr " Lista tillgängliga konfigurationsalternativ och deras sektioner.\n" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr " Ladda om filen options.ini från disk.\n" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr " Visar hjälptext för ett specifikt alternativ.\n" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr " Visa det aktuella värdet av alternativet.\n" + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr " Sparar det aktuella värdet till alternativfilen.\n" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr " Validerar alternativet och ställer in konfigurationen för sessionen, men inte filen.\n" + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr " Återställ alternativet till dess standardvärde.\n" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "Hantera options.ini konfiguration inifrån Discord." + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "Konfigurationen kan inte använda kanal och användarnamn samtidigt." + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "**Alternativ saknas :** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Standard är satt till: %(default)s```\n" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "*Alla konfigurationsalternativ är närvarande och redovisas för!*" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "Inga konfigurationsalternativ verkar ändras." + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "**Ändrade alternativ:**\n" +"%(changed)s" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "## Tillgängliga alternativ:\n" +"**Redigerbara alternativ:**\n" +"%(editable)s\n" +"**Endast manuell redigering:**\n" +"%(manual)s" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "Konfigurationsalternativ laddades om från filen framgångsrikt!" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "Det går inte att ladda om konfigurationen på grund av följande fel:\n" +"%(raw_error)s" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "Kunde inte lösa undervisningsnamn från alternativets namn. Ange ett giltigt undervisnings- och alternativnamn." + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "Det alternativ som anges är tvetydigt, ange ett avsnittsnamn." + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "Du måste ange ett namn och alternativnamn för detta kommando." + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "Sektionen `%(section)s` är inte tillgänglig.\n" +"De tillgängliga sektionerna är: %(sections)s" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "Alternativet `%(option)s` är inte tillgängligt." + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "Det här alternativet kan bara ställas in genom att redigera konfigurationsfilen." + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "Som standard är detta alternativ inställt på: %(default)s" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Val:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte spara till disk." + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "Kunde inte spara alternativet: `%(option)s`" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "Alternativet sparades framgångsrikt: `%(config)s`" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "Alternativ `%(option)s` är inte redigerbar, värde kan inte visas." + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Val:** `%(config)s`\n" +"Nuvarande värde: `%(loaded)s`\n" +"INI filvärde: `%(ini)s`" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte uppdatera inställningen." + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "Du måste ange ett avsnitt, alternativ och värde för detta underkommando." + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "Alternativet `%(option)s` uppdaterades inte!" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "Alternativet `%(config)s` uppdaterades för denna session.\n" +"För att spara ändringen använd `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "Alternativet `%(option)s` är inte redigerbart. Kan inte återställa till standard." + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "Alternativet `%(option)s` återställdes inte till standard!" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "Alternativ `%(config)s` återställdes till sitt standardvärde `%(default)s`.\n" +"För att spara ändringen använd `config save %(section)s %(option)s`" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "Föråldrat kommando, använd kommandot config istället." + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "Alternativkommandot är föråldrat, använd kommandot config istället." + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "Visa information om cache-lagring eller rensa cache enligt konfigurerade begränsningar.\n" +"Genom att använda uppdateringsalternativet kommer att skanna cachen efter externa ändringar innan detaljer visas." + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "Ogiltigt alternativ angivet, användning: info, uppdatering eller rensa" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "Inaktiverad" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "Aktiverad" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "%(time)s dagar" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "Obegränsad" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "**Video Cache:** *%(state)s*\n" +"**Lagringsbegränsning:** *%(size)s*\n" +"**Tidsbegränsning:** *%(time)s*\n\n" +"**Cached nu: %(used)s i %(files)s fil(er)." + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "Cachen har rensats." + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**Misslyckades** att ta bort cache, kolla loggar för mer information..." + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "Ingen cache hittades att rensa." + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "Visa information om aktuell spelarkö.\n" +"Valfritt sidnummer visar senare poster i kön.\n" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "Kö sida argument måste vara ett heltal." + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "Begärt sidnummer är utanför gränserna.\n" +"Det finns **%(total)s** sidor." + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "(okänd tid)" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "Spelar just nu: `%(title)s`\n" +"La till: `%(user)s`\n" +"Framsteg: `[%(progress)s/%(total)s]`\n" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "**Inlägg #%(index)s:**Titel: `%(title)s`\n" +"Lades till av: `%(user)s\n\n" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "%(progress)sDet finns `%(total)s` poster i kön.\n" +"Här är nästa %(per_page)s låtar, med start på låten #%(start)s\n\n" +"%(tracks)s" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "Låtar i kö" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "Försök igen. MusicBot kunde inte göra eller få en referens till kömeddelandet.\n" +"Om problemet kvarstår, skicka in en felrapport." + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "Sök efter och ta bort botmeddelanden och kommandon från anropstextkanalen.\n" +"Tillval tillhandahålla ett antal meddelanden att söka genom, 50 som standard 500 max.\n" +"Detta kommando kan vara långsamt om större intervall anges.\n" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "Ogiltig parameter. Ange ett antal meddelanden att söka." + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "Kan inte använda rensning på privat DM-kanal." + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "Rensade upp %(number)s meddelande(er)." + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "Bot har inte behörighet att hantera meddelanden." + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr "Dumpa de enskilda webbadresserna i en spellista till en fil." + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "Den angivna URL:en var inte en giltig URL." + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "Kunde inte extrahera information från indata-url\n" +"%(raw_error)s\n" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "Detta verkar inte vara en spellista." + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "Här är spellistan dumpa för: %(url)s" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "Visa ditt Discord-användar-ID eller ID för en nämnd användare.\n" +"Detta kommando är föråldrat till förmån för utvecklarläge i Discord-klienter.\n" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "Ditt användar-ID är `%(id)s`" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "Användar-ID för `%(username)s` är `%(id)s`" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "Lista Discord-ID för den valda kategorin.\n" +"Returnerar alla ID-data som standard, men en eller flera kategorier kan väljas.\n" +"Detta kommando är föråldrat till förmån för att använda Utvecklarläge i Discord-klienter.\n" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "Giltiga kategorier: %(cats)s" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "Här är de ID du begärt:" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permissions of the mentioned user." +msgstr "Få en lista över dina rättigheter eller behörigheter för den nämnda användaren." + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "Ogiltigt användar-ID eller server-smeknamn, vänligen dubbelkolla ID och försök igen." + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "Kunde inte bestämma discord-användaren. Försök igen." + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Dina kommandobehörigheter i %(server)s är:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "Kommandobehörigheterna för %(username)s i %(server)s är:\n" +"```\n" +"%(permissions)s\n" +"```" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr " Visa laddade grupper och listbehörighetsalternativ.\n" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr " Laddar om behörigheter från permissions.ini filen.\n" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr " Lägg till ny grupp med standardinställningar.\n" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr " Ta bort befintlig grupp.\n" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr " Visa hjälptext för behörighetsalternativet.\n" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr " Visa behörighetsvärde för given grupp och behörighet.\n" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr " Spara behörighetsgrupp till fil.\n" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr " Ange behörighetsvärde för gruppen.\n" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "Hantera behörighet.ini konfiguration inifrån diskord." + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "Behörigheter kan inte använda kanal och användarnamn samtidigt." + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "Behörigheter laddades om från filen framgångsrikt!" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "Det går inte att ladda om behörigheter på grund av ett fel:\n" +"%(raw_error)s" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "## Tillgängliga grupper:\n" +"%(groups)s\n" +"## Tillgängliga alternativ:\n" +"%(options)s\n" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "Du måste ange ett grupp- eller alternativnamn för detta kommando." + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "Du måste ange en grupp, alternativ och värde för detta kommando." + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "%(option)s underkommandot kräver ett grupp- och behörighetsnamn." + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "Gruppen `%(group)s` är inte tillgänglig.\n" +"De tillgängliga grupperna är: %(sections)s" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "Behörigheten `%(option)s` är inte tillgänglig." + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "Denna behörighet kan bara ställas in genom att redigera behörighetsfilen." + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "Som standard är den här behörigheten satt till: `%(value)s`" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "**Behörighet:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "Kan inte lägga till grupp `%(group)s` det finns redan." + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "Ny grupp lades till: `%(group)s`\n" +"Du kan nu anpassa behörigheterna med: `setperms set %(group)s`\n" +"Se till att spara den nya gruppen med: `setperms save %(group)s`" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "Kan inte ta bort inbyggd grupp." + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "Tog bort grupp: `%(group)s`\n" +"Se till att spara denna ändring med: `setperms save %(group)s`" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "Ägargruppen är inte redigerbar." + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "Det gick inte att spara gruppen: `%(group)s`" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "Gruppen sparades framgångsrikt: `%(group)s`" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "**Behörighet:** `%(permission)s`\n" +"Nuvarande värde: `%(loaded)s`\n" +"INI filvärde: `%(ini)s`" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "Behörighet `%(option)s` uppdaterades inte!" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "Behörighet `%(permission)s` uppdaterades för denna session.\n" +"För att spara ändringen använd `setperms save %(section)s %(option)s`" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "Ändra botens användarnamn på diskett.\n" +"Obs: API:et kan begränsa namnändringar till två gånger per timme." + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "Det gick inte att ändra användarnamn. Ändrade du namn för många gånger?\n" +"Kom ihåg att namnändringar är begränsade till två gånger per timme.\n" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "Misslyckades att ändra användarnamn på grund av fel: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "Ange botens användarnamn till `%(name)s`" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "Ändra MusicBots smeknamn." + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "Det går inte att ändra smeknamn: ingen behörighet." + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "Misslyckades att ange smeknamn på grund av fel: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "Sätt botens smeknamn till `%(nick)s`" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr " Ange ett prefix för kommandot per server." + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr " Rensa kommandoprefixet per server." + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "Åsidosätt standardkommandoprefixet på servern.\n" +"Alternativet EnablePrefixPerGuild måste aktiveras först." + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "Anpassad emoji måste vara från den här servern för att använda som prefix." + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "Server-kommandoprefixet är rensat." + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "Serverkommandoprefix är nu: %(prefix)s" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "Prefix per server är inte aktiverad!\n" +"Använd konfigurationskommandot för att uppdatera prefixet istället." + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "Ändra MusicBots avatar.\n" +"Att koppla en fil och utelämna url-parametern fungerar.\n" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "Du måste ange en URL eller bifoga en fil." + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "Det gick inte att ändra avatar på grund av fel: \n" +"%(raw_error)s" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "Ändrade botens avatar." + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "Tvinga MusicBot att koppla från discord-servern." + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "Frånkopplad från servern `%(guild)s`" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "Kopplade från en spellös röstklient? [BUG]" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "Inte ansluten till servern `%(guild)s`" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr " Försök att ladda om utan processens omstart. Standardalternativet.\n" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr " Försök att starta om hela MusicBot processen, ladda om allt.\n" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr " Fullständig omstart, men försök att uppdatera pip-paket innan omstart.\n" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr " Fullständig omstart, men uppdatera MusicBot källkod med git först.\n" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr " Försök att uppdatera alla beroenden och källkod innan den startas om.\n" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "Försök att starta om MusicBot på ett antal olika sätt.\n" +"Med inget alternativ medföljer antyds en `soft`-omstart.\n" +"Den kan användas för att fjärruppdatera en MusicBot installation, men bör användas med försiktighet.\n" +"Om du har en servicehanterare, rekommenderar vi att du använder den istället för detta kommando för omstart.\n" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "Ogiltigt angivet alternativ, använd en av: mjuk, full, uppgradering, uppip eller upgit" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "%(emoji)s Startar om aktuell instans..." + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "%(emoji)s Startar om botprocessen..." + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "%(emoji)s Försöker uppgradera nödvändiga pip-paket och starta om boten..." + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "%(emoji)s Kommer att försöka uppdatera botkoden med git och starta om boten..." + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "%(emoji)s Kommer att försöka uppgradera allt och starta om boten..." + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "Koppla från alla röstkanaler och avsluta MusicBot-processen." + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr " Lämna discord-servern med namn eller server-ID." + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "Tvinga MusicBot att lämna den angivna Discord-servern.\n" +"Namnen är skiftlägeskänsliga, så att använda ett ID-nummer är mer tillförlitligt.\n" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "Du måste ange ett ID eller namn." + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "Ingen guild hittades med ID eller namn `%(input)s`" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "Okänd" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "Lämnade guilden: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "Kommando som används för testning. Det skriver ut en lista med kommandon som kan verifieras av en testsvit." + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "Detta kommando utfärdar en logg på nivå CRITICAL, men gör inget annat.\n" +"Kan användas för att manuellt identifiera händelser i MusicBot loggfilen.\n" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "Loggad brytpunkt med ID: %(uuid)s" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr " Visa de vanligaste typerna som rapporterats av objgraph.\n" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr " Visa begränsad objgraph.show_growth() utgång.\n" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr " Visa de vanligaste typerna av läckande objekt.\n" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr " Visa typvärden för läckande objekt.\n" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr " Utvärdera den givna funktionen och argumenten på objektgrafen.\n" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "Interagera med objektgrafen, om den är installerad, för att få insikt i minnesanvändning.\n" +"Du kan skicka en godtycklig metod med argument (men inga mellanslag!) som är medlem i objektgrafen.\n" +"Eftersom denna metod utvärderar godtycklig kod anses den vara farlig som debug kommandot.\n" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "Kunde inte importera `objgraph`, är det installerat?" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "Detta kommando kommer att exekvera godtycklig python-kod i kommandomfånget.\n" +"Första eval() försöks, om undantag kastas exec() testas nästa.\n" +"Om eval lyckas, visas dess returvärde.\n" +"Om exec lyckas, kan ett värde ställas in på lokal variabel `result` och det värdet kommer att returneras.\n\n" +"Multi-line-kod kan köras om den är insvept i kodblock.\n" +"Annars kan endast en enda rad köras.\n\n" +"Detta kommando kan tas bort i en framtida version, och används av utvecklare för att felsöka MusicBot beteende.\n" +"Faran med detta kommando kan inte underskattas. Använd den inte eller ge tillgång till den om du inte förstår riskerna!\n" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "Misslyckades att köra felsökningskod:\n" +"%(py_code)s\n" +"Undantag: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "Skapa 'markdown' för alternativ, behörigheter eller kommandon från koden.\n" +"Utgången används för att uppdatera GitHub sidor och är därmed olämplig för normal referensanvändning." + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "Underkommando måste vara ett av: %(options)s" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "Gör standard INI-filer." + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "Sparade den begärda INI-filen till disk. Gå och kontrollera den" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "Visa den nuvarande botversionen och sök efter uppdateringar till MusicBot eller beroenden.\n" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "Kunde inte lokalisera git körbar." + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "Inga uppdateringar i grenen `%(branch)s` fjärrkontroll." + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "Nya commits finns i `%(branch)s` branch remote." + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "Fel vid kontroll, se loggar för detaljer." + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "Uppdatering för `%(name)s` till version: `%(version)s`\n" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "Inga uppdateringar för beroenden hittades." + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "Det finns uppdateringar för MusicBot tillgängliga för nedladdning." + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "MusicBot är helt uppdaterad!" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "%(status)s\n\n" +"**Uppdateringar av källkod:**\n" +"%(git_status)s\n\n" +"**Uppdateringar för beroendeförhållanden:**\n" +"%(pip_status)s" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "Visar MusicBot upptid, eller tid sedan senaste start / omstart." + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "%(name)s har varit online för `%(time)s`" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "Visa latensinformation för Discord API och alla anslutna röstklienter." + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) i region: `%(region)s`\n" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "Inga röstklienter anslutna.\n" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "Visa API-latens och röstfördröjning om MusicBot är ansluten." + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "automatiskt" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "\n" +"**Röstlatency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) i regionen `%(region)s`" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "**API Latency:** `%(delay).0f ms`%(voice)s" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "Visa MusicBot versionsnummer i chatten." + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "https://github.com/Just-Some-Bots/MusicBot\n" +"Aktuell version: `%(version)s`" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr " Uppdatera cookies.txt-filen med hjälp av en cookies.txt-bilaga." + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr " Aktivera eller inaktivera cookies.txt-fil utan att ta bort den." + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "Tillåter hantering av funktionen cookies i yt-dlp.\n" +"När du uppdaterar cookies måste du ladda upp en fil som heter cookies. xt\n" +"Om cookies inaktiveras kommer uppladdning att aktivera funktionen.\n" +"Uppladdningar kommer att radera befintliga cookies, inklusive inaktiverade cookie-filer.\n\n" +"VARNING:\n" +" Kopiering av cookies kan riskera att exponera dina personuppgifter eller konton,\n" +" och kan resultera i bannlysningar eller stöld om du inte är försiktig.\n" +" Det rekommenderas inte på grund av dessa risker, och du bör inte använda denna\n" +" funktion om du inte förstår hur man undviker riskerna." + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookies har redan aktiverats." + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Cookies måste laddas upp för att kunna aktiveras. (Missing cookies file.)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "Kunde inte aktivera cookies på grund av fel: %(raw_error)s" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "Cookies har aktiverats." + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "Kunde inte byta namn på cookiefilen på grund av fel: %(raw_error)s\n" +"Cookies tillfälligt inaktiverade och kommer att aktiveras igen vid nästa omstart." + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "Cookies har inaktiverats." + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "Inga bifogade uppladdningar hittades, försök igen när du laddade upp en cookie-fil." + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "Fel vid nedladdning av cookie-filen från diskett: %(raw_error)s" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "Kunde inte spara kakor till disk: %(raw_error)s" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "Cookies uppladdade och aktiverade." + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "Du kan inte använda denna bot i privata meddelanden." + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "Detta kommando är inte tillåtet för din behörighetsgrupp: %(group)s" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "Detta kommando kräver att du är i en röstkanal." + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "**Kommando:** %(name)s" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "Fel vid undantag" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "**Exempel med prefix:**\n" +"%(prefix)s`%(command)s ...`\n" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "Ingen beskrivning angiven.\n" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "Ingen användning angiven." + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "**Exempel användning:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Beskrivning:**\n" +"%(desc)s" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "Lämnar röstkanal %(channel)s på grund av inaktivitet." + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "Vänster `%(guild)s` på grund av att bot ägaren inte hittas i den." + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "Set the log verbosity of MusicBot. Normalt bör detta vara inställt på INFO.\n" +"Det kan ställas in på något av följande:\n" +" KRITICAL, FEL, VARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY eller ALLTING" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "Discord bot autentiseringstoken för din Bot.\n" +"Besök Discord Developer Portal för att skapa en bot App och generera din Token.\n" +"Publicera aldrig din bot token!" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "Ge ditt eget Spotify-klient-ID för att aktivera MusicBot för att interagera med Spotify-API.\n" +"MusicBot kommer att försöka använda webbspelarens API (gästläge) om inget är satt här.\n" +"Använda dina egna API-uppgifter ger högre användningsgränser än gästläge." + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "Ge din Spotify_ClientID hemlighet för att aktivera MusicBot för att interagera med Spotify-API.\n" +"Detta krävs om du ställer in Spotify_ClientID-alternativet ovan." + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "Ange ett Discord-användar-ID för att ställa in ägaren av denna bot.\n" +"Ordet 'auto' eller nummer 0 kommer att ställa in ägaren baserat på appinformation.\n" +"Endast en ägare ID kan ställas in här. Generellt är inställningen 'auto' rekommenderas." + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "En lista över Discord-användar-ID som kan använda dev-enda-kommandon.\n" +"Varning: dev-only kommandon kan tillåta godtycklig körning av fjärrkod.\n" +"Använd mellanslag för att separera flera ID:n.\n" +"De flesta användare bör lämna denna inställning tom." + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "Discord-medlems-ID för andra robotar som MusicBot inte bör ignorera.\n" +"Använd mellanslag för att separera flera ID:n.\n" +"Alla robotar ignoreras som standard." + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "Kommandoprefix är hur alla MusicBot kommandon måste startas i Discord-meddelanden.\n" +"T.ex. om du anger detta till * så utlöses kommandot av *play ..." + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "Aktivera med kommandon med @[YourBotNameHere]\n" +"Kommandoprefixet är fortfarande tillgängligt, men kan ersättas med @ omnämnande." + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "ID-nummer för textkanaler som MusicBot endast ska använda för kommandon.\n" +"Detta kan innehålla ID för kanaler i flera servrar.\n" +"Använd mellanslag för att separera flera ID:n.\n" +"Alla kanaler används om detta inte är inställt." + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "Tillåt svar i alla kanaler medan ingen specifik kanal är inställd på en server.\n" +"Används endast när BindToChannels saknar ett ID för en server." + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "En lista över röstkanal-ID som MusicBot automatiskt bör ansluta till vid uppstart.\n" +"Använd mellanslag för att separera flera ID:n." + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "MusicBot kommer att försöka skicka Nu Spelar meddelanden direkt till medlemmen som begärde låten istället för att posta i en serverkanal." + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "Inaktivera nu spela meddelanden för låtar som spelas via automatisk spellista." + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "Tvingar MusicBot att använda en specifik kanal för att skicka nu spelande meddelanden.\n" +"Endast en textkanal ID kan användas per server." + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "MusicBot kommer automatiskt ta bort meddelanden som spelas upp." + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "Anger standard volym MusicBot kommer att spela låtar på.\n" +"Du kan använda valfritt värde från 0 till 1 eller 0% till 100% volym." + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "Anger standard hastighet MusicBot kommer att spela låtar på.\n" +"Måste vara ett värde från 0,5 till 100,0 för ffmpeg för att använda den.\n" +"Ett värde på 1 är normal uppspelningshastighet.\n" +"Obs: Strömmat media stöder inte hastighetsjusteringar." + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "Antal kanalmedlemmar röster som krävs för att hoppa över en låt.\n" +"Agerar som ett minimum när SkipRatio skulle kräva fler röster." + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "Denna procent av lyssnarna i röst måste rösta på hoppa över.\n" +"Om SkipsKrävs är lägre än det beräknade värdet, kommer det att användas istället.\n" +"Du kan ställa in detta från 0 till 1, eller 0% till 100%." + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "Tillåt MusicBot att hålla nedladdade medier, eller ta bort det direkt." + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "Om SaveVideos är aktiverat, ange en gräns för hur mycket lagringsutrymme som ska användas." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "Om SaveVideos är aktiverat, ange en gräns för hur länge filer ska behållas." + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "Om SaveVideos är aktiverad, rensa aldrig automatiskt låtarna från cachen oavsett begränsningar." + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "Nämn användaren som lagt till låten när den spelas." + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "Automatiskt gå med i ägaren om de är i en tillgänglig röstkanal när bot startar." + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "Aktivera MusicBot för att automatiskt spela upp musik från auto spellistan när kön är tom." + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "Blanda automatiskt spellista spår innan du spelar dem." + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "Aktivera automatisk hoppa över automatiskt spellista låtar när en användare spelar en ny låt.\n" +"Detta gäller endast för den aktuella låten om den lades till av auto spellista." + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song block list." +msgstr "Ta bort låtar från auto spellistan om de finns i listan låtblock." + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "Tillåt MusicBot att automatiskt ta bort meddelanden som skickas, efter en fördröjning.\n" +"Fördröjningsperioden kontrolleras av DeleteDelayShort och DeleteDelayLong." + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "Ta automatiskt bort giltiga kommandon efter försening." + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "Anger den korta perioden av sekunder innan meddelanden tas bort.\n" +"Denna period används av meddelanden som inte kräver någon ytterligare interaktion." + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "Sätter den långa fördröjningsperioden innan meddelanden tas bort.\n" +"Denna period används av interaktiva eller långlindade meddelanden, som sökning och hjälp." + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "Tillåt MusicBot att spara låtkön, så köade låtar kommer att överleva omstart." + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "Aktivera MusicBot att ladda ner nästa låt i kön medan en låt spelas.\n" +"För närvarande gäller inte detta alternativ för automatisk spellista eller låtar som lagts till i en tom kön." + +#: musicbot/config.py:550 +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "Ange ett anpassat meddelande som ska användas som botens status. Om den lämnas tom, kommer boten\n" +"att visa dynamisk information om musik som spelas i dess status istället.\n" +"Statusmeddelanden kan också använda följande variabler:\n" +" {n_playing} = Antal spelare som spelar musik just nu.\n" +" {n_paused} = Antal för närvarande Pausade musikspelare.\n" +" {n_connected} = Antal anslutna musikspelare, i alla spelartillstånd.\n\n" +"Följande variabler ger tillgång till information om spelaren och spåret.\n" +"Dessa variabler kanske inte är korrekta i multi-guild bots:\n" +" {p0_length} = Spårets totala varaktighet, om tillgängligt. Ex: [2:34]\n" +" {p0_title} = Spårtiteln för den aktuella låten.\n" +" {p0_url} = Spår-URL för den nuvarande uppspelningslåten." + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "Om aktiverad, kommer statusmeddelanden att rapportera information om pausade spelare." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "Om aktiverad, kommer MusicBot att spara låttiteln till: data/[Server ID]/current.txt" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "Tillåt den medlem som bad låten att hoppa över den, kringgående röster." + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "Försöker använda ffmpeg för att få volymnormaliserande alternativ för användning i uppspelning.\n" +"Det här alternativet kan orsaka fördröjning mellan att spela låtar, eftersom hela låten måste bearbetas." + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr "Tillåt MusicBot att formatera sina meddelanden som inbäddar." + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "Antalet poster att visa per sida när du använder q-kommandot för att lista kön." + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." +msgstr "Aktivera MusicBot att automatiskt ta bort ospelbara poster från auto-spellistan." + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "Visa konfigurationsinställningar för MusicBot i loggarna vid start." + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "Aktivera användare med InstaSkip tillåtelse att kringgå röstning och tvinga hoppar över." + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "Om aktiverad, kommer MusicBot att lämna servrar om ägaren inte är med i deras medlemslista." + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "Om aktiverad, kommer MusicBot att tillåta kommandon att ha flera namn med data i: config/aliases.json" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "Ersätt MusicBot namn/version i inbäddad sidfot med anpassad text.\n" +"Används endast när UseEmbeds är aktiverat och det är inte tomt." + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "Ta helt bort sidfoten från bäddar." + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "MusicBot kommer automatiskt att döva sig själv när du går in i en röstkanal." + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "Om aktiverad, kommer MusicBot att lämna en röstkanal när inga användare lyssnar,\n" +"efter att ha väntat på en period i LeaveInactiveVCTimeOut alternativet.\n" +"Lyssnare är kanalmedlemmar, exklusive botar, som inte är döva." + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "Ange en tidsperiod att vänta innan du lämnar en inaktiv röstkanal.\n" +"Du kan ställa in detta till ett antal sekunder eller fras som: 4 timmar" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "Om aktiverad, kommer MusicBot att lämna kanalen omedelbart när låtkön är tom." + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "När pausad eller inte längre spelar, vänta på denna tid sedan lämna röst.\n" +"Du kan ställa in detta till ett antal sekunder av fras som: 15 minuter\n" +"Sätt det till 0 för att inaktivera lämnar på detta sätt." + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "Om aktiverad, måste användare ange sökresultatval genom att skicka ett meddelande istället för att använda reaktioner." + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "Anger standardantalet sökresultat att hämta när du använder sökkommandot utan ett specifikt nummer." + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "Tillåt MusicBot att spara ett kommando per server och aktivera kommandot setprefix." + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "Om aktiverad och flera medlemmar lägger till låtar, kommer MusicBot att organisera uppspelning för en låt per medlem." + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "Tillåt MusicBot att använda tidsinställda pings för att upptäcka nätverksavbrott och tillgänglighet.\n" +"Detta kan vara användbart om du håller botten ansluten till en kanal eller spelar musik 24/7.\n" +"MusicBot måste startas om för att aktivera nätverkstestning.\n" +"Som standard är detta inaktiverat." + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "Aktivera sparande av alla låtar som spelas av MusicBot till en global spellistfil: %(filename)s\n" +"Detta kommer att innehålla alla låtar från alla servrar." + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "Aktivera sparande av låtar som spelas per server till en spellistfil: %(basename)s[Server ID]%(ext)s" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "Aktivera uppspelning av lokala mediefiler med hjälp av uppspelningskommandot.\n" +"När detta är aktiverat kan användare använda: `play file://path/to/fil. xt`\n" +"för att spela upp filer från den lokala MediaFileDirectory-sökvägen." + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "Tillåt MusicBot att automatiskt avpausa när spelkommandon används." + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "Experimentella, HTTP/HTTPS proxyinställningar för att använda med ytdlp media downloader.\n" +"Värdet som anges här skickas till `ytdlp --proxy` och aiohttp header checking.\n" +"Lämna tomt för att inaktivera." + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "Experimentellt alternativ för att ställa in ett statiskt User-Agent-huvud i yt-dlp.\n" +"Det rekommenderas inte typiskt av yt-dlp att ändra UA-strängen.\n" +"För exempel på vad du kan sätta här, se följande två länkar:\n" +" https://developer. ozilla.org/sv-SE/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Lämna tomt för att använda standardsträngar, dynamiskt genererade UA-strängar." + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "Experimentellt alternativ för att aktivera yt-dlp att använda ett YouTube-konto via OAuth2.\n" +"När den är aktiverad måste du använda den genererade URL:en och koden för att godkänna ett konto.\n" +"Auktoriseringstoken lagras sedan i filen `%(oauthfile)s`.\n" +"Detta alternativ bör inte användas när cookies är aktiverade.\n" +"Att använda ett personligt konto kanske inte rekommenderas.\n" +"Ställ in ja för att aktivera eller nej för att inaktivera." + +#: musicbot/config.py:920 +msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "Valfri YouTube-video-URL används vid uppstart för att utlösa OAuth2-behörighet.\n" +"Detta startar OAuth2-prompten tidigt, snarare än att vänta på en låtbegäran.\n" +"URL-adressen här bör vara en tillgänglig YouTube-video-URL.\n" +"Auktoriseringen måste vara klar innan uppstart kommer att fortsätta när detta är inställt." + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "Växla funktionen för användarblocklistan, utan att tömma blocklistan." + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "En valfri sökväg till en textfil som listar Discords användar-ID, en per rad." + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "Aktivera funktionen för blockering av låtar, utan att tömma blocklistan." + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "En valfri sökväg till en textfil som visar webbadresser, ord eller fraser en per rad.\n" +"Varje låttitel eller URL som innehåller någon rad i listan kommer att blockeras." + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "En valfri sökväg till en katalog som innehåller filer för automatisk spellista.\n" +"Varje fil ska innehålla en lista över spelbara webbadresser eller termer, ett spår per rad." + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "En valfri sökväg där spelbara mediefiler kan lagras.\n" +"Alla filer och underkataloger kan sedan nås genom att använda 'file://' som ett protokoll.\n" +"Exempel: file://some/folder/name/file.ext\n" +"Kartor till: %(path)s/some/folder/name/file.ext" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "En valfri sökväg där MusicBot lagrar lång- och kortsiktig cache för uppspelning." + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "Konfigurera automatisk loggfil rotation vid omstart och begränsa antalet filer som behålls.\n" +"När den är inaktiverad sparas endast en logg och dess innehåll byts ut varje körning.\n" +"Sätt till 0 för att inaktivera. Maximalt tillåtet tal är %(max)s." + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "Konfigurera loggfilens datumformat som används när LogsMaxKept är aktiverat.\n" +"Om den lämnas tom, loggas en varning och standard kommer att användas istället.\n" +"Läs mer om tidsformatkoder från tabeller och data här:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "Potentiellt minskar CPU-användningen, men inaktiverar volym- och hastighetskontroller.\n" +"Detta alternativ kommer även att inaktivera UseExperimentalEqualization-alternativet." + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "Fel vid läsning av konfigurationen.\n\n" +"Problem:\n" +" En eller flera obligatoriska konfigurationsalternativ saknas.\n" +" De saknade avsnitten är:\n" +" %(sections)s\n\n" +"Lösning:\n" +" Reparera konfigurationsalternativsfilen.\n" +" Varje [Section] får bara visas en gång, utan någon annan text på samma rad.\n" +" Varje avsnitt måste ha minst ett alternativ.\n" +" Använd exempelalternativen som mall eller kopiera den från förrådet." + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "Fel vid validering av konfigurationsalternativ.\n\n" +"Problem:\n" +" Konfigurationsalternativet AudioCachePath är inte en katalog.\n\n" +"Lösning:\n" +" Kontrollera att sökvägen du har konfigurerat är en sökväg till en mapp / katalog." + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "Fel vid validering av konfigurationsalternativ.\n\n" +"Problem:\n" +" AudioCachePath config option kunde inte ställas in på grund av ett fel:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Dubbelkolla inställningen är giltig, sökväg för tillgänglig katalog." + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "Fel vid läsning av konfigurationsalternativ.\n\n" +"Problem:\n" +" Ingen bot Token angavs i konfigurationsalternativen eller miljön.\n\n" +"Lösning:\n" +" Ställ in konfigurationsalternativet eller ange miljövariabeln %(env_var)s med en app-token." + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "Fel vid hämtning av 'OwnerID' automatiskt.\n\n" +"Problem:\n" +" Discord-appinfo är inte tillgänglig.\n" +" Detta kan vara ett tillfälligt API-avbrott eller ett fel.\n\n" +"Lösning:\n" +" Ställ Manuellt in 'OwnerID' konfigurationsalternativet eller försök igen senare." + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "Fel vid validering av konfigurationsalternativ.\n\n" +"Problem:\n" +" Konfigurationen 'OwnerID' är densamma som ditt Bot / App ID.\n\n" +"Lösning:\n" +" Använd inte Bot eller App ID i fältet 'OwnerID'." + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "Fel vid lokalisering av konfiguration.\n\n" +"Problem:\n" +" Kunde inte hitta eller skapa en konfigurationsfil på grund av ett fel:\n" +" %(raw_error)s\n\n" +"Lösning:\n" +" Verifiera konfigurationsmappen och filerna finns och kan läsas av MusicBot." + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "Fel vid laddning av konfiguration.\n\n" +"Problem:\n" +" MusicBot kunde inte läsa konfigurationsfilen på grund av ett fel:\n" +" %(raw_error)s\n\n" +"Lösning:\n" +" Se till att filen är tillgänglig och felfri.\n" +" Kopiera exempelfilen från repo om allt annat misslyckas." + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "Fel vid laddning av konfigurationsvärde.\n\n" +"Problem:\n" +" Ägar-ID i [%(section)s] > %(option)s är inte giltigt.\n\n" +"Solution:\n" +" sätt %(option)s till ett numeriskt ID eller sätt det till `auto` eller `0` för automatisk ägarbindning." + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "Fel vid laddning av konfigurationsvärde.\n\n" +"Problem:\n" +" Konfigurationsalternativet [%(section)s] > %(option)s är inte en giltig filplats.\n\n" +"Lösning:\n" +" Kontrollera sökvägsinställningen och se till att filen finns och är tillgänglig för MusicBot." + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "Fel vid laddning av konfigurationsvärde.\n\n" +"Problem:\n" +" Ett av ID:n i alternativet [%(section)s] > %(option)s är ogiltigt.\n\n" +"Lösning:\n" +" Se till att alla ID är numeriska, och separeras endast med mellanslag eller kommatecken." + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD verkar inte ha några rubriker..." + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "Song info extrahering returnerade inga data." + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "Kan inte fortsätta extraktionen, händelseslingan är stängd." + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "Spotify-URL är ogiltig eller stöds inte." + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "Fel i yt-dlp vid nedladdning av data: %(raw_error)s" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "Kan inte strömma en ogiltig URL." + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "Den lokala mediefilen kunde inte hittas." + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "Kan inte ladda ner Spotify-länkar, bearbetningsfel med typ: %(type)s" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "Nedladdningen slutfördes inte på grund av ett fel: %(raw_error)s" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "Nedladdning misslyckades på grund av ett yt-dlp fel: %(raw_error)s" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "Nedladdning misslyckades på grund av ett ohanterat undantag: %(raw_error)s" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "Det gick inte att extrahera data för de begärda medierna." + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "Lista över kommandonamn tillåtna för användning, separerade med mellanslag.\n" +"Åtkomst till underkommando kan kontrolleras genom att lägga till _ och underkommandonamn.\n" +"Det är `config_set` ger endast `set`-underkommandot för konfigurationskommandot.\n" +"Detta alternativ åsidosätter CommandBlacklist om satt.\n" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "Lista över kommandonamn som nekas från användning, separerade med mellanslag.\n" +"Fungerar inte om CommandWhitelist är satt!" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "När detta är aktiverat används CommandBlacklist och CommandWhitelist tillsammans.\n" +"Endast kommandon i vitlistan är tillåtna, men underkommandon kan nekas av svartlistan.\n" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "Lista över kommandonamn som bara kan användas när du är i samma röstkanal som MusicBot.\n" +"Vissa kommandon kräver alltid att användaren är i röst, oavsett denna lista.\n" +"Kommandonamn bör separeras med mellanslag." + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "Lista över Discords serverrolls-ID som beviljas denna behörighetsgrupp.\n" +"Detta alternativ ignoreras om användarlistan är inställd." + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "Lista över Discord-medlems-ID som beviljas behörigheter i denna grupp.\n" +"Detta alternativ åsidosätter GrantToRoles." + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "Maximalt antal låtar en användare får köa.\n" +"Ett värde på 0 betyder obegränsad." + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "Maximal längd på en låt på några sekunder. Värdet 0 betyder obegränsad.\n" +"Denna behörighet kan inte tillämpas om låtens varaktighet inte är tillgänglig." + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "Maximalt antal låtar en spellista får ha när den köas.\n" +"Ett värde på 0 betyder obegränsad." + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "Det maximala antalet artiklar som kan returneras i en sökning." + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "Tillåt användare att köa spellistor, eller flera låtar på en gång." + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "Tillåt användare att hoppa över utan röstning, om alternativet LegacySkip är aktiverat." + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "Tillåter användaren att hoppa över en loopad låt." + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "Tillåter användaren att ta bort någon låt från kön.\n" +"Ta inte bort eller hoppa över för närvarande spelar låtar." + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "Hoppa över låtar som lagts till av användare som inte är i röst när deras låt spelas." + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "Tillåter användaren att lägga till låtar i kön när Karaokeläget är aktiverat." + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "Automatiskt anropa till användarens röstkanal när du använder spelkommandon, om bot inte redan är i röst.\n" +"Tillkallelsekommandot måste fortfarande tillåtas för denna grupp!" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "Ange yt-dlp extraktörnamn, separerade med mellanslag, som tillåts att användas.\n" +"När det är tomt används hårdkodade standardinställningar. Standardinställningarna visas ovan, men kan ändras mellan versioner.\n" +"För att tillåta alla extraherare, lägg till `%(allow_all)s` utan citat till listan.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites. d \n\n" +"MusicBot erbjuder också en anpassad tjänst `spotify:musicbot` för att aktivera eller inaktivera Spotify API-extraktion.\n" +"NOTICE: MusicBot kanske inte stöder alla tjänster som är tillgängliga för yt-dlp!\n" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "Du har inte behörighet att spela de begärda medierna.\n" +"yt-dlp extractor `%(extractor)s` är inte tillåtet i din grupp." + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "Kunde inte extrahera information" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "Detta är en spellista." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "Ogiltig innehållstyp `%(type)s` för URL: %(url)s" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "ingen varaktighet data" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "ingen varaktighet i aktuell post" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "Ogiltig track_data, måste vara av typen `track` fick `%(type)s`" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "Svarsstatus är inte OK: [%(status)s] %(reason)s" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "Svar JSON avkodade inte till en dict!" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "Kunde inte göra GET till URL: %(url)s Orsak: %(raw_error)s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "Kunde inte göra POST till URL: %(url)s Orsak: %(raw_error)s" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "Det gick inte att hämta en gästtoken från Spotify, försök ange klient-ID och klienthemlighet" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "API-svaret innehöll inte förväntade data. Saknad nyckel: %(raw_error)s" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "API-svar innehöll oväntade data.\n" +"%(raw_error)s" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "Begärda en token från Spotify, slutade inte få en" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "API-svarsstatus är inte OK: [%(status)s] %(reason)s" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "Endast ägaren kan använda detta kommando." + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "Endast utvecklaranvändare kan använda detta kommando." + diff --git a/i18n/th_TH/LC_MESSAGES/musicbot_logs.mo b/i18n/th_TH/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..0b9181cca61bbbcc88f4ca1da9a92e0b853909b4 GIT binary patch literal 506 zcmZ8e$!@|h5T#O2KK9&$4?T8>4JkxHT*{&%fr?OC^@dC^!Bwy$+v)Nl{i}XMzoio> zTSpp=XZ+^P_H%XlRYSQzy+*yM9F*Ig+1hXXgvy^<^D0vhqa{2`>y*(k)y8j1r_zP- zWF`w^JxpAtmT+HY4iXbnGJQ;-XQl9%0Da+QOdG5b0_VU&%A%Ox0gD(zAk5^Os)+yN zT9k)zlasM<9uh0G%Y`=<*~da>rN|^CQfy+Htc5znV(QoP %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "" + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "" + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "" + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "" + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "" + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "" + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "" + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "" + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "" + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "" + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "" + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "" + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "" + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "" + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "" + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "" + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "" + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "" + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "" + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "" + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "" + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "" + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "" + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "" + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "" + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "" + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "" + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "" + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "" + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "" + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "" + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient some how. You should probably restart the bot." +msgstr "" + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "" + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "" + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with url: %s" +msgstr "" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "" + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "" + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "" + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "" + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "" + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "" + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "" + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "" + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "" + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the autoplaylist extraction and bail." +msgstr "" + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "" + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "" + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "" + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "" + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "" + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-reponse object: %r" +msgstr "" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "" + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "" + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "" + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "" + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "" + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "" + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "" + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "" + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "" + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "" + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "" + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "" + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "" + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "" + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr "" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "" + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non-messagable channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for autojoin channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot autojoin a Private/Non-Guild channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot autojoin to non-connectable channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2451 +msgid "Autojoining voice channels:" +msgstr "" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not autojoining any voice channels" +msgstr "" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "" + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr "" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr "" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr "" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr "" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr "" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr "" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr "" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Nowplaying: %s" +msgstr "" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr "" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr "" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr "" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr "" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr "" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr "" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr "" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr "" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr "" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr "" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr "" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr "" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr "" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr "" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr "" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr "" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr "" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr "" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr "" + +#: musicbot/bot.py:2695 +#, python-brace-format +msgid "The requested song `{subject}` is blocked by the song blocklist." +msgstr "" + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "" + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "" + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from blocklist, not listed: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "" + +#: musicbot/bot.py:3152 +msgid "Ivalid sub-command given. Use `help blocksong` for usage examples." +msgstr "" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "" + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "" + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "" + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "" + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "" + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "" + +#: musicbot/bot.py:4159 +msgid "Detected a spotify URL, but spotify is not enabled." +msgstr "" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "" + +#: musicbot/bot.py:4191 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "" + +#: musicbot/bot.py:4208 +#, python-format +msgid "Youtube search returned no results for: %(url)s" +msgstr "" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with youtube:playlist as extractor key" +msgstr "" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "" + +#: musicbot/bot.py:4396 +#, python-format +msgid "Failed to exctract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "" + +#: musicbot/bot.py:5413 +msgid "The speed you proivded is invalid. Use a number between 0.5 and 100." +msgstr "" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "" + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "" + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "" + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "" + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double check the ID and try again." +msgstr "" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an errror:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "" + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "" + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "" + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "" + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "" + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "" + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "" + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "" + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "" + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "" + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "" + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "" + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "" + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "" + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "" + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "" + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "" + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "" + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "" + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "" + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "" + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "" + +#: musicbot/bot.py:8636 +#, python-brace-format +msgid "Guild attribute {name} is now: {a_val} -- Was: {b_val}" +msgstr "" + +#: musicbot/bot.py:8667 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config optoins file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "" + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "" + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "" + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "" + +#: musicbot/config.py:1240 +msgid "Acquired owner id via API" +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching OwnerID automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the OwnerID config option or try again later." +msgstr "" + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The OwnerID config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the OwnerID field." +msgstr "" + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "" + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "" + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "" + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "" + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "" + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "" + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "" + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "" + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "" + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "" + +#: musicbot/config.py:2551 +#, python-format +msgid "Blocklist file not found: %s" +msgstr "" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the blocklist file: %s" +msgstr "" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Blocklist with %s entires." +msgstr "" + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Blocklist with %s entries." +msgstr "" + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "" + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "" + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "" + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "" + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "" + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "" + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "" + +#: musicbot/downloader.py:436 +#, python-brace-format +msgid "Called extract_info with: '{song_subject}', {args}, {kwargs}" +msgstr "" + +#: musicbot/downloader.py:442 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "" + +#: musicbot/downloader.py:444 +msgid "Cannot continue extraction, event loop is closed." +msgstr "" + +#: musicbot/downloader.py:453 +msgid "Spotify URL is invalid or not supported." +msgstr "" + +#: musicbot/downloader.py:486 musicbot/downloader.py:507 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:490 +msgid "Download Error with stream URL" +msgstr "" + +#: musicbot/downloader.py:495 +msgid "Assuming content is a direct stream" +msgstr "" + +#: musicbot/downloader.py:503 +msgid "Cannot stream an invalid URL." +msgstr "" + +#: musicbot/downloader.py:514 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "" + +#: musicbot/downloader.py:541 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "" + +#: musicbot/downloader.py:557 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "" + +#: musicbot/downloader.py:577 +msgid "The local media file could not be found." +msgstr "" + +#: musicbot/downloader.py:615 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "" + +#: musicbot/downloader.py:620 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "" + +#: musicbot/downloader.py:849 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "" + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "" + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "" + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "" + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "" + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "" + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalised." +msgstr "" + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "" + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "" + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "" + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "" + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse I in normalise json." +msgstr "" + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse LRA in normalise json." +msgstr "" + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse TP in normalise json." +msgstr "" + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse thresh in normalise json." +msgstr "" + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse offset in normalise json." +msgstr "" + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "" + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "" + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "" + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "" + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "" + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "" + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "" + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "" + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "" + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "" + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "" + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "" + +#: musicbot/filecache.py:302 +msgid "Autoplaylist has no cache map, moving on." +msgstr "" + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded autoplaylist cache map with %s entries." +msgstr "" + +#: musicbot/filecache.py:314 +msgid "Failed to load autoplaylist cache map." +msgstr "" + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved autoplaylist cache map with %s entries." +msgstr "" + +#: musicbot/filecache.py:337 +msgid "Failed to save autoplaylist cache map." +msgstr "" + +#: musicbot/filecache.py:355 +#, python-format +msgid "Autoplaylist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Args Error: %s" +msgstr "" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/json.py:14 +#, python-format +msgid "Init JSON obj from file: %s" +msgstr "" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "" + +#: musicbot/logs.py:158 +msgid "Skipping logger setup, already set up" +msgstr "" + +#: musicbot/logs.py:314 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "" + +#: musicbot/logs.py:323 +#, python-format +msgid "Changing log level to: %s" +msgstr "" + +#: musicbot/logs.py:352 +msgid "MusicBot loggers have been called to shutdown." +msgstr "" + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:165 +msgid "OwnerID is set auto, will set correctly later." +msgstr "" + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "" + +#: musicbot/permissions.py:184 +msgid "Setting auto OwnerID for owner permissions group." +msgstr "" + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permssions file: %s" +msgstr "" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "" + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "" + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "" + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "" + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "" + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "" + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "" + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "" + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "" + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "" + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "" + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "" + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permissions error." +msgstr "" + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "" + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "" + +#: musicbot/player.py:521 +msgid "[Config:SaveVideos] Could not delete file, giving up and moving on" +msgstr "" + +#: musicbot/player.py:583 +#, python-format +msgid "Deserialize returned a non-MusicPlayer: %s" +msgstr "" + +#: musicbot/player.py:588 +msgid "Failed to deserialize player" +msgstr "" + +#: musicbot/player.py:650 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:660 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:668 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:697 +msgid "Unknown error decoding message from ffmpeg" +msgstr "" + +#: musicbot/player.py:701 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "" + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "" + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "" + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding youtube video because it is marked private or deleted: %s" +msgstr "" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "" + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spofity Album Next URL: %s" +msgstr "" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "" + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spofity Playlist Next URL: %s" +msgstr "" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "" + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client id and client secret" +msgstr "" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "" + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "" + +#: musicbot/utils.py:175 +msgid "Only the owner can use this command." +msgstr "" + +#: musicbot/utils.py:195 +msgid "Only dev users can use this command." +msgstr "" + +#: musicbot/utils.py:281 musicbot/utils.py:323 +msgid "Cannot count members when voice_channel is None." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading Youtube TV OAuth2 token data." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing Youtube TV OAuth2 token data" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:127 +msgid "validate ytdlp token..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:137 +msgid "init oauth for ytdlp" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:141 +msgid "Invalid cached OAuth2 token data." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:156 +msgid "Access token expired, refreshing" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:167 +msgid "handling oauth2" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:178 +msgid "Youtube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing Youtube cookies to yt-dlp." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:196 +msgid "refreshing oauth2 token" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:214 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:232 +msgid "Starting oauth2 flow..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:251 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:260 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:266 +msgid "Timed out while waiting for OAuth2 token." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:294 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:300 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:330 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:352 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "" + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "" + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "" + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "" + +#: run.py:180 +msgid "Error using -m method" +msgstr "" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "" + +#: run.py:229 +msgid "PIP failed due to Permissions Error." +msgstr "" + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "" + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "" + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "" + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "" + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "" + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "" + +#: run.py:361 +msgid "Required checks passed." +msgstr "" + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "" + +#: run.py:376 +msgid "Optional checks passed." +msgstr "" + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "" + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "" + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "" + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "" + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "" + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "" + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "" + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "" + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "" + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "" + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "" + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "" + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr "" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "" + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "" + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "" + +#: run.py:638 +msgid "Value must not be negative." +msgstr "" + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "" + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "" + +#: run.py:669 +msgid "Available via Github:" +msgstr "" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "" + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "" + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "" + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "" + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "" + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "" + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "" + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "" + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "" + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "" + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "" + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "" + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "" + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "" + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "" + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "" + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "" + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "" + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "" + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "" + +#: run.py:1169 +msgid "Error starting bot" +msgstr "" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "" + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "" + +#: run.py:1183 +msgid "All done." +msgstr "" + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "" + diff --git a/i18n/th_TH/LC_MESSAGES/musicbot_messages.mo b/i18n/th_TH/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..48c6e17a54c28cdb763c2afc85ae7118a4b2d308 GIT binary patch literal 510 zcmZ8e$xg#C5G@iXA31aIfg{t{ZJ<%AUg#n!wW6v5;#Rq-n;Io{WIHS$!hi7vd<&D7 zE-=z)JmWWSw(pDc&j!jF>Luz`?Vw!m%+`M4C)EDTnirXR7_Z<-TBnSTsW!f-oJyC* zlesL7^)PjrTEShFIY>-Q$?PG4zLmmb0t|$gF>SF{2%G~8DT`u$11w?;fiRb^swV!A zyQMsg+nh{<^N?7fT`s(_$UYG|t3)Otk)nucvJvVKi>co%l6x{8Plv~rd6SX8(Ozn# z`Y5p-FW-Go=0fQ%O*g_i>3fgK2%;mdF1eN#hB`GXrL&kuOXbNdudK*nWNhJZ8Rgb> zJ>I3eXODHsGfr>bFbPH~$7;b^$UyN(2m8$}3h5lq;F=|_@h=|61Kd}165UT+Pj?dj Uz0Tj09Jvn1L%L2oWV}NfKPzmTdjJ3c literal 0 HcmV?d00001 diff --git a/i18n/th_TH/LC_MESSAGES/musicbot_messages.po b/i18n/th_TH/LC_MESSAGES/musicbot_messages.po new file mode 100644 index 000000000..4423d816e --- /dev/null +++ b/i18n/th_TH/LC_MESSAGES/musicbot_messages.po @@ -0,0 +1,2868 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-04 08:15-0800\n" +"PO-Revision-Date: 2024-11-06 14:31\n" +"Last-Translator: \n" +"Language-Team: Thai\n" +"Language: th_TH\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: th\n" +"X-Crowdin-File: /fae/i18n/musicbot_messages.pot\n" +"X-Crowdin-File-ID: 28\n" + +#: musicbot/aliases.py:56 +msgid "Error while loading alises.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" + +#: musicbot/bot.py:840 +msgid "MusicBot does not have permission to speak." +msgstr "" + +#: musicbot/bot.py:844 +msgid "MusicBot could not request to speak." +msgstr "" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "" + +#: musicbot/bot.py:1084 +#, python-format +msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" +msgstr "" + +#: musicbot/bot.py:1102 +#, python-format +msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" +msgstr "" + +#: musicbot/bot.py:1111 +#, python-format +msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" +msgstr "" + +#: musicbot/bot.py:1122 +#, python-format +msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" +msgstr "" + +#: musicbot/bot.py:1333 +#, python-format +msgid "Skipping songs added by %(user)s as they are not in voice!" +msgstr "" + +#: musicbot/bot.py:1555 +#, python-format +msgid "Playback failed for song `%(song)s` due to an error:\n" +"```\n" +"%(error)s```" +msgstr "" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "" + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2695 +#, python-brace-format +msgid "The requested song `{subject}` is blocked by the song blocklist." +msgstr "" + +#: musicbot/bot.py:2831 +msgid "Reset the auto playlist queue by copying it back into player memory.\n" +"This command will be removed in a future version, replaced by the autoplaylist command(s)." +msgstr "" + +#: musicbot/bot.py:2846 +msgid "\\N{OK HAND SIGN}" +msgstr "" + +#: musicbot/bot.py:2853 +msgid "Show usage and description of a command, or list all available commands.\n" +msgstr "" + +#: musicbot/bot.py:2888 +msgid "**Aliases for this command:**\n" +msgstr "" + +#: musicbot/bot.py:2891 +#, python-format +msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" +msgstr "" + +#: musicbot/bot.py:2924 +#, python-format +msgid "**Alias of command:**\n" +" `%(command)s`\n" +msgstr "" + +#. TRANSLATORS: template string for command-specific help output. +#: musicbot/bot.py:2931 +#, python-format +msgid "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" +msgstr "" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "" + +#: musicbot/bot.py:2959 +#, python-format +msgid "The list above shows only commands permitted for your use.\n" +"For a list of all commands, run: %(example_all)s\n" +msgstr "" + +#: musicbot/bot.py:2965 +#, python-format +msgid "**Commands by name:** *(without prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Command Prefix:** %(prefix)s\n\n" +"For help with a particular command, run: %(example_command)s\n" +"%(all_note)s" +msgstr "" + +#: musicbot/bot.py:2984 +msgid " Block a mentioned user." +msgstr "" + +#: musicbot/bot.py:2987 +msgid " Unblock a mentioned user." +msgstr "" + +#: musicbot/bot.py:2990 +msgid " Show the block status of a mentioned user." +msgstr "" + +#: musicbot/bot.py:2994 +msgid "Manage the users in the user block list.\n" +"Blocked users are forbidden from using all bot commands.\n" +msgstr "" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "" + +#: musicbot/bot.py:3059 +msgid "User block list is currently enabled." +msgstr "" + +#: musicbot/bot.py:3061 +msgid "User block list is currently disabled." +msgstr "" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "" + +#: musicbot/bot.py:3078 +#, python-format +msgid "%(number)s user(s) have been added to the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3089 +msgid "None of those users are in the blacklist." +msgstr "" + +#: musicbot/bot.py:3094 +#, python-format +msgid "User: `%(user)s` is not blocked.\n" +msgstr "" + +#: musicbot/bot.py:3096 +#, python-format +msgid "User: `%(user)s` is blocked.\n" +msgstr "" + +#: musicbot/bot.py:3099 +#, python-format +msgid "**Block list status:**\n" +"%(status)s\n" +"%(users)s" +msgstr "" + +#: musicbot/bot.py:3109 +#, python-format +msgid "%(number)s user(s) have been removed from the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3118 +msgid "Manage a block list applied to song requests and extracted song data.\n" +"A subject may be a song URL or a word or phrase found in the track title.\n" +"If subject is omitted, any currently playing track URL will be added instead.\n\n" +"The song block list matches loosely, but is case-sensitive.\n" +"This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" +msgstr "" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "" + +#: musicbot/bot.py:3152 +msgid "Ivalid sub-command given. Use `help blocksong` for usage examples." +msgstr "" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "" + +#: musicbot/bot.py:3187 +#, python-format +msgid "Added subject `%(subject)s` to the song block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "" + +#: musicbot/bot.py:3204 +#, python-format +msgid "Subject `%(subject)s` has been removed from the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3214 +msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" +msgstr "" + +#: musicbot/bot.py:3217 +msgid " Adds the entire queue to the guilds playlist.\n" +msgstr "" + +#: musicbot/bot.py:3220 +msgid " Show a list of existing playlist files.\n" +msgstr "" + +#: musicbot/bot.py:3223 +msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" +msgstr "" + +#: musicbot/bot.py:3226 +msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" +msgstr "" + +#: musicbot/bot.py:3229 +msgid "Manage auto playlist files and per-guild settings." +msgstr "" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "" + +#: musicbot/bot.py:3273 +msgid "All songs in the queue are already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3277 +#, python-format +msgid "Added %(number)d songs to the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3287 +#, python-format +msgid "Added `%(url)s` to the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3304 +#, python-format +msgid "Removed `%(url)s` from the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3316 +#, python-format +msgid "Loaded a fresh copy of the playlist: `%(file)s`" +msgstr "" + +#: musicbot/bot.py:3327 +#, python-format +msgid "**Available Playlists:**\n" +"%(names)s" +msgstr "" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "" + +#: musicbot/bot.py:3357 +msgid "\n" +"This playlist is new, you must add songs to save it to disk!" +msgstr "" + +#: musicbot/bot.py:3362 +#, python-format +msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" +msgstr "" + +#: musicbot/bot.py:3373 +msgid "Generate an invite link that can be used to add this bot to another server." +msgstr "" + +#: musicbot/bot.py:3385 +#, python-format +msgid "Click here to add me to a discord server:\n" +"%(url)s" +msgstr "" + +#: musicbot/bot.py:3391 +msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" +"Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" +msgstr "" + +#: musicbot/bot.py:3403 +msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." +msgstr "" + +#: musicbot/bot.py:3405 +msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." +msgstr "" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3580 +msgid "Bot was previously paused, resuming playback now." +msgstr "" + +#: musicbot/bot.py:3589 +msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" +"You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" +"Playlist links will be extracted into multiple links and added to the queue.\n" +"If you enter a non-URL, the input will be used as search criteria on youtube and the first result played.\n" +"MusicBot also supports Spotify URIs and URLs, but audio is fetched from youtube regardless.\n" +msgstr "" + +#: musicbot/bot.py:3628 +msgid "Play command that shuffles playlist entries before adding them to the queue.\n" +msgstr "" + +#: musicbot/bot.py:3665 +#, python-format +msgid "Shuffled playlist items into the queue from `%(request)s`" +msgstr "" + +#: musicbot/bot.py:3672 +msgid "A play command that adds the song as the next to play rather than last.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" + +#: musicbot/bot.py:3707 +msgid "A play command which skips any current song and plays immediately.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" + +#: musicbot/bot.py:3744 +msgid "Restarts the current song at the given time.\n" +"If time starts with + or - seek will be relative to current playback time.\n" +"Time should be given in seconds, fractional seconds are accepted.\n" +"Due to codec specifics in ffmpeg, this may not be accurate.\n" +msgstr "" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "" + +#: musicbot/bot.py:3840 +#, python-format +msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." +msgstr "" + +#: musicbot/bot.py:3852 +msgid "Toggles playlist or song looping.\n" +"If no option is provided the current song will be repeated.\n" +"If no option is provided and the song is already repeating, repeating will be turned off.\n" +msgstr "" + +#: musicbot/bot.py:3870 +msgid "No songs are currently playing. Play something with a play command." +msgstr "" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" + +#: musicbot/bot.py:3883 musicbot/bot.py:3920 +msgid "Playlist is now repeating." +msgstr "" + +#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +msgid "Playlist is no longer repeating." +msgstr "" + +#: musicbot/bot.py:3892 musicbot/bot.py:3901 +msgid "Player will now loop the current song." +msgstr "" + +#: musicbot/bot.py:3894 musicbot/bot.py:3908 +msgid "Player will no longer loop the current song." +msgstr "" + +#: musicbot/bot.py:3898 +msgid "Player is already looping a song!" +msgstr "" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "" + +#: musicbot/bot.py:3926 +msgid "Song is no longer repeating." +msgstr "" + +#: musicbot/bot.py:3930 +msgid "Song is now repeating." +msgstr "" + +#: musicbot/bot.py:3938 +msgid " Move song at position FROM to position TO.\n" +msgstr "" + +#: musicbot/bot.py:3942 +msgid "Swap existing songs in the queue using their position numbers.\n" +"Use the queue command to find track position numbers.\n" +msgstr "" + +#: musicbot/bot.py:3961 +msgid "There are no songs queued. Play something with a play command." +msgstr "" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "" + +#: musicbot/bot.py:3984 +#, python-format +msgid "Successfully moved song from positon %(from)s in queue to position %(to)s!" +msgstr "" + +#: musicbot/bot.py:4072 +#, python-format +msgid "This link contains a Playlist ID:\n" +"`%(url)s`\n\n" +"Do you want to queue the playlist too?" +msgstr "" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "" + +#: musicbot/bot.py:4159 +msgid "Detected a spotify URL, but spotify is not enabled." +msgstr "" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "" + +#: musicbot/bot.py:4191 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "" + +#: musicbot/bot.py:4208 +#, python-format +msgid "Youtube search returned no results for: %(url)s" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" + +#: musicbot/bot.py:4254 +#, python-format +msgid "Enqueued **%(number)s** songs to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "" + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "" + +#: musicbot/bot.py:4396 +#, python-format +msgid "Failed to exctract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "" + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr "" + +#: musicbot/bot.py:4432 +msgid " Search youtube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr "" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "" + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "" + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "" + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "" + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "" + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "" + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "" + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "" + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "" + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "" + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "" + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "" + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "" + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "" + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "" + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "" + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "" + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "" + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "" + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "" + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr "" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "" + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "" + +#: musicbot/bot.py:5413 +msgid "The speed you proivded is invalid. Use a number between 0.5 and 100." +msgstr "" + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "" + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr "" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr "" + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr "" + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "" + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "" + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr "" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr "" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr "" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr "" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr "" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr "" + +#: musicbot/bot.py:5546 +msgid " Saves the current current value to the options file.\n" +msgstr "" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr "" + +#: musicbot/bot.py:5552 +msgid " Reset the option to it's default value.\n" +msgstr "" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "" + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "" + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "" + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "" + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "" + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "" + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "" + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "" + +#: musicbot/bot.py:6231 +msgid "Dump the individual urls of a playlist to a file." +msgstr "" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "" + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permisions of the mentioned user." +msgstr "" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double check the ID and try again." +msgstr "" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "" + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr "" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr "" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr "" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr "" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr "" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr "" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr "" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr "" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an errror:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "" + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customizse the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "" + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.Note: The API may limit name changes to twice per hour." +msgstr "" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr "" + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr "" + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "" + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "" + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "" + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "" + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr "" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr "" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr "" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr "" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr "" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "" + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "" + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "" + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr "" + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "" + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pin-point events in the MusicBot log file.\n" +msgstr "" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr "" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and args on objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update github pages and is thus unsuitable for normal reference use." +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "" + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "" + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "" + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "" + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "" + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "" + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "" + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "" + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "" + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "" + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f} ms` Avg.) in region `%(region)s`" +msgstr "" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "" + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr "" + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr "" + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "" + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "" + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "" + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "" + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "" + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "" + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "" + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "" + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "" + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "" + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "" + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "" + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "" + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "" + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "" + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "" + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "" + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "" + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "" + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "" + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "" + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "" + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "" + +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "" + +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "" + +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "" + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "" + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "" + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "" + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "" + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "" + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song blocklist." +msgstr "" + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "" + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "" + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "" + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "" + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "" + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "" + +#: musicbot/config.py:550 +#, python-brace-format +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track url for the currently playing track." +msgstr "" + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "" + +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "" + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "" + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format it's messages as embeds." +msgstr "" + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "" + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from tha auto playlist." +msgstr "" + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "" + +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "" + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "" + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "" + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "" + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "" + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "" + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "" + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "" + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "" + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "" + +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "" + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "" + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "" + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "" + +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "" + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "" + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "" + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "" + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "" + +#: musicbot/config.py:920 +msgid "Optional youtube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible youtube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "" + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "" + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "" + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "" + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "" + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "" + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "" + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "" + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config optoins file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching OwnerID automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the OwnerID config option or try again later." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The OwnerID config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the OwnerID field." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "" + +#: musicbot/downloader.py:444 +msgid "Cannot continue extraction, event loop is closed." +msgstr "" + +#: musicbot/downloader.py:453 +msgid "Spotify URL is invalid or not supported." +msgstr "" + +#: musicbot/downloader.py:486 musicbot/downloader.py:507 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:503 +msgid "Cannot stream an invalid URL." +msgstr "" + +#: musicbot/downloader.py:577 +msgid "The local media file could not be found." +msgstr "" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "" + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "" + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "" + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "" + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "" + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "" + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "" + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "" + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "" + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "" + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "" + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "" + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client id and client secret" +msgstr "" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/utils.py:175 +msgid "Only the owner can use this command." +msgstr "" + +#: musicbot/utils.py:195 +msgid "Only dev users can use this command." +msgstr "" + diff --git a/i18n/xx/LC_MESSAGES/musicbot_logs.mo b/i18n/xx/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..d52241a88e913081de624344bdd52d54022c4ea6 GIT binary patch literal 105740 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 literal 0 HcmV?d00001 diff --git a/i18n/xx/LC_MESSAGES/musicbot_logs.po b/i18n/xx/LC_MESSAGES/musicbot_logs.po new file mode 100644 index 000000000..a00a6c663 --- /dev/null +++ b/i18n/xx/LC_MESSAGES/musicbot_logs.po @@ -0,0 +1,4541 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the Just-Some-Bots/MusicBot package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Just-Some-Bots/MusicBot release-250723-1002-g75b54054\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: xx\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" + +#: musicbot/aliases.py:52 +msgid "Aliases file not found, copying example_aliases.json" +msgstr "nosj.sesaila_elpmaxe gniypoc ,dnuof ton elif sesailA" + +#: musicbot/aliases.py:56 +msgid "" +"Error while loading aliases.\n" +"\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n" +"\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "" +"/toBcisuM/stoB-emoS-tsuJ/moc.buhtig//:sptth \n" +":morf meht ypoc ro )s(elif gifnoc saila eht ecalpeR \n" +":noituloS\n" +"\n" +".gnissim era )nosj.sesaila_elpmaxe & nosj.sesaila( selif sesaila ruoY \n" +":melborP\n" +"\n" +".sesaila gnidaol elihw rorrE" + +#: musicbot/aliases.py:80 +#, python-format +msgid "Failed to load aliases file: %s" +msgstr "%s :elif sesaila daol ot deliaF" + +#: musicbot/aliases.py:88 +#, python-format +msgid "" +"Failed to parse aliases file: %s\n" +"Ensure the file contains valid JSON and restart the bot." +msgstr "" +".tob eht tratser dna NOSJ dilav sniatnoc elif eht erusnE\n" +"%s :elif sesaila esrap ot deliaF" + +#: musicbot/aliases.py:114 +#, python-format +msgid "" +"Aliases skipped for non-existent command: %(command)s -> %(aliases)s" +msgstr "" +"%(aliases)s >- %(command)s :dnammoc tnetsixe-non rof deppiks sesailA" + +#: musicbot/aliases.py:122 +#, python-format +msgid "" +"Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "" +"%(aliases)s >- %(command)s :atad saila dilavni rof deppiks )se(sailA" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "%(command)s :dnammoc no stsixe ydaerla sa deppiks `%(alias)s` sailA" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "%s :elif tsilyalp otua gnidaol rorrE" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "%(track)s :%(playlist)s ,tsilyalp morf gnos elbayalpnu gnivomeR" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "%(track)s :%(playlist)s ,tsilyalp morf gnos gnivomeR" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr ".lavomer LRU tsilyalp eht tuoba noitamrofni gol ton dluoC" + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "...elif tsilyalp gnitadpU" + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "%s :elif tsilyalp evas ot deliaF" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "gnirongi ,%s tsilyalp ni ydaerla LRU" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "%(track)s :%(playlist)s ,tsilyalp ot LRU wen gniddA" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "%s toBcisuM gnizilaitinI" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "%r :rof ksat etaerc tonnac ,desolc si pooL" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "%r :ksat rof noitpecxe deldnahnU" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "%(raw_error)s -- %(task)r :ksat rof noitpecxe deldnahnU" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr ".gnilbasiD .nekot a htiw su edivorp ton did yfitopS" + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr ".terces dna DI tneilc gnisu yllufsseccus yfitopS htiw detacitnehtuA" + +#: musicbot/bot.py:316 +#, python-format +msgid "" +"Could not start Spotify client. Is your client ID and secret correct? " +"Details: %s. Continuing anyway in 5 seconds..." +msgstr "" +"...sdnoces 5 ni yawyna gniunitnoC .%s :sliateD ?tcerroc terces dna DI tneilc" +" ruoy sI .tneilc yfitopS trats ton dluoC" + +#: musicbot/bot.py:324 +msgid "" +"The config did not have Spotify app credentials, attempting to use guest " +"mode." +msgstr "" +".edom tseug esu ot gnitpmetta ,slaitnederc ppa yfitopS evah ton did gifnoc " +"ehT" + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr ".edom tseug gnisu yllufsseccus yfitopS htiw detacitnehtuA" + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr ".%s :sliateD .edom tseug gnisu tneilc yfitopS trats ton dluoC" + +#: musicbot/bot.py:347 +msgid "" +"Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "" +"!tniop yna ta kaerb thgim sihT .delbane si nigulp 2htuAO pld-tY latnemirepxE" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr ".drocsid ot gnitcennoc won ,dezilaitinI" + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr ".gifnoc aiv delbasid si tset gnip krowteN" + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr ".nwod gnisolc si tset gnip krowteN" + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr ".tegrat gnip evloser ton dluoC" + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr ".dellecnac tset gnip krowteN" + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr ".worrob ot noisses a evah ton seod PTTH aiv gnitset krowteN" + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr ".tnemnorivne ruoy ni elbatucexe `gnip` etacol ton dluoC" + +#: musicbot/bot.py:475 +#, python-format +msgid "" +"MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" +".gifnoc aiv gnikcehc krowten elbasid ylevitanretlA\n" +".stluser tseb rof tnemnorivne reniatnoc ro metsys ruoy ni gnip elbane dluohs uoY\n" +"%s :dnammoc gniwollof eht deirt toBcisuM\n" +".daetsni gnip PTTH esu ot tpmetta lliW .htap dnammoc `gnip` a etacol ton dluoc toBcisuM" + +#: musicbot/bot.py:485 +#, python-format +msgid "" +"MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" +".gifnoc aiv gnikcehc krowten elbasid ylevitanretlA\n" +".stluser tseb rof tnemnorivne reniatnoc ro metsys ruoy ni gnip elbane dluohs uoY\n" +"%s :dnammoc gniwollof eht deirt toBcisuM\n" +".daetsni gnip PTTH esu ot tpmetta lliW .dnammoc `gnip` eht etucexe ot noissimrep deined saw toBcisuM" + +#: musicbot/bot.py:495 +#, python-format +msgid "" +"Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" +".gifnoc aiv gnikcehc krowten elbasid ylevitanretlA\n" +".stluser tseb rof tnemnorivne reniatnoc ro metsys ruoy ni gnip elbane dluohs uoY\n" +"%s :dnammoc gniwollof eht deirt toBcisuM\n" +".daetsni gnip PTTH esu ot tpmetta lliW .dnammoc metsys `gnip` eht wolla ton yam tnemnorivne ruoY" + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr ".niaga elbaliava si krowten detceted toBcisuM" + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "...reyalPcisuM emuser ot gnitiaw ,detcennoc ton si tneilCecioV" + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "%(player)r )%(guild_id)s( :reyalp fo kcabyalp gnimuseR" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr ".egatuo krowten a detceted toBcisuM" + +#: musicbot/bot.py:534 +#, python-format +msgid "" +"Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "" +"%(player)r )%(guild_id)s( :ytilibaliava krowten ot eud reyalPcisuM gnisuaP" + +#: musicbot/bot.py:555 +#, python-format +msgid "" +"Looking for owner in guild: %(guild)s (required voice: %(required)s) and " +"got: %(owner)s" +msgstr "" +"%(owner)s :tog dna )%(required)s :eciov deriuqer( %(guild)s :dliug ni renwo" +" rof gnikooL" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "...emuser ro nioj-otua ot slennahc rof gnikcehC" + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "%(name)s/%(id)s :nioj otua tonnac ,elbaliava ton dliuG" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "%(guild)s :dliug ni %(channel)s :lennahc eciov elbamuser dnuoF" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "%s :lennahc gninioJ-otuA fo daetsni noisses eciov gnimuser yrt lliW" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "%s :lennahc eciov ni renwo dnuoF" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "%s :lennahc ni renwo ot nommuSotuA ,lennahc elbamuser gnirongI" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "%s :lennahc ni renwo ot nommuSotuA ,lennahc nioJ-otuA gnirongI" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "%(guild)s :dliug ni %(channel)s :lennahc ot detcennoc ydaerlA" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "%(guild)s :dliug ni %(channel)s :lennahc nioj ot gnitpmettA" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "...eno wen a gnikam dna reyalPcisuM gnidracsiD" + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "...won reyalPcisuM wen a ekam lliw toBcisuM" + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "" +".lennahc eciov detroppus a t'nsi ti ,%(channel)s/%(guild)s gninioj toN" + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr ".slennahc derugifnoc gninioj dehsiniF" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr ".dnammoc siht esu tonnac dna delbane-eciov ton si rebmeM" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr ".lennahc eciov eht ni ton nehw dnammoc siht esu tonnac uoY" + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr ".ofnI noitacilppA tob gnitteG" + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "%s :lennahc ni tcennoC ot noissimrep evah ton seod toBcisuM" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "`%(name)s` :lennahc ni tcennoC ot noissimrep evah ton seod toBcisuM" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "%s :lennahc ni kaepS ot noissimrep evah ton seod toBcisuM" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "`%(name)s` :lennahc ni kaepS ot noissimrep evah ton seod toBcisuM" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "%s :dliug morf tneilCecioV stob gnisueR" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "%s :dliug ni tneilCecioV elats no tcennocsid gnicroF" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "?dellecnac saw ro deliaf tcennocsiD" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "%(channel)s :won thgir lennahc eht ot tcennoc ot elbanu si toBcisuM" + +#: musicbot/bot.py:806 +msgid "" +"MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" +".seunitnoc siht fi tob eht tratser ro ,retal niaga yrT\n" +".lennahc eht ot tcennoc ton dluoc toBcisuM" + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "...won tneilCecioV a sah toBcisuM" + +#: musicbot/bot.py:822 +#, python-format +msgid "" +"Retrying connection after a timeout error (%(attempt)s) while trying to " +"connect to: %(channel)s" +msgstr "" +"%(channel)s :ot tcennoc ot gniyrt elihw )%(attempt)s( rorre tuoemit a retfa" +" noitcennoc gniyrteR" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr ".yrter oN .dellecnac saw tpmetta noitcennoc tneilCecioV toBcisuM" + +#: musicbot/bot.py:830 +msgid "" +"MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" +"?tratser ebyaM .ddo si sihT .dellecnac saw eciov ot noitcennoc toBcisuM" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr ".kaeps ot noissimrep evah ton seod toBcisuM" + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr ".kaeps ot tseuqer ton dluoc toBcisuM" + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "%s :dliug ni reyalPcisuM a gnitcennocsiD" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr ".reyalPcisuM eht llik ew erofeb tneilCecioV gnitcennocsiD" + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr ".dellecnac saw ro deliaf tcennocsid ehT" + +#: musicbot/bot.py:887 +msgid "" +"MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting " +"anyway..." +msgstr "" +"...yawyna gnitcennocsiD .tneilCecioV a ton si taht locotorPecioV a sah " +"toBcisuM" + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "%s :dliug ni tneilCecioV eugor a gnitcennocsiD" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "...tneilCecioV dliug-non a gnitcennocsiD" + +#: musicbot/bot.py:934 +#, python-format +msgid "" +"MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "" +"%s :epyt fo yllautca si tcejbo ehT\n" +"?tcejbo tneilCecioV-non a sniatnoc tsil stneilc_eciov.toBcisuM" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "%(player)r :)%(guild_id)s( dliug ni fer reyalPcisuM a evah llits eW" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "%(player)r :lanoitpo ,reyalp a stnaw )%(guild)s( dliuG" + +#: musicbot/bot.py:964 +msgid "" +"[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably " +"restart the bot." +msgstr "" +".tob eht tratser ylbaborp dluohs uoY .wohemos tneilCecioV a gnissim si " +"reyalPcisuM ]GUB[" + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr ".detcennoc ton si taht tneilCecioV a sah reyalPcisuM" + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "%r :jbo reyalPcisuM" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "%r :jbo tneilCecioV" + +#: musicbot/bot.py:991 +#, python-format +msgid "" +"Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s " +"Create: %(create)s Deserialize: %(serial)s" +msgstr "" +"%(serial)s :ezilaireseD %(create)s :etaerC %(channel)s :lennahC nI " +"%(guild)s :dliug rof reyalPcisuM a gnitteG" + +#: musicbot/bot.py:1007 +#, python-format +msgid "" +"Created player via deserialization for guild %(guild_id)s with %(number)s " +"entries" +msgstr "" +"seirtne %(number)s htiw %(guild_id)s dliug rof noitazilairesed aiv reyalp " +"detaerC" + +#: musicbot/bot.py:1016 +msgid "" +"The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" +".lennahc eciov ruoy ot tob eht gnirb ot dnammoc nommus eht esU\n" +".lennahc eciov a ni ton si tob ehT" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr ".tneilCecioV eht teg t'ndid ew ,gnorw si gnihtemoS" + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "yalp_reyalp_no gninnuR" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "%(url)s == %(guild_id)s dliug yrotsih LRU gnitteS" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "%s :LRU htiw yrtne rof tes lianbmuht oN" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "otni egassem gniyalp won tup ot lennahc on" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr ".detsop ydaerla saw ti sa egassem gniyalp-won derongi" + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "emuser_reyalp_no gninnuR" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "esuap_reyalp_no gninnuR" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "pots_reyalp_no gninnuR" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "gniyalp_dehsinif_reyalp_no gninnuR" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr ".ereh od ot esle gnihton ,desolc si pool tnevE" + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr ".tneve siht gnirongi ,yaw rednu tuogoL" + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr ".ereh od nac ew esle gnihton ,detcennoc ton si ti syas tneilCecioV" + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "...lennahc eciov gnivael ,ytpme si eueuq dna dehsinif reyalP" + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "...rohtua gnissim htiw sgnos egnupxe ot eueuq revo gnipooL" + +#: musicbot/bot.py:1342 +#, python-format +msgid "" +"Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "" +"%(song)s :eueuq morf yrtne )deteled( deppiks ,tnesba `%(user)s` rohtuA" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr ".gnilbasid ,tsilyalpotua dliuG eht ni sgnos elbayalp oN" + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "...cisum wen htiw gnilliF .tsilyalpotua tnerruc ni tnetnoc oN" + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "...tsilyalpotua reyalp revo gnipooL" + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "%(raw_error)s :\"%(url)s\" gnos gnissecorp elihw rorrE" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "%(raw_error)s :\"%(url)s\" gnos gnitcartxe rorrE" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr ".liab dna noitcartxe tsilyalp otua eht pots ot sdeen toBcisuM" + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr ".tneve dehsinif reyalp ni noitpecxe deldnahnu na tog toBcisuM" + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "%s :morf detcartxe seirtne htiw tsilyalp otua gnidnapxE" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "%s :tsilyalpotua morf gnos gnidda rorrE" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr ":rorre evoba rof atad noitpecxE" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr ".gnilbasid ,tsilyalpotua eht ni sgnos elbayalp oN" + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "dedda_yrtne_reyalp_no gninnuR" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr ".yrtne deueuq rof yrtne tsilyalp-otua gnippiks yllacitamotuA" + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "%r :yrtne rof noitpecxe reyalPcisuM" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr ".noitpecxe reyalPcisuM" + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "%r :deyalp eb ton dluoc kcart tsilyalp otuA" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr ".tneve etadpu sutats gnirongi ,yaw rednu tuogoL" + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "%(activity)r -- %(status)s :sutats tob etadpU" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "%s rof eueuq gnizilaireS" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "%s rof eueuq gnizilaireseD" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "%s rof gnos tnerruc gnitirW" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "%r :tcejbo esnopser-non dnes tonnaC" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr ".tcejbo esnopser dilavni na gnidnes deirT ]guB veD[" + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "%s :ot debme gnidnes" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "%s :ot txet gnidnes" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "noissimrep on ,\"%s\" ot egassem dnes tonnaC" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "lennahc deteled ro dilavni ,\"%s\" ot egassem dnes tonnaC" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr ")%s( timil ezis egassem eht revo si egasseM" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr ".daetsni lennahc kcabllaf ni gnidnes ,egassem etavirp dnes ton dluoC" + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr ".sdnoces %s ni gniyrter ,egassem dnes detimil etaR" + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "%s :rof yrter egassem dellecnaC" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "!yrter tonnac tub ,egassem dnes detimil etaR" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr ".lennahc kcabllaf ni egassem dnes ot deliaF" + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr ".rorre PTTH na ot eud dnes ot deliaF" + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "noissimrep on ,\"%s\" egassem eteled tonnaC" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "dnuof ton egassem ,\"%s\" egassem eteled tonnaC" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr ".sdnoces %s ni gniyrter ,eteled egassem detimil etaR" + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "!yrter tonnac tub ,eteled egassem detimil etaR" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "egassem eteled ot deliaF" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "%s :egassem eteled ot gniyrt noitpecxEPTTH toG" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "dnuof ton egassem ,\"%s\" egassem tide tonnaC" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "daetsni egassem gnidneS" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr ".sdnoces %s ni gniyrter ,egassem tide detimil etaR" + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "%s :rof tide egassem dellecnaC" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "egassem tide ot deliaF" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "%s :ot %s egassem tide ot gniyrt noitpecxEPTTH toG" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "%(content)s :)%(id)s :DI( egassem rof eteled dellecnaC" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "%s :SO eht morf langis a thguaC" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "...toBcisuM nwod gnisolc dna gnitcennocsiD" + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "!langis tpurretni gnildnah elihw nworht noitpecxE" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "...spets nwodtuhs gniod won si toBcisuM" + +#: musicbot/bot.py:2147 +msgid "" +"Failed Discord API Login!\n" +"\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n" +"\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" +"moc.sutatsdrocsid :etis laiciffo eht ta sutats IPA kcehC \n" +".gifnoc ruoy ni tes nekoT tcerroc eht evah uoy erus ekaM \n" +":noituloS\n" +"\n" +".egatuo IPA na eb yam ereht ro tcerrocni eb yam nekoT ruoY \n" +".IPA drocsiD otni gol ton dluoc toBcisuM \n" +":melborP\n" +"\n" +"!nigoL IPA drocsiD deliaF" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "...pu hsinif ot sdaerht daolnwod rof gnitiaW" + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr ")%(func)s( %(name)s :ksat rof tiaw lliW" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr ")%(func)s( %(name)s :ksat lecnac ot yrt lliW" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "...sksat gnidnep gnitiawA" + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr ".rotcennoC PTTH gnisolC" + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr ".noisses ptthoia gnisolC" + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr ".dellac neeb sah tuogoL" + +#: musicbot/bot.py:2238 +#, python-format +msgid "" +"Exception in %(event)s:\n" +"%(error)s" +msgstr "" +"%(error)s\n" +":%(event)s ni noitpecxE" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "%s ni noitpecxE" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr ".drocsid htiw noisses a demuser toBcisuM" + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "ydaer_no hsiniF" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "...ydaer toBcisuM gnitteg won ,ni deggoL" + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "...liab attog ew ,enon wohemos si resUtneilC" + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "%(desc)s#%(name)s/%(id)s :toBcisuM" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "" +"\n" +"%(desc)s#%(name)s/%(id)s :renwO" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr ":tsiL dliuG" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr "%s - " + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "dnuof ton renwo tob ot eud %s tfeL" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "ytilibaliavanu ot eud srevres %s ni skcehc htiw gnideecorp toN" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "" +"\n" +")%s :di( dliug yna no dnuof eb ton dluoc renwO" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr ".sdliug yna no ton si tob ,nwonknu renwO" + +#: musicbot/bot.py:2353 +#, python-format +msgid "" +"To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "" +"%s \n" +".nioj ot tob eht tnaw uoy dliug eht no snoissimrep revres eganam\n" +" evah dna tnuocca niam ruoy otni deggol eb dluohs uoY :etoN\n" +" .resworb ruoy ni knil siht etsap ,dliug a nioj tob eht ekam oT" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "%d :DI htiw lennahc dnuob rof enoN toG" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "%d :DI htiw lennahc elbaegasseM non ot dnib tonnaC" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr ":slennahc txet ot dnuoB" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr "%(channel)s/%(guild)s - " + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "slennahc txet yna ot dnuob toN" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "%d :DI htiw lennahc nioj otua rof enoN toG" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "%d :DI htiw lennahc dliuG-noN/etavirP a nioj otua tonnaC" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "%d :DI htiw lennahc elbatcennoc-non ot nioj otua tonnaC" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr ":slennahc eciov gninioj otuA" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "slennahc eciov yna gninioj otua toN" + +#: musicbot/bot.py:2475 +#, python-format +msgid "" +"Detected missing config options!\n" +"\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n" +"\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n" +"\n" +msgstr "" +"\n" +"\n" +".meht evas dna tes ot dnammoc gifnoc eht esu rO \n" +".elif snoitpo elpmaxe eht morf snoitpo wen ypoC \n" +":noituloS\n" +"\n" +"%(missing)s \n" +":dnif t'ndid ew snoitpo fo tsil a si ereH \n" +".snoitpo eseht rof desu eb lliw sgnittes tluafeD \n" +".snoitpo emos gnissim si elif snoitpo gifnoc uoY \n" +":melborP\n" +"\n" +"!snoitpo gifnoc gnissim detceteD" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "semit %s derif sah ydaer_no tnevE" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr ".ofni noitacilppa gnitteG" + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "tsixe sredlof atad gnirusnE" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "gifnoc gnitadilaV" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "gifnoc snoissimrep gnitadilaV" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "delbasiD" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "delbanE" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr ":snoitpO" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr "%s :xiferp dnammoC " + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr "%%%d :emulov tluafeD " + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr "%%%(percent).0f ro setov %(num)d :dlohserht pikS " + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr "%s :snoitnem@ gniyalP woN " + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr "%s :nommuS-otuA " + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr ")%(order)s :redro( %(status)s :tsilyalP-otuA " + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "modnar" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "laitneuqes" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr "%s :esuaP-otuA " + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr "%s :segasseM eteleD " + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr "%s :gnikovnI eteleD " + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr "%s :gniyalP woN eteleD " + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr "%s :edoM gubeD " + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr "%s eb lliw sgnos dedaolnwoD " + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr "syad %d rof desunu fi eteleD " + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr "%s sdeecxe ezis fi eteleD " + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr "%s :egassem sutatS " + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr "%s :elif ot sgnos tnerruc etirW " + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr "%s :piks-atsni rohtuA " + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr "%s :sdebmE " + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr "%s :noitargetni yfitopS " + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr "%s :piks ycageL " + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr "%s :srenwo non evaeL " + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr "%s :CV evitcani evaeL " + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr "sdnoces %s :tuoemiT " + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr "%s :eueuq ytpme/dne gnos ta evaeL " + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr "%s :seldi reyalp nehw evaeL " + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr "sdnoces %d :tuoemiT " + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr "%s :nefaeD fleS " + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr "%s :xiferp dnammoc revres-reP " + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr "%s :tsiL hcraeS " + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr "%s :eueuQ niboR dnuoR " + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr ".tsil kcolb gnos eht yb dekcolb si `%(subject)s` gnos detseuqer ehT" + +#: musicbot/bot.py:2706 +msgid "" +"Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "" +"...eciov ni ton si toB tub ,ytivitcani lennahC ecioV eldnah ot detpmettA" + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "%s :dliug ni gnitiaw ydaerla ytivitca lennahC" + +#: musicbot/bot.py:2723 +#, python-format +msgid "" +"Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" +"%(channel)s :lennahc evael ot sdnoces %(time)d gnitiaw ytivitca lennahC" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr ".gnitcennocsiD .deripxe sah %s rof remit ytivitca lennahC" + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "%(guild)s ni %(channel)s :rof delecnac remit ytivitca lennahC" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "%s :lennahc denioj-otua ni ytivitcani reyalp gnirongI" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "%s :dliug ni gnitiaw ydaerla remit ytivitca reyalP" + +#: musicbot/bot.py:2787 +#, python-format +msgid "" +"Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" +"%(channel)s :lennahc evael ot sdnoces %(time)d gnitiaw remit ytivitca reyalP" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr ".gnitcennocsiD .deripxe sah %s rof remit ytivitca reyalP" + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "%(guild)s ni %(channel)s :rof delecnac remit ytivitca reyalP" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr ".teser gnieb si remit ytivitca reyalP" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "dnammoc hcus oN" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr ".rebmun DI rieht edivorp ro resu a noitnem tsum uoY" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr ".selpmaxe egasu rof `resukcolb pleh` esU .nevig dnammoc-bus dilavnI" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr ".deificeps uoy )s(resu eht dnif ton dluoc toBcisuM" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr ".tsil kcolb eht ot dedda eb tonnac renwo ehT" + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "%(name)s/%(id)s :dekcolb ydaerla ,tsil kcolb ot resu gnidda toN" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "%(name)s/%(id)s :detsil ton ,tsil kcolb morf resu gnivomer toN" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr ".dedda ydaerla era yeht ,detsil uoy sresu eht dda tonnaC" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr ".gniyalp yltnerruc si gnos on fi tcejbus gnos a edivorp tsum uoY" + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr ".selpmaxe egasu rof `gnoskcolb pleh` esU .nevig dnammoc-bus dilavnI" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr ".tsil kcolb gnos eht ni ydaerla si `%(subject)s` tcejbuS" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr ".devomer eb tonnac dna tsil kcolb gnos eht ni ton si tcejbus ehT" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" +".selpmaxe egasu rof `tsilyalpotua pleh` esU .nevig dnammoc-bus dilavnI" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "dilavni si knil gnos deilppus ehT" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "!dnammoc yalp a htiw sgnos emos ddA .ytpme si eueuq ehT" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr ".tsilyalpotua eht ni ydaerla si gnos sihT" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr ".tsilyalpotua eht ni tey ton si gnos sihT" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr ".emanelif tsilyalp a edivorp tsum uoY" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "stsilyalp tseuqer ot dewolla ton era uoY" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr ")%(max)s si xam tub %(songs)s( seirtne ynam oot sah tsilyalP" + +#: musicbot/bot.py:3447 +#, python-format +msgid "" +"The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" +".puorg ruoy rof %(max)s si timil ehT\n" +".eueuq ni ydaerla %(queued)s dna ,tsil eht ni %(songs)s era erehT\n" +".timil eueuq ruoy deecxe lliw seirtne tsilyalp ehT" + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr ".egatuo krowten ot eud esuap-otua gnirongI" + +#: musicbot/bot.py:3476 +msgid "" +"MusicPlayer has no VoiceClient or has no channel data, cannot process auto-" +"pause." +msgstr "" +".esuap-otua ssecorp tonnac ,atad lennahc on sah ro tneilCecioV on sah " +"reyalPcisuM" + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr ".tneve siht gnirongi ,esuap-otua gnissecorp ydaerlA" + +#: musicbot/bot.py:3495 +#, python-format +msgid "" +"%sVoiceClient not connected, waiting %s seconds to handle auto-pause in " +"guild: %s" +msgstr "" +"%s :dliug ni esuap-otua eldnah ot sdnoces %s gnitiaw ,detcennoc ton " +"tneilCecioV%s" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr ".dellecnac saw gnitiaw esuap-otuA" + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr ".tneve esuap-otua dlo gnirongi ,detcennoc gnieb si reyalPcisuM wen A" + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "%s :dliug rof esuap otua gninnur ,lennahc eciov ytpme na ni gniyalP" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "%s :dliug rof gnisuapnu si reyalp desuap otua ylsuoiverP" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr ".gniyalp gnihton si ereht fi kees esu tonnaC" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr ".noitarud nwonknu na sah ti ,kcart tnerruc no kees esu tonnaC" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr ".smaerts rof detroppus ton si gnikeeS" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr ".kcabyalp noitisop ot emit a tuohtiw kees esu tonnaC" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr ".sdnoces ni emit dilav a ot `%(input)s` trevnoc ton dluoC" + +#: musicbot/bot.py:3816 +#, python-format +msgid "" +"Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with" +" a length of `%(progress)s / %(total)s`" +msgstr "" +"`%(total)s / %(progress)s` fo htgnel a htiw kcart tnerruc eht ni )sdnoces " +"`%(seconds)s`( `%(input)s` ot kees tonnaC" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" +".selpmaxe egasu rof `taeper pleh` dnammoc eht esU .dnammoc-bus dilavnI" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr ".gnipool yltnerruc ton si reyalp ehT" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "!sregetni eb tsum snoitisop gnoS" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "!ezis tsilyalp eht edistuo noitisop a evag uoY" + +#: musicbot/bot.py:4025 +msgid "" +"Could not prompt for playlist playback, no message to add reactions to." +msgstr "" +".ot snoitcaer dda ot egassem on ,kcabyalp tsilyalp rof tpmorp ton dluoC" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr ".delbane ton si kcabyalp aidem lacoL" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr ".detroppus yltnerruc ton ro dilavni si LRU yfitopS" + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr ".delbane ton si yfitopS tub ,LRU yfitopS a detceteD" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr ")%(max)s( timil gnos deueuqne ruoy dehcaer evah uoY" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "!delbasid sti nehw niaga yrt esaelp ,delbane si edom ekoaraK" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr " :)(ofni_tcartxe htiw eussI" + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "" +"Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +":rorre ot eud ofni tcartxe ot deliaF" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr ".dnammoc maerts eht gnisu yrT .deyalp eb tonnac oediv tahT" + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "%(url)s :rof stluser on denruter hcraes ebuTuoY" + +#: musicbot/bot.py:4238 +#, python-format +msgid "" +"Processed %(number)d of %(total)d songs in %(time).3f seconds at " +"%(time_per).2f s/song" +msgstr "" +"gnos/s %(time_per).2f ta sdnoces %(time).3f ni sgnos %(total)d fo %(number)d" +" dessecorP" + +#: musicbot/bot.py:4249 +#, python-format +msgid "" +"No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" +")sdnoces %(max)s( noitarud xam revo erew sgnos lla ,dedda erew sgnos oN" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "yek rotcartxe sa 'tsilyalp:ebutuoy' htiw yrtne na detcartxE" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr ")%(max)s > %(length)s( timil sdeecxe noitarud gnoS" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "%s noitisop ta )s(gnos deddA" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "%d :noitisop rof gniyalp litnu emit etamitse tonnaC" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "%s :tseuqer maerts eht morf ofni teg ot deliaF" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr ".detroppus tey ton si stsilyalp gnimaertS" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr ")%(max)s( timil meti tsilyalp ruoy dehcaer evah uoY" + +#: musicbot/bot.py:4480 +msgid "" +"Please specify a search query. Use `help search` for more information." +msgstr "" +".noitamrofni erom rof `hcraes pleh` esU .yreuq hcraes a yficeps esaelP" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "soediv %(max)s naht erom rof hcraes tonnac uoY" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "%s :kcol nommus rof gnitiaW" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "%s :rof deriuqca kcol nommuS" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "!lennahc eciov a gninioj yrT .eciov ot detcennoc ton era uoY" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "%(channel)s/%(guild)s gninioJ" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr ".revres eht fo rebmem a ton si taht resu a wollof tonnac toBcisuM" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr ".gniyalp ton si reyalP" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "!evomer ot eueuq eht ni gnihtoN" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "`%(user)s` resu morf eueuq eht ni dnuof gnihtoN" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "" +"You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" +".snoissimrep piks tnatsni evah ro ti deueuq ohw eno eht eb tsum uoY\n" +".eueuq eht morf yrtne taht evomer ot noissimrep eht evah ton od uoY" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr ".snoitisop eueuq dnif ot dnammoc eueuq eht esU .rebmun yrtne dilavnI" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "!gniyalp ton si reyalp ehT !piks t'naC" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr ".gnos depool a piks ecrof ot noissimrep evah ton od uoY" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr ".piks ecrof ot noissimrep evah ton od uoY" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr ".gnos depool a piks ot noissimrep evah ton od uoY" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "rebmun dilav a ton si `%(new_volume)s`" + +#: musicbot/bot.py:5357 +#, python-format +msgid "" +"Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" +".001 ot 1 morf tes eb ylno nac emuloV\n" +".%(new_volume)s si %(adjustment)s%(old_volume)s :dedivorp egnahc emulov elbanosaernU" + +#: musicbot/bot.py:5367 +#, python-format +msgid "" +"Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" +".001 dna 1 neewteb eulav a edivorP .%(volume)s :dedivorp emulov elbanosaernU" + +#: musicbot/bot.py:5391 +msgid "" +"No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" +".deeps kcabyalp tluafed a tes ot dnammoc gifnoc eht esU\n" +".deeps tes tonnac ,gniyalp si kcart oN" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr ".aidem demaerts ot deilppa eb tonnac deepS" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr ".tes ot deeps a edivorp tsum uoY" + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr ".001 dna 5.0 neewteb rebmun a esU .dilavni si dedivorp uoy deeps ehT" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "`%(option)s` :dnammoc rof noitpo dilavnI" + +#: musicbot/bot.py:5485 +#, python-format +msgid "" +"Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" +"`%(raw_error)s`\n" +":rorre ot eud sesaila evas ot deliaF" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "saila ot dnammoc a dna saila na ylppus tsum uoY" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr ".evomer ot eman saila na ylppus tsum uoY" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr ".tsixe ton seod `%(alias)s` saila ehT" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr ".emit emas eht ta snoitnem resu dna lennahc esu tonnac gifnoC" + +#: musicbot/bot.py:5673 +#, python-format +msgid "" +"Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +":rorre gniwollof eht ot eud gifnoC daoler ot elbanU" + +#: musicbot/bot.py:5691 +msgid "" +"Could not resolve section name from option name. Please provide a valid " +"section and option name." +msgstr "" +".eman noitpo dna noitces dilav a edivorp esaelP .eman noitpo morf eman " +"noitces evloser ton dluoC" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr ".eman noitces a edivorp esaelp ,suougibma si nevig noitpo ehT" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr ".dnammoc siht rof eman noitpo dna eman noitces a edivorp tsum uoY" + +#: musicbot/bot.py:5717 +#, python-format +msgid "" +"The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" +"%(sections)s :era snoitces elbaliava ehT\n" +".elbaliava ton si `%(section)s` noitces ehT" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr ".elbaliava ton si `%(option)s` noitpo ehT" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr ".ksid ot evas tonnaC .elbatide ton si `%(option)s` noitpO" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "`%(option)s` :noitpo eht evas ot deliaF" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr ".deyalpsid eb tonnac eulav ,elbatide ton si `%(option)s` noitpO" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr ".gnittes etadpu tonnaC .elbatide ton si `%(option)s` noitpO" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr ".dnammoc bus siht rof eulav dna ,noitpo ,noitces a edivorp tsum uoY" + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "%(value)s == %(config)s no htiw tes gnioD" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "!detadpu ton saw `%(option)s` noitpO" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr ".tluafed ot teser tonnaC .elbatide ton si `%(option)s` noitpO" + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "%(value)s tluafed ot %(config)s gnitteseR" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "!tluafed ot teser ton saw `%(option)s` noitpO" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr ".daetsni dnammoc gifnoc eht esu ,detacerped si dnammoc noitpo ehT" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "raelc ro ,etadpu ,ofni :esu ,deificeps noitpo dilavnI" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "...ofni erom rof sgol kcehc ,ehcac eteled ot **deliaF**" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr ".rebmun elohw a eb tsum tnemugra egap eueuQ" + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr ".dnammoc yalp a htiw gnihtemos eueuQ !deueuq sgnos on era erehT" + +#: musicbot/bot.py:6013 +#, python-format +msgid "" +"Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" +".segap **%(total)s** era erehT\n" +".sdnuob fo tuo si rebmun egap detseuqeR" + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr ".yrtne tsilyalp tnerruc eht deppikS" + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr ".eueuq eht etanigap ot seirtne hguone toN" + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr ".ot snoitcaer dda ot egassem on ,egassem eueuq tsop ton dluoC" + +#: musicbot/bot.py:6105 +msgid "" +"Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" +".troper gub a elif ,stsisrep eussi eht fI\n" +".egassem eueuq eht ot ecnerefer a teg ro ekam t'ndluoc toBcisuM .niaga taht yrT" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr ".lennahc MD etavirp no egrup esu tonnaC" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr ".LRU dilav a ton saw LRU nevig ehT" + +#: musicbot/bot.py:6257 +#, python-format +msgid "" +"Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" +"\n" +"%(raw_error)s\n" +"lru tupni morf ofni tcartxe ton dluoC" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr ".tsilyalp a eb ot mees ton seod sihT" + +#: musicbot/bot.py:6425 +msgid "" +"Invalid user ID or server nickname, please double-check the ID and try " +"again." +msgstr "" +".niaga yrt dna DI eht kcehc-elbuod esaelp ,emankcin revres ro DI resu " +"dilavnI" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr ".niaga yrT .resU drocsid eht enimreted ton dluoC" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr ".emit emas eht ta snoitnem resu dna lennahc esu tonnac snoissimreP" + +#: musicbot/bot.py:6538 +#, python-format +msgid "" +"Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +":rorre na ot eud snoissimreP daoler ot elbanU" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr ".dnammoc siht rof eman noitpo ro puorg a edivorp tsum uoY" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr ".dnammoc siht rof tes ot eulav dna ,noitpo ,puorg a edivorp tsum uoY" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr ".eman noissimrep dna puorg a seriuqer dnammoc-bus %(option)s ehT" + +#: musicbot/bot.py:6605 +#, python-format +msgid "" +"The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" +"%(sections)s :era spuorg elbaliava ehT\n" +".elbaliava ton si `%(group)s` puorg ehT" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr ".elbaliava ton si `%(option)s` noissimrep ehT" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr ".stsixe ydaerla ti `%(group)s` puorg dda tonnaC" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr ".puorg ni-tliub evomer tonnaC" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr ".elbatide ton si puorg renwo ehT" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "`%(group)s` :puorg eht evas ot deliaF" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "%(value)s :eulav htiw %(option)s no tes gnioD" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "!detadpu ton saw `%(option)s` noissimreP" + +#: musicbot/bot.py:6784 +msgid "" +"Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" +"\n" +".ruoh rep eciwt ot detimil era segnahc eman rebmemeR\n" +"?semit ynam oot seman egnahc uoy diD .emanresu egnahc ot deliaF" + +#: musicbot/bot.py:6790 +#, python-format +msgid "" +"Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +" :rorre ot eud emanresu egnahc ot deliaF" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr ".noissimrep on :emankcin egnahc ot elbanU" + +#: musicbot/bot.py:6820 +#, python-format +msgid "" +"Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +" :rorre ot eud emankcin tes ot deliaF" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr ".xiferp a sa esu ot revres siht morf eb tsum ijome motsuC" + +#: musicbot/bot.py:6877 +msgid "" +"Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" +".daetsni xiferp eht etadpu ot dnammoc gifnoc eht esU\n" +"!delbane ton si revres rep xiferP" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr ".elif a hcatta ro LRU a edivorp tsum uoY" + +#: musicbot/bot.py:6915 +#, python-format +msgid "" +"Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +" :rorre ot eud ratava egnahc ot elbanU" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr ".melborp a eb dluoc sihT !dliug on htiw %s a dnuof toBcisuM" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "`%(guild)s` revres ot detcennoc yltnerruc toN" + +#: musicbot/bot.py:6993 +msgid "" +"Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" +"tigpu ro ,pippu ,edargpu ,lluf ,tfos :fo eno esu ,nevig noitpo dilavnI" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr ".eman ro DI na edivorp tsum uoY" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "`%(input)s` eman ro DI eht htiw dnuof saw dliug oN" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "%(uuid)s :DI tniopkaerb gubed gnitavitcA" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "?dellatsni ti si ,`hpargjbo` tropmi ton dluoC" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr ".)(lave htiw nar edoc gubeD" + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr ".)(cexe htiw nar edoc gubeD" + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr ".etucexe ot deliaf edoc gubeD" + +#: musicbot/bot.py:7302 +#, python-format +msgid "" +"Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" +"```%(ex_text)s\n" +":%(ex_name)s\n" +"``` :noitpecxE\n" +"%(py_code)s\n" +":edoc gubed etucexe ot deliaF" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "%(options)s :fo eno eb tsum dnammoc-buS" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr ".elbatucexe tig etacol ton dluoC" + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr ".dnammoc tig aiv setadpu rof gnikcehc elihw deliaF" + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr ".troper pip ni atem gnissim egakcaP" + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr ".rorre emos ot eud sutats etadpu pip teg ot deliaF" + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr ".yrtne tneilc eciov egnarts a toG" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr ".delbane ydaerla seikooC" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr ").elif seikooc gnissiM( .delbane eb ot dedaolpu eb tsum seikooC" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "%(raw_error)s :rorre ot eud seikooc elbane ton dluoC" + +#: musicbot/bot.py:7722 +#, python-format +msgid "" +"Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" +".tratser txen no delbane-er eb lliw dna delbasid yliraropmet seikooC\n" +"%(raw_error)s :rorre ot eud elif seikooc emaner ton dluoC" + +#: musicbot/bot.py:7731 +msgid "" +"No attached uploads were found, try again while uploading a cookie file." +msgstr "" +".elif eikooc a gnidaolpu elihw niaga yrt ,dnuof erew sdaolpu dehcatta oN" + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "%(raw_error)s :elif seikooc delbasid ,dlo evomer ton dluoC" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "%(raw_error)s :drocsid morf elif seikooc eht gnidaolnwod rorrE" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "%(raw_error)s :ksid ot seikooc evas ton dluoC" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "%s :wohemos ,lennahc on htiw egassem a toG" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr ")%s( flesym morf dnammoc gnirongI" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr ")%s( tob rehto morf dnammoc gnirongI" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "%s :epyt fo lennahc morf dnammoc gnirongI" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "%(command)s :dnammoc deirt %(name)s/%(id)s :tsil kcolb ni resU" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "%(message)s :%(name)s/%(id)s morf egasseM" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "%(group)s :puorg snoissimrep ruoy rof dewolla ton si dnammoc sihT" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr ".lennahc ecioV a ni eb ot uoy seriuqer dnammoc sihT" + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "%(params)r :smarap rof seulav gnissim ,egasu dnammoc dilavnI" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "%(err_text)s :%(err_name)s :%(command)s ni rorrE" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "%(command)s :dnammoc gnildnah elihw noitpecxE" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "%s :dnammoc gnissim rof pleh etareneg tonnaC" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "%s :dnammoc rof atad pleh gnissiM" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr ".ytivitcani ot eud %s ni %s lennahc eciov gnivaeL" + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr ".detcennoc emoceb sah toBcisuM" + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr ".detcennocsid emoceb sah toBcisuM" + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "%s :tnevE tekcoS a toG" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "dehsinif ydaer_no erofeb detadpu etatSecioV" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr ".lennahc eciov dnuob a si ti sa %s ni %s gnirongI" + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr ".stuoemit gnildnaH .ytpme sa detceted neeb sah %s" + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr ".remit gnillecnac ,%s denioj resu A" + +#: musicbot/bot.py:8359 +#, python-format +msgid "" +"The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "" +".stuoemit gnildnaH .ytpme si %s lennahc eciov eht dna devom tog tob ehT" + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr ".ytpme ton si %s lennahc eciov eht dna devom tog tob ehT" + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "%s resu gniwollof regnol oN" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "%(channel)s :lennahc ot `%(user)s` resu gniwolloF" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr ".enoN si lennahc.erofeb tcennocsid etatSecioV" + +#: musicbot/bot.py:8471 +#, python-format +msgid "" +"Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: " +"%(code)s) [S:%(state)s]" +msgstr "" +"]%(state)s:S[ )%(code)s :edoC( %(channel)s/%(guild)s :ni IPA drocsiD yb " +"eciov morf detcennocsiD" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "" +"%(guild)s :dliug ni %(type)s :epyt htiw lennahc nioj-otua esu tonnaC" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "%s :dliuG ?deteled ti saw ,lennahc denioj-otua eht dnif tonnaC" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "%s :lennahc no dliug denioj-otua ot gnitcennoceR" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "%s :lennahc nioj otua tonnaC" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "%s :dliug ot dedda neeb sah toB" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr ".dnuof ton renwo tob ot eud '%s' dliug tfeL" + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "%s dliug rof redlof atad gnitaerC" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "%s :dliug morf devomer neeb sah toB" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr ":tsil dliug detadpU" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr ".elbaliava emoceb sah \"%s\" dliuG" + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr ".ytilibaliava ot eud \"%s\" ni reyalp gnimuseR" + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr ".elbaliavanu emoceb sah \"%s\" dliuG" + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr ".ytilibaliavanu ot eud \"%s\" ni reyalp gnisuaP" + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "%s :rof etadpu dliuG" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "%(old)s :saW -- %(new)s :won si %(attr)s etubirtta dliuG" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "%(changes)s -- %(channel)s :rof etadpu lennahC" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "%s gnitaerC" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "%s :morf gifnoc gnidaoL" + +#: musicbot/config.py:1083 +#, python-format +msgid "" +"Error while reading config.\n" +"\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n" +"\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" +".yrotisoper eht morf ti ypoc ro etalpmet a sa snoitpo elpmaxe eht esU \n" +".noitpo eno tsael ta evah tsum noitces hcaE \n" +".enil emas eht no txet rehto on htiw ,ecno ylno raeppa tsum ]noitceS[ hcaE \n" +".elif snoitpo gifnoc ruoy riapeR \n" +":noituloS\n" +"\n" +"%(sections)s \n" +":era snoitces gnissim ehT \n" +".gnissim era snoitces noitpo gifnoc deriuqer erom ro enO \n" +":melborP\n" +"\n" +".gifnoc gnidaer elihw rorrE" + +#: musicbot/config.py:1113 +#, python-format +msgid "" +"Cannot store more than %s log files. Option LogsMaxKept will be limited " +"instead." +msgstr "" +".daetsni detimil eb lliw tpeKxaMsgoL noitpO .selif gol %s naht erom erots " +"tonnaC" + +#: musicbot/config.py:1121 +msgid "" +"Config option LogsDateFormat is empty and this will break log file rotation." +" Using default instead." +msgstr "" +".daetsni tluafed gnisU .noitator elif gol kaerb lliw siht dna ytpme si " +"tamroFetaDsgoL noitpo gifnoC" + +#: musicbot/config.py:1132 +msgid "" +"Error while validating config options.\n" +"\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n" +"\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" +".yrotcerid / redlof a ot htap a si derugifnoc uoy htap eht erus ekaM \n" +":noituloS\n" +"\n" +".yrotcerid a ton si htaPehcaCoiduA noitpo gifnoC \n" +":melborP\n" +"\n" +".snoitpo gifnoc gnitadilav elihw rorrE" + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr ".htaPehcaCoiduA gnitadilav elihw nworht saw noitpecxe nA" + +#: musicbot/config.py:1153 +#, python-format +msgid "" +"Error while validating config options.\n" +"\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" +".htap yrotcerid elbissecca ,dilav a si gnittes eht kcehc elbuoD \n" +":noituloS\n" +"\n" +"%(raw_error)s \n" +":rorre na ot eud tes eb ton dluoc noitpo gifnoc htaPehcaCoiduA \n" +":melborP\n" +"\n" +".snoitpo gifnoc gnitadilav elihw rorrE" + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "%s :ni derots eb lliw ehcaC oiduA" + +#: musicbot/config.py:1176 +#, python-format +msgid "" +"Error while reading config options.\n" +"\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n" +"\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" +".nekot ppA na htiw %(env_var)s elbairav tnemnorivne tes ro noitpo gifnoc nekoT eht teS \n" +":noituloS\n" +"\n" +".tnemnorivne ro snoitpo gifnoc eht ni deificeps saw nekoT tob oN \n" +":melborP\n" +"\n" +".snoitpo gifnoc gnidaer elihw rorrE" + +#: musicbot/config.py:1197 +msgid "" +"StatusMessage config option is too long, it will be limited to 128 " +"characters." +msgstr "" +".sretcarahc 821 ot detimil eb lliw ti ,gnol oot si noitpo gifnoc " +"egasseMsutatS" + +#: musicbot/config.py:1206 +#, python-format +msgid "" +"The default playback speed must be between 0.5 and 100.0. The option value " +"of %.3f will be limited instead." +msgstr "" +".daetsni detimil eb lliw %.3f fo eulav noitpo ehT .0.001 dna 5.0 neewteb eb " +"tsum deeps kcabyalp tluafed ehT" + +#: musicbot/config.py:1216 +msgid "" +"Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n" +"\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "" +"\n" +"695F1000U\\ !kcuL dooG !denraw neeb evah uoY\n" +"\n" +"!dennab gnieb stnuocca ruoy ni tluser nac esac tseb eht ni\n" +" dna atad lanosrep gnisopxe sksir resworb-bew ruoy morf seikooc gniypoC\n" +".kaerb yllatot yam dna ,detroppus eb ton yam ,dednemmocer ton era seikooC\n" +".pld-ty ot meht ssap lliw toBcisuM .detceted elif TXT seikooC" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "...atad ecivres htiw snoitpo gnitadilaV" + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "IPA aiv DI renwo deriuqcA" + +#: musicbot/config.py:1244 +msgid "" +"Error while fetching 'OwnerID' automatically.\n" +"\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n" +"\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "" +".retal niaga yrt ro noitpo gifnoc 'DIrenwO' eht tes yllaunaM \n" +":noituloS\n" +"\n" +".gub a ro egatuo IPA yraropmet a eb dluoc sihT \n" +".elbaliava ton si ofni ppA drocsiD \n" +":melborP\n" +"\n" +".yllacitamotua 'DIrenwO' gnihctef elihw rorrE" + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr ".deecorp tonnac ,ecnatsni resu a evah ton seod toBcisuM" + +#: musicbot/config.py:1262 +msgid "" +"Error validating config options.\n" +"\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n" +"\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "" +".dleif 'DIrenwO' eht ni DI ppA ro toB eht esu ton oD \n" +":noituloS\n" +"\n" +".DI ppA / toB ruoy sa emas eht si gifnoc 'DIrenwO' ehT \n" +":melborP\n" +"\n" +".snoitpo gifnoc gnitadilav rorrE" + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "...sevitanretla rof gnikcehC .dnuof ton elif snoitpo gifnoC" + +#: musicbot/config.py:1298 +#, python-format +msgid "" +"Renaming %(ini_file)s to %(option_file)s, you should probably turn file " +"extensions on." +msgstr "" +".no snoisnetxe elif nrut ylbaborp dluohs uoy ,%(option_file)s ot " +"%(ini_file)s gnimaneR" + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "%(example_file)s :elif snoitpo elpmaxe gnitsixe gniypoC" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "%(option_file)s ot ti deipoc dna %(example_file)s wen a detareneG" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr ".elif noitpo gifnoc a dnif ot gniyrt elihw gnorw tnew gnihtemoS" + +#: musicbot/config.py:1327 +#, python-format +msgid "" +"Error locating config.\n" +"\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" +".toBcisuM yb daer eb nac dna tsixe selif dna redlof gifnoc eht yfireV \n" +":noituloS\n" +"\n" +"%(raw_error)s \n" +":rorre na ot eud elif gifnoc a etaerc ro dnif ton dluoC \n" +":melborP\n" +"\n" +".gifnoc gnitacol rorrE" + +#: musicbot/config.py:1345 +#, python-format +msgid "" +"Error loading config.\n" +"\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" +".sliaf esle lla fi oper eht morf elif elpmaxe eht ypoC \n" +".eerf rorre dna elbissecca si elif eht erus ekaM \n" +":noituloS\n" +"\n" +"%(raw_error)s \n" +":rorre na ot eud elif gifnoc daer ton dluoc toBcisuM \n" +":melborP\n" +"\n" +".gifnoc gnidaol rorrE" + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr ".elbaliava ton si taht retteg sah noitpo gifnoC !guB veD" + +#: musicbot/config.py:1374 +msgid "" +"Dev Bug! Config option has invalid type, getter and default must be the same" +" type." +msgstr "" +".epyt emas eht eb tsum tluafed dna retteg ,epyt dilavni sah noitpo gifnoC " +"!guB veD" + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr ".ylsuoiverp gnissim saw noitpO" + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "%s :gnissiM !gifnoc desrap ni ton noitces gifnoC" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "%(value)s = %(config)s :noitpo gifnoc devaS" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "%s :gifnoc evas ot deliaF" + +#: musicbot/config.py:1932 +msgid "" +"Option names are not unique between INI sections! Resolver is disabled." +msgstr "" +".delbasid si revloseR !snoitces INI neewteb euqinu ton era seman noitpO" + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "%s :ta elif INI tluafed evas ot deliaF" + +#: musicbot/config.py:2184 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n" +"\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" +".gnidnib renwo citamotua rof `0` ro `otua` ot ti tes ro DI laciremun a ot %(option)s teS \n" +":noituloS\n" +"\n" +".dilav ton si %(option)s > ]%(section)s[ ni DI renwo ehT \n" +":melborP\n" +"\n" +".eulav gifnoc gnidaol rorrE" + +#: musicbot/config.py:2220 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n" +"\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" +".toBcisuM ot elbissecca si dna stsixe elif eht erus ekam dna gnittes htap eht kcehC \n" +":noituloS\n" +"\n" +".noitacol elif dilav a ton si %(option)s > ]%(section)s[ noitpo gifnoc ehT \n" +":melborP\n" +"\n" +".eulav gifnoc gnidaol rorrE" + +#: musicbot/config.py:2250 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n" +"\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" +".sammoc ro secaps yb ylno detarapes dna ,laciremun era sDI lla erusnE \n" +":noituloS\n" +"\n" +".dilavni si %(option)s > ]%(section)s[ noitpo ni sDI eht fo enO \n" +":melborP\n" +"\n" +".eulav gifnoc gnidaol rorrE" + +#: musicbot/config.py:2283 +#, python-format +msgid "" +"Invalid DebugLevel option \"%(value)s\" given, falling back to level: " +"%(fallback)s" +msgstr "" +"%(fallback)s :level ot kcab gnillaf ,nevig \"%(value)s\" noitpo leveLgubeD " +"dilavnI" + +#: musicbot/config.py:2304 +#, python-format +msgid "" +"Option [%(section)s] > %(option)s has invalid config value '%(value)s' using" +" default instead." +msgstr "" +".daetsni tluafed gnisu '%(value)s' eulav gifnoc dilavni sah %(option)s > " +"]%(section)s[ noitpO" + +#: musicbot/config.py:2353 +#, python-format +msgid "" +"Option [%(section)s] > %(option)s has a value greater than 100 %% " +"(%(value)s) and will be set to %(fallback)s instead." +msgstr "" +".daetsni %(fallback)s ot tes eb lliw dna )%(value)s( %% 001 naht retaerg " +"eulav a sah %(option)s > ]%(section)s[ noitpO" + +#: musicbot/config.py:2437 +#, python-format +msgid "" +"Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "" +"%(new_o)s > ]%(new_s)s[ ot %(old_o)s > ]%(old_s)s[ yrtne elif INI gnimaneR" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "...snoitpo demaner htiw elif gifnoc gnidargpU" + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr ".yllaunam ti edargpu ot deen ll'uoY .gifnoc edargpu ot deliaF" + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "%s :dnuof ton elif tsil kcolB" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "%s :elif morf tsil kcolb daol ton dluoC" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "%s :elif tsil kcolb eht etadpu ton dluoC" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr ".seirtne %s htiw tsil kcolB resU dedaoL" + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "%s :ot demaner eb lliw ti ,elif tsilkcalb ycagel a dnuof eW" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr ".seirtne %s htiw tsil kcolB gnoS a dedaoL" + +#: musicbot/constructs.py:221 +msgid "" +"Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "" +"!edoc eht ni gub a ylekil si sihT .0 DI htiw dliug rof atad daol tonnaC" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "%(name)s/%(id)s dliug rof elif oN" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "%(name)s/%(id)s :DI htiw dliug rof atad dliug gnidaoL" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "%s :elif atad dliug gnidaer detneverp rorre SO nA" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "%(prefix)s :xiferp dnammoc motsuc sah %(name)s/%(id)s dliuG" + +#: musicbot/constructs.py:275 +msgid "" +"Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "" +"!edoc eht ni gub a ylekil si sihT .0 DI htiw dliug rof atad evas tonnaC" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr ".rorrE SO ot eud atad cificeps dliug evas ton dluoC" + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr ".atad dilavni ot eud atad cificeps dliug ezilaires ot deliaF" + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "%s :tnegA resU esu ot PLDTY gnicroF" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "%s :morf pld-ty rof seikooc esu lliw toBcisuM" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr ".revres yxorp derugifnoc ruoy esu lliw pld-tY" + +#: musicbot/downloader.py:134 +msgid "" +"Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "" +".daetsni serutaef 2htuAO detargetni esu ot egakcap 2htuao-ebutuoy-pld-ty eht llatsninU\n" +".edoc htuA eht wohs ot ,segassem gol rehto dna sgninraw wohs ot tes gnieb si pld-tY\n" +"!ssecorp toBcisuM eht lliK yllaunam tsum uoy ,toBcisuM esolc oT\n" +"!noitazirohtua gnidnep gnah ro ,yletelpmoc esolc ton ot toBcisuM esuac yam sihT\n" +".daetsni desu eb lliw dna dellatsni si nigulp 2htuAO lanigirO" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "...sredaeh on evah ot smees DAEH" + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr ".tuoemit ot eud deliaf sredaeh aidem gnikcehC" + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "%s :rof tseuqer DAEH deliaF" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr " :noitpecxe tseuqeR DAEH" + +#: musicbot/downloader.py:315 +#, python-format +msgid "" +"Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "" +"%s\n" +":)NOSJ ton( ofnI noitcartxE LDTY dezitinaS" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "%s :)NOSJ ton( ofnI noitcartxE LDTY dezitinaS" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr ".atad on denruter noitcartxe ofni gnoS" + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "%(kws)s ,%(args)s ,'%(subject)s' :htiw ofni_tcartxe dellaC" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr ").snwodtuhs no lamron si sihT( .desolc si pool ,noitcartxe nur tonnaC" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr ".desolc si pool tneve ,noitcartxe eunitnoc tonnaC" + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr ".detroppus ton ro dilavni si LRU yfitopS" + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "%(raw_error)s :atad gnidaolnwod elihw pld-ty ni rorrE" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "LRU maerts htiw rorrE daolnwoD" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "maerts tcerid a si tnetnoc gnimussA" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr ".LRU dilavni na maerts tonnaC" + +#: musicbot/downloader.py:517 +msgid "" +"Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "" +".ecaps htiw noloc gnicalper retfa niaga gniyrt ,sreldnaHgnitroppuSoN thguaC" + +#: musicbot/downloader.py:544 +msgid "" +"Extractor youtube:search returned single-entry result, replacing base info " +"with entry info." +msgstr "" +".ofni yrtne htiw ofni esab gnicalper ,tluser yrtne-elgnis denruter " +"hcraes:ebutuoy rotcartxE" + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "%(kws)s ,%(args)s :htiw ofni_tcartxe_efas dellaC" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr ".dnuof eb ton dluoc elif aidem lacol ehT" + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "tciDesnopseRpldtY morf tcejbus_tupni__ gnissiM" + +#: musicbot/downloader.py:623 +msgid "" +"Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "" +".siht diova ot eurT=ssecorp tes ,tciDesnopseRpldtY ni tsil a ton si seirtnE" + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "%(url)s :rof rorre noitarud ,gninraW" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr ".eborpff ot kcab llaf lliw ,dnuof ton 'ofniaidemyp' eludom" + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "%r rof erutuf detaerC" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "%(callback)r htiw %(entry)r rof serutuf detelpmoC" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr ".kcabllac erutuf_hcae_rof_ ni noitpecxe deldnahnU" + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "%(run)s :dnammoc htiw )%(process)s( ssecorpbus oicnysa gnitratS" + +#: musicbot/entry.py:223 +#, python-format +msgid "" +"Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "" +"%s :eman yrtnE\n" +".dedaolnwod si ti litnu semit eueuq etamitse tonnac toBcisuM\n" +".yrtne siht rof noitarud a edivorp ton did noitcartxE" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr ".ezilairesed tonnac ,rebmun noisrev gnissim si atad yrtnE" + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr ".ezilairesed tonnac ,rebmun noisrev gnorw eht sah atad yrtnE" + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "%s :DI htiw lennahc dnif tonnac yrtnEtsilyalPLRU dezilaireseD" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "%s :epyt lennahc gnorw eht sah yrtnEtsilyalPLRU dezilaireseD" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "%s :DI htiw rohtua dnif tonnac yrtnEtsilyalPLRU dezilaireseD" + +#: musicbot/entry.py:402 +msgid "" +"Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" +"!pukool rof lennahc on tub DI rohtua na sah yrtnEtsilyalPLRU dezilaireseD" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "%s daol ton dluoC" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "%(type)s :epyt htiw rorre gnissecorp ,sknil yfitopS daolnwod tonnaC" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "%r :yrtne rof ydaer gnitteG" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "...noisnetxe tnereffid htiw dehcac daolnwoD" + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "...gnidaolnwod-eR .ezis etomer morf tnereffid ezis lacoL" + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "%s :ta dehcac ydaerla daolnwoD" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "" +"MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "" +"%s :elif yrtnE\n" +".deraelc si kcart siht litnu elbaliavanu eb yam noitamitse emit eueuQ\n" +".yrtne siht rof atad noitarud teg ton dluoc toBcisuM" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "%(file)s :elif rof sdnoces %(time)s fo noitarud toG" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "" +"There as a problem with working out EQ, likely caused by a strange " +"installation of FFmpeg. This has not impacted the ability for the bot to " +"work, but will mean your tracks will not be equalized." +msgstr "" +".dezilauqe eb ton lliw skcart ruoy naem lliw tub ,krow ot tob eht rof " +"ytiliba eht detcapmi ton sah sihT .gepmFF fo noitallatsni egnarts a yb " +"desuac ylekil ,QE tuo gnikrow htiw melborp a sa erehT" + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr ".atad yrtne gnikcehc elihw noitpecxE" + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "%s :rof ofniaidemyp aiv noitarud teg ot gniyrT" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr ".ofniaidemyp aiv noitarud teg ot deliaF" + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "%s :rof eborpff aiv noitarud teg ot gniyrT" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "!htap ruoy ni eborpff etacol ton dluoC" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr ".desu eb ton dluoc taht gnihtemos denruter eborpff" + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr ".nosaer emos rof detucexe eb ton dluoc eborpff" + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "%s :fo emulov naem gnitaluclaC" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "!htap ruoy no gepmff etacol ton dluoC" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr ".nosj ezilamron ni 'I' esrap ton dluoC" + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr ".nosj ezilamron ni 'ARL' esrap ton dluoC" + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr ".nosj ezilamron ni 'PT' esrap ton dluoC" + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr ".nosj ezilamron ni 'hserht' esrap ton dluoC" + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr ".nosj ezilamron ni 'tesffo' esrap ton dluoC" + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "%r :detrats daolnwoD" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "...3 fo %s tpmetta daolnwoD" + +#: musicbot/entry.py:697 +#, python-format +msgid "" +"Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "" +"%(raw_error)s :nosaeR .sdnoces %(time).1f ni gniyrter ,etelpmocni daolnwoD" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "%(raw_error)s :nosaeR !gniyrter ton ,deliaf daolnwoD" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "%(raw_error)s :rorre na ot eud etelpmoc ton did daolnwoD" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "%(raw_error)s :rorre pld-ty a ot eud deliaf daolnwoD" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr ".noitpecxe deldnahnu na deretnuocne noitcartxE" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "%(raw_error)s :noitpecxe deldnahnu na ot eud deliaf daolnwoD" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "%r :deliaf daolnwoD" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr ".aidem detseuqer eht rof atad tcartxe ot deliaF" + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "%r :etelpmoc daolnwoD" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "%s :DI htiw lennahc dnif tonnac yrtnEtsilyalPmaertS dezilaireseD" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "%s :epyt lennahc gnorw eht sah yrtnEtsilyalPmaertS dezilaireseD" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "%s :DI htiw rohtua dnif tonnac yrtnEtsilyalPmaertS dezilaireseD" + +#: musicbot/entry.py:910 +msgid "" +"Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" +"!pukool rof lennahc on tub DI rohtua na sah yrtnEtsilyalPmaertS dezilaireseD" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "%s :DI htiw lennahc dnif tonnac yrtnEtsilyalPeliFlacoL dezilaireseD" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "%s :epyt lennahc gnorw eht sah yrtnEtsilyalPeliFlacoL dezilaireseD" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "%s :DI htiw rohtua dnif tonnac yrtnEtsilyalPeliFlacoL dezilaireseD" + +#: musicbot/entry.py:1132 +msgid "" +"Deserialized LocalFilePlaylistEntry has an author ID but no channel for " +"lookup!" +msgstr "" +"!pukool rof lennahc on tub DI rohtua na sah yrtnEtsilyalPeliFlacoL " +"dezilaireseD" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "%(file)s :elif rof sdnoces %(seconds)s fo noitarud toG" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "%s :elif ehcac eteled ot deliaF" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr ".devomer neeb sah yrotcerid ehcac oiduA" + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr ".demaner ro devomer eb ton dluoc yrotcerid ehcac oiduA" + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr ".devomer eb ton dluoc yrotcerid ehcac oiduA" + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr ".eteled ot gnihton ,tes stimil on sah ehcac oiduA" + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr ".devomer %(size)s fo latot ,)s(elif %(number)s deteled ehcac oiduA" + +#: musicbot/filecache.py:223 +#, python-format +msgid "" +"Audio cached retained %(number)s file(s) from autoplaylist, total of " +"%(size)s retained." +msgstr "" +".deniater %(size)s fo latot ,tsilyalpotua morf )s(elif %(number)s deniater " +"dehcac oiduA" + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr ".)s(elif %(number)s revo %(size)s won si ehcac oiduA" + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr ".eteled ot gnihton ,gnissim si yrotcerid ehcac oiduA" + +#: musicbot/filecache.py:267 +msgid "" +"Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "" +".ti gnirongi ,detsub sa dekram tub tsilyalpotua morf si elif ehcac oiduA" + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "%s .punaelc seriuqer level ehcaC" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr ".no gnivom ,pam ehcac on sah tsilyalp otuA" + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr ".seirtne %s htiw pam ehcac tsilyalp otua dedaoL" + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr ".pam ehcac tsilyalp otua daol ot deliaF" + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr ".seirtne %s htiw pam ehcac tsilyalp otua devaS" + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr ".pam ehcac tsilyalp otua evas ot deliaF" + +#: musicbot/filecache.py:355 +#, python-format +msgid "" +"Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: " +"%(new)s" +msgstr "" +"%(new)s :weN %(old)s :dlO %(file)s :yeK no tcilfnoc pam ehcac tsilyalp " +"otuA" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "%s :rorrE tnemugrA gnaL" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "%s :ni ]%s[ :fo yna rof snoitalsnart gol daol ot deliaF" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "%s :ni ]%s[ :fo yna rof snoitalsnart drocsid daol ot deliaF" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "%s :elif NOSJ gnidaoL" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "NOSJ sa %s gnisrap rorrE" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "%s :yek NOSJ morf atad barg ton dluoC" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "pu tes ydaerla ,putes reggol gnippikS" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "%s :ot edirrevo aiv tes ylsuoiverp saw level goL" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "%s :ot level gol gnignahC" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr ".nwod tuhs ot dellac neeb evah sreggol toBcisuM" + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "%s :morf gniypoc ,dnuof ton elif snoissimreP" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "%s :elif snoissimrep elpmaxe gniypoc rorrE" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr ".retal yltcerroc tes lliw ,otua tes si 'DIrenwO' gifnoC" + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "...snoissimrep gnitadilaV" + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr ".puorg snoissimrep renwo rof 'DIrenwO' otua gnitteS" + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "%s :elif snoissimrep ni puorg gnitadpU" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "%s :elif snoissimrep morf puorg gniteleD" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "%s :elif snoissimrep ot puorg wen gniddA" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr ".won elif snoissimrep gnivaS" + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "!elif snoissimrep eht esrap ton dluoc retadpUgifnoC" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "!elif snoissimreP ruoy xif ,noitces etacilpud a evah uoY" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "%s :puorg snoissimrep evas ot deliaF" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr ".elbaliava ton si taht retteg sah noissimreP !guB veD" + +#: musicbot/permissions.py:294 +msgid "" +"Dev Bug! Permission has invalid type, getter and default must be the same " +"type." +msgstr "" +".epyt emas eht eb tsum tluafed dna retteg ,epyt dilavni sah noissimreP !guB " +"veD" + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr ".001 ot gnitteS .001 naht regral eb t'nac smeti hcraes xaM" + +#: musicbot/permissions.py:613 +#, python-format +msgid "" +"You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" +".puorg ruoy ni dettimrep ton si `%(extractor)s` rotcartxe pld-ty ehT\n" +".aidem detseuqer eht yalp ot noissimrep evah ton od uoY" + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "%r :ecruos oidua eht no dellac tog punaelC" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "%s :dellac si )(piks.reyalPcisuM" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "%s :dellac si )(pots.reyalPcisuM" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr ".kcabyalp emuser tonnac ,elbaliavanu krowten ro dliuG" + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "%s :dellac si )(emuser.reyalPcisuM" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "%s :dellac si )(esuap.reyalPcisuM" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "%s :dellac si )(llik.reyalPcisuM" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr ".enoN si yrtne_tnerruc_ tub ,dehsinif kcabyalP" + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr ")(reyalp_tnerruc_llik morf gninraW elbissoP" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "%s :dellac si )(yalp.reyalPcisuM" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr ".yalp tonnac ,daed si reyalPcisuM" + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr ".kcabyalp trats tonnac ,elbaliavanu krowten ro dliuG" + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr ".reyalp tnerruc gnimuser ,desuap ylsuoiverp saw reyalPcisuM" + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr ".derongi si llac siht ,kcabyalp rof dekcol ydaerla reyalPcisuM" + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr ".yrtne txen teg ot deliaF" + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr ".kcabyalp rof yrtne ssecorp ot deliaF" + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "" +"%(after)s %(input)s i- %(before)s gepmff :snoitpo htiw reyalp gnitaerC" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "%(client)r gnisu %(source)r gniyalP" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "eueuq ni gnos dnuof ,'%s' fo noiteled gnippikS" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "%s :elif gniteleD" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "%s :deteled eliF" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr ".esu ni yltnerruc si ti ,elif eteled tonnaC" + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr ".rorre noissimrep a ot eud elif eteled tonnaC" + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr ".dnuof ton saw ti ,elif eteled tonnaC" + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr ".elif eteled ot gniyrt elihw rorrE" + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "no gnivom dna pu gnivig ,elif eteled ton dluoC" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "%s :reyalPcisuM a ton si taht tcejbo na denruter ezilaireseD" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "reyalp ezilairesed ot deliaF" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "%s :gepmff morf ataD" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "%s :gepmff morf rorrE" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "%s :gepmff morf gninraW" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "gepmff morf egassem gnidoced rorre nwonknU" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "%s :gepmff morf atad dedoceD" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "%(url)s :LRU rof yrtne maerts gniddA" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "noitamrofni tcartxe ton dluoC" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr ".tsilyalp a si sihT" + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "...yrtne maerts gnidda ,maerts a eb ot sraeppa ofni yrtnE" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "%(url)s :LRU rof `%(type)s` epyt tnetnoc dilavnI" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr ".maerts a eb thgim siht ,epyt-tnetnoc rof lmth/txet toG" + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "%(url)s :lru rof \"%(type)s\" epyt-tnetnoc elbanoitseuQ" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "%(subject)s :rof yrtnEtsilyalPLRU gniddA" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "%(subject)s :rof yrtnEtsilyalPeliFlacoL gniddA" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "%s :DI htiw knil tsilyalp dnuopmoc morf oediv derongI" + +#: musicbot/playlist.py:292 +#, python-format +msgid "" +"Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "" +"%(url)s :LRU %(title)s :tsil kcolb gnos ni si taht yrtne gniwolla toN" + +#: musicbot/playlist.py:305 +#, python-format +msgid "" +"Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "" +".mumixam dettimrep naht regnol noitarud ,'%s' yb seirtne ni gnos gnirongI" + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "%s :deteled ro etavirp dekram si ti esuaceb oediv ebuTuoY gnidda toN" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "meti dda ton dluoC" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "%s :metI" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "seirtne dab %s deppikS" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr ".seirtne revo gnipool redroeR" + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "%r :kcart txen gnidaolnwod-erP" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "atad noitarud on" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "yrtne tnerruc ni atad noitarud on" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "`%(type)s` tog `kcart` epyt fo eb tsum ,atad_kcart dilavnI" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "%s :epyt htiw tsilyalp ni yrtne kcart-non derongI" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "%(url)s :LRU txeN %(total)s :skcat latot mublA yfitopS" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "%s :LRU txeN mublA yfitopS gnitteG" + +#: musicbot/spotify.py:503 +#, python-format +msgid "" +"Spotify Album Object may not be complete, expected %(total)s tracks but got " +"%(number)s" +msgstr "" +"%(number)s tog tub skcart %(total)s detcepxe ,etelpmoc eb ton yam tcejbO " +"mublA yfitopS" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr ".latot laitini naht skcart erom sah mublA yfitopS" + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "%(url)s :LRU txeN %(total)s :skcat latot tsilyalP yfitopS" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "%s :LRU txeN tsilyalP yfitopS gnitteG" + +#: musicbot/spotify.py:546 +#, python-format +msgid "" +"Spotify Playlist Object may not be complete, expected %(total)s tracks but " +"got %(number)s" +msgstr "" +"%(number)s tog tub skcart %(total)s detcepxe ,etelpmoc eb ton yam tcejbO " +"tsilyalP yfitopS" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr ".latot laitini naht skcart erom sah tsilyalP yfitopS" + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr ".skcart elbasu %s deniatnoc tsilyalP yfitopS" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "%(reason)s ]%(status)s[ :KO ton si sutats esnopseR" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "!tcid a ot edoced ton did NOSJ esnopseR" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "%s :lru ot tseuqer TEG gnikam deliaF" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "%(raw_error)s :nosaeR %(url)s :LRU ot TEG ekam ton dluoC" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "%s :lru ot tseuqer TSOP gnikam deliaF" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "%(raw_error)s :nosaeR %(url)s :LRU ot TSOP ekam ton dluoC" + +#: musicbot/spotify.py:672 +msgid "" +"Failed to get a guest token from Spotify, please try specifying client ID " +"and client secret" +msgstr "" +"terces tneilc dna DI tneilc gniyficeps yrt esaelp ,yfitopS morf nekot tseug " +"a teg ot deliaF" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr ".nekot ssecca edoM tseuG wen a detaerC" + +#: musicbot/spotify.py:683 +#, python-format +msgid "" +"API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" +"%(raw_error)s :yek gnissiM .atad detcepxe eht niatnoc ton did esnopser IPA" + +#: musicbot/spotify.py:689 +#, python-format +msgid "" +"API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +".atad detcepxenu deniatnoc esnopser IPA" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "eno gnitteg pu dne ton did ,yfitopS morf nekot a detseuqeR" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr ".nekot ssecca edoM tneilC wen a detaerC" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "%(reason)s ]%(status)s[ :KO ton si sutats esnopser IPA" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr ".nekoT tseuG yfitopS teg ot deliaF" + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "%(raw_error)s :ot eud nekoT tseuG teg ot deliaF" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr ".dnammoc siht esu nac renwo eht ylnO" + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr ".dnammoc siht esu nac sresu ved ylnO" + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr ".enoN si lennahc_eciov nehw srebmem tnuoc tonnaC" + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "%s :ot eud atad nekot 2htuao pldty evas ot deliaF" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr ".atad nekot 2htuAO VT ebuTuoY gnidaoL" + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "%s :ot eud atad nekot 2htuao pldty daol ot deliaF" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "atad nekot 2htuAO VT ebuTuoY gnirotS" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr ".atad nekot 2htuAO dehcac dilavnI" + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "gnihserfer ,deripxe nekot sseccA" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "" +"YouTube cookies have been provided, but OAuth2 is being used. If you " +"encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "" +".pld-ty ot seikooc ebuTuoY gnidivorp pots ,smelborp retnuocne uoy fI .desu " +"gnieb si 2htuAO tub ,dedivorp neeb evah seikooc ebuTuoY" + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "...nekot 2htuao VT ebuTuoY gnihserfeR" + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "" +"Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "" +"...wolf noitazirohtua gnitratseR\n" +"%s :ot eud nekot ssecca 2htuAO hserfer ot deliaF" + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "...wolf 2htuao gnitratS" + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "" +"\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "" +"\n" +".noitazirohtua etelpmoc ot sdnoces %s evah uoY\n" +"%s :edoc noitazirohtua siht retne nehT\n" +"%s \n" +":tisiv ,tnuocca ruoy ot ssecca pld-ty evig oT\n" +":ECITON\n" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "" +"The application may hang until authorization time out if closed at this " +"point. This is normal." +msgstr "" +".lamron si sihT .tniop siht ta desolc fi tuo emit noitazirohtua litnu gnah " +"yam noitacilppa ehT" + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr ".nekot 2htuAO rof gnitiaw elihw tuo demiT" + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "" +".pld-ty rof wolf noitazirohtua gnitratser ,deripxe sah edoc ecived ehT" + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr ".lufsseccus noitazirohtua 2htuAO pld-tY" + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "%s :EI pld-tY ot nigulP 2htuAO gniddA" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "%s :stneilC pld-tY tluafeD" + +#: run.py:99 +msgid "Could not find git executable." +msgstr ".elbatucexe tig dnif ton dluoC" + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr ".htap tnerruc no `llup tig` htiw edargpu ot gnitpmettA" + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "%s :llup tig fo tluseR" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr ".yllaunam `llup tig` nur ot deen uoy ,deliaf edargpU" + +#: run.py:173 +msgid "Cannot execute pip." +msgstr ".pip etucexe tonnaC" + +#: run.py:180 +msgid "Error using -m method" +msgstr "dohtem m- gnisu rorrE" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr ".ssecorp-bus gnillac elihw deliaf PIP" + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr ".rorrE noissimreP ot eud deliaf PIP" + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr ")%s( ?elbatucexe nohtyP gnissim ot eud deliaf PIP" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr ".rorrESO ot eud deliaf PIP" + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr ".NOSJ troper etadpu pip edoced ton dluoC" + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "pip m- nohtyp etucexe ro etacol tonnaC" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "...htap tnerruc no `%s` htiw edargpu ot gnitpmettA" + +#: run.py:302 +#, python-format +msgid "" +"Result of pip upgrade:\n" +"%s" +msgstr "" +"%s\n" +":edargpu pip fo tluseR" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "%s :edargpu pip morf edoc tixe tluseR" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "tuptuo eht dnatsrednu ton dluoc ew ro etucexe ot deliaf edargpU" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr ".yllaunam `%s` nur ot deen yam uoY" + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr ". . . eunitnoc ot retne sserP" + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "skcehc ytinas gnitratS" + +#: run.py:361 +msgid "Required checks passed." +msgstr ".dessap skcehc deriuqeR" + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr ".setadpu rof gnikcehc deppikS" + +#: run.py:376 +msgid "Optional checks passed." +msgstr ".dessap skcehc lanoitpO" + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "+8.3 nohtyP rof gnikcehC" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "%s si noisrev sihT .deriuqer si +8.3 nohtyP" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "...8.3 nohtyP etacol ot gnitpmettA" + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "exe.yp etacol ton dluoC" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr " `8.3- exe.yp` etucexe ton dluoC" + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "...tob gnihcnuaL .dnuof 3 nohtyP" + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "\"8.3nohtyp\" gniyrT" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr ".htap no 8.3nohtyp etacol ton dluoC" + +#: run.py:435 +#, python-format +msgid "" +"\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "" +"\n" +"yp.nur %s :gnisu tob gnihcnual-eR .dnuof 8.3 nohtyP\n" + +#: run.py:440 +msgid "" +"Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "" +"8.3 nohtyP gnisu tob eht nur esaelP .rehgih ro 8.3 nohtyP dnif ton dluoC" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "tnemnorivne thgir eht ni er'ew gnirusnE" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "%s ,kcehc tnemnorivne deliaF" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "elbatirw eb ot mees ton seod yrotcerid gnikrow tnerruC" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "elbatirw si taht redlof a ot tob eht evom esaelP" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "%s :ta dellatsni si gepmFF detceteD" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "...gepmff deldnub rof HTAP tnemnorivne redlof /snib lacol gniddA" + +#: run.py:530 +msgid "" +"MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "" +".elbairav HTAP tnemnorivne ruoy ni elbaliava si ti os gepmFF llatsni esaelP\n" +".tnemnorivne ruoy ni yranib gepmFF etacol ton dluoc toBcisuM" + +#: run.py:535 +msgid "" +"On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "" +".elif tab.llatsni eht gninnur yb ro teGniW gnisu ediw-metsys gepmFF llatsni nac uoy ro\n" +",redlof `nib` toBcisuM eht ot EXE delipmoc-erp a dda nac uoy ,swodniW nO" + +#: run.py:540 +msgid "" +"On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "" +".spets llatsni ro dliub rof etis gepmFF laiciffo eht kcehc ,esiwrehtO\n" +".werbemoh aiv gepmFF llatsni ot elba eb yam uoy ,SOcaM nO" + +#: run.py:545 +msgid "" +"On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "" +".secruos morf dliub ro reganam egakcap metsys ruoy htiw gepmff rof kcehC\n" +".sreganam egakcap metsys aiv elbaliava gepmFF ekam sortsid ynam ,xuniL nO" + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "ecived siht no sniamer ecaps eerf fo BM%s naht sseL" + +#: run.py:567 +msgid "" +"\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "...seicnedneped ro toBcisuM ot setadpu rof gnikcehC\n" + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr ".dnammoc `tig` aiv elbaliava setadpu toBcisuM oN" + +#: run.py:587 +msgid "" +"Could not check for updates using `git` commands. You should check " +"manually." +msgstr "" +".yllaunam kcehc dluohs uoY .sdnammoc `tig` gnisu setadpu rof kcehc ton " +"dluoC" + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "" +"\n" +":detadpu eb nac segakcap gniwollof ehT" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr "" +"\n" +"%s :noisrev ot %s " + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr ".dnammoc `pip` aiv elbaliava setadpu ycnedneped oN" + +#: run.py:614 +msgid "" +"Could not check for updates using `pip` commands. You should check " +"manually." +msgstr "" +".yllaunam kcehc dluohs uoY .sdnammoc `pip` gnisu setadpu rof kcehc ton " +"dluoC" + +#: run.py:618 +#, python-format +msgid "" +"You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "" +"yp.etadpu/. %s \n" +":dnammoc eht gnisu yb etadpu dediug a nur nac uoY" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr ".timil mumixam eht evoba si eulaV" + +#: run.py:638 +msgid "Value must not be negative." +msgstr ".evitagen eb ton tsum eulaV" + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "%s ot 0 morf rebmun a eb tsum tpeK sgoL xaM rof eulaV" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr ".elbaliava ton si '%s' level goL" + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "%s :fo eno eb tsum leveL goL" + +#: run.py:666 +msgid "" +"Launch a music playing discord bot built using discord.py, youtubeDL, and " +"ffmpeg." +msgstr "" +".gepmff dna ,LDebutuoy ,yp.drocsid gnisu tliub tob drocsid gniyalp cisum a " +"hcnuaL" + +#: run.py:669 +msgid "Available via Github:" +msgstr ":buhtiG aiv elbaliavA" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr ":drocsid ruo nioj ,tob siht htiw troppus dna pleh erom roF" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr ".esneciL TIM eht rednu dedivorp si erawtfos sihT" + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr ".sliated etelpmoc rof elif txet `ESNECIL` eht eeS" + +#: run.py:689 +msgid "" +"Override the default / system detected language for all text in MusicBot." +msgstr "" +".toBcisuM ni txet lla rof egaugnal detceted metsys / tluafed eht edirrevO" + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr ".toBcisuM morf segassem gol edis-revres lla rof egaugnal siht esU" + +#: run.py:707 +msgid "" +"Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "" +".noitceles egaugnal dliug-rep tneverp ton seod sihT\n" +".toBcisuM morf drocsid ot tnes segassem lla rof egaugnal siht esU" + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr ".tixe dna noitamrofni noisrev toBcisuM eht tnirP" + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr ".kcehc etadpu eht gnidulcni ,skcehc putrats lanoitpo lla pikS" + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr ".putrats ta kcehc ecaps ksid eht ylno pikS" + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr ".putrats ta kcehc etadpu eht ylno pikS" + +#: run.py:751 +msgid "" +"Disable MusicBot from trying to install dependencies when it cannot import " +"them." +msgstr "" +".meht tropmi tonnac ti nehw seicnedneped llatsni ot gniyrt morf toBcisuM " +"elbasiD" + +#: run.py:762 +#, python-format +msgid "" +"Specify how many log files to keep, between 0 and %s inclusive. (Default: " +"%s)" +msgstr "" +")%s :tluafeD( .evisulcni %s dna 0 neewteb ,peek ot selif gol ynam woh " +"yficepS" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "%s :fo eno eb tsuM .gifnoc ni tes sgnittes level gol eht edirrevO" + +#: run.py:783 +#, python-format +msgid "" +"Override the default date format used when rotating log files. This should " +"contain values compatible with strftime(). (Default: '%s')" +msgstr "" +")'%s' :tluafeD( .)(emitfrts htiw elbitapmoc seulav niatnoc dluohs sihT " +".selif gol gnitator nehw desu tamrof etad tluafed eht edirrevO" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "%s :noisreV" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "!desolc ylefas eb nac lanimret sihT .ecnatsni toBcisuM wen a denepO" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "%s :noisrev toBcisuM gnidaoL" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "%s :denepo goL" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "%s :noisrev nohtyP" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "%s :ot yrotcerid gnikrow gnignahC" + +#: run.py:959 +msgid "" +"Cannot start the bot! You started `run.py` in the wrong directory and we " +"could not locate `musicbot` and `.git` folders to verify a new directory " +"location." +msgstr "" +".noitacol yrotcerid wen a yfirev ot sredlof `tig.` dna `tobcisum` etacol ton" +" dluoc ew dna yrotcerid gnorw eht ni `yp.nur` detrats uoY !tob eht trats " +"tonnaC" + +#: run.py:964 +msgid "" +"For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "" +".ot degru ylgnorts era uoy ,yrotisoper eht enolc ot tig esu ton did uoy fI\n" +".otni toBcisuM denolc uoy redlof emas eht morf `yp.nur` trats ,stluser tseb roF" + +#: run.py:1018 +msgid "" +"Certificate error is not a verification error, not trying certifi and " +"exiting." +msgstr "" +".gnitixe dna ifitrec gniyrt ton ,rorre noitacifirev a ton si rorre " +"etacifitreC" + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr ".gub a eb dluoc ti ,rorre tcaxe eht si ereH" + +#: run.py:1036 +msgid "" +"To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "" +"\n" +"...EI ro egdE tfosorciM ni etis gniliaf eht nepo nac uoy\n" +" ,erots tsurt swodniW ot etacifitrec a dda ylisae oT" + +#: run.py:1042 +msgid "" +"Could not get Issuer Certificate from default trust store, trying certifi " +"instead." +msgstr "" +".daetsni ifitrec gniyrt ,erots tsurt tluafed morf etacifitreC reussI teg ton" +" dluoC" + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr ")?edoc eht tide uoy did ,detceted noitacifidom( rorre xatnyS" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr ")tluaf ruoy ton ,gub a si siht( rorre xatnyS" + +#: run.py:1066 +msgid "" +"Cannot start MusicBot due to an error!\n" +"\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n" +"\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "" +".uoy rof meht llatsni ot yrt lliw toBcisuM dna `sped-llatsni-on--` tuohtiw hcnual ro \n" +"toBcisuM rof segakcap pip llatsni yllaunam ot deen uoY \n" +":noituloS\n" +"\n" +".egakcap ycnedneped a ro toBcisuM gnitropmi rorre na saw erehT \n" +":melborP\n" +"\n" +"!rorre na ot eud toBcisuM trats tonnaC" + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "" +"\n" +"...yllacitamotua segakcap ycnedneped toBcisuM llatsni ot gnitpmettA" + +#: run.py:1108 +#, python-format +msgid "" +"MusicBot dependencies may not be installed!\n" +"\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n" +"\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n" +"\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "" +"stob/gg.drocsid//:sptth \n" +":drocsid troppus s'toBcisuM ni pleh rof ksa osla nac uoY\n" +"\n" +"txt.stnemeriuqer/. r- U- llatsni pip m- %(py_bin)s \n" +":dnammoc launam siht yrt rO \n" +".segakcap llatsni stpircs etadpu eht gnisu yrt nac uoY \n" +".yrotcerid toBcisuM eht ot lanimret / tpmorp DMC a nepO \n" +".segakcap ycnedneped llatsni yllaunam tsum uoY \n" +":noituloS\n" +"\n" +".gnissim eb yam seicnedneped eht eht fo lla ro emoS \n" +".rorre elbissop a htiw dedne ssecorp llatsni pip ehT \n" +":melborP\n" +"\n" +"!dellatsni eb ton yam seicnedneped toBcisuM" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "!dekrow seicnedneped gnillatsni epoh stel ,KO" + +#: run.py:1141 +msgid "" +"MusicBot got an ImportError after trying to install packages. MusicBot must " +"exit..." +msgstr "" +"...tixe tsum toBcisuM .segakcap llatsni ot gniyrt retfa rorrEtropmI na tog " +"toBcisuM" + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr " :rorre evoba eht desuac hcihw noitpecxe ehT" + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "...tratser tfos a gniod si toBcisuM" + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "...tratser ssecorp lluf a gniod si toBcisuM" + +#: run.py:1169 +msgid "Error starting bot" +msgstr "tob gnitrats rorrE" + +#: run.py:1174 +msgid "Closing event loop." +msgstr ".pool tneve gnisolC" + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "...sdnoces %s ni gnitratseR" + +#: run.py:1183 +msgid "All done." +msgstr ".enod llA" + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "!gnisolc er'ew ,KO" diff --git a/i18n/xx/LC_MESSAGES/musicbot_messages.mo b/i18n/xx/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..75b4ea28008e0f9f08efdbdea583da5479040a6b GIT binary patch literal 102012 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 ZeodTACIWTyn8oQNnS7StAn8`V_+Le{v&aAd literal 0 HcmV?d00001 diff --git a/i18n/xx/LC_MESSAGES/musicbot_messages.po b/i18n/xx/LC_MESSAGES/musicbot_messages.po new file mode 100644 index 000000000..34ffe35cb --- /dev/null +++ b/i18n/xx/LC_MESSAGES/musicbot_messages.po @@ -0,0 +1,3933 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the Just-Some-Bots/MusicBot package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Just-Some-Bots/MusicBot release-250723-1002-g75b54054\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-08 07:52-0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: xx\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generated-By: pygettext.py 1.5-mb01\n" + +#: musicbot/aliases.py:56 +msgid "" +"Error while loading aliases.\n" +"\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n" +"\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "" +"/toBcisuM/stoB-emoS-tsuJ/moc.buhtig//:sptth \n" +":morf meht ypoc ro )s(elif gifnoc saila eht ecalpeR \n" +":noituloS\n" +"\n" +".gnissim era )nosj.sesaila_elpmaxe & nosj.sesaila( selif sesaila ruoY \n" +":melborP\n" +"\n" +".sesaila gnidaol elihw rorrE" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr ".dnammoc siht esu tonnac dna delbane-eciov ton si rebmeM" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr ".lennahc eciov eht ni ton nehw dnammoc siht esu tonnac uoY" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "`%(name)s` :lennahc ni tcennoC ot noissimrep evah ton seod toBcisuM" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "`%(name)s` :lennahc ni kaepS ot noissimrep evah ton seod toBcisuM" + +#: musicbot/bot.py:806 +msgid "" +"MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" +".seunitnoc siht fi tob eht tratser ro ,retal niaga yrT\n" +".lennahc eht ot tcennoc ton dluoc toBcisuM" + +#: musicbot/bot.py:830 +msgid "" +"MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" +"?tratser ebyaM .ddo si sihT .dellecnac saw eciov ot noitcennoc toBcisuM" + +#: musicbot/bot.py:840 +msgid "MusicBot does not have permission to speak." +msgstr ".kaeps ot noissimrep evah ton seod toBcisuM" + +#: musicbot/bot.py:844 +msgid "MusicBot could not request to speak." +msgstr ".kaeps ot tseuqer ton dluoc toBcisuM" + +#: musicbot/bot.py:1016 +msgid "" +"The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" +".lennahc eciov ruoy ot tob eht gnirb ot dnammoc nommus eht esU\n" +".lennahc eciov a ni ton si tob ehT" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr ".tneilCecioV eht teg t'ndid ew ,gnorw si gnihtemoS" + +#: musicbot/bot.py:1084 +#, python-format +msgid "" +"Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" +msgstr "" +"!eciov ni ton si `%(user)s` retseuqer sa `%(title)s` gnos txen gnippikS" + +#: musicbot/bot.py:1102 +#, python-format +msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" +msgstr "!%(channel)s ni gniyalp won si `%(title)s` gnos ruoy - %(mention)s" + +#: musicbot/bot.py:1111 +#, python-format +msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" +msgstr "!%(author)s yb dedda `%(title)s` :%(channel)s ni gniyalp woN" + +#: musicbot/bot.py:1122 +#, python-format +msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" +msgstr "!%(channel)s ni `%(title)s` yrtne dedda yllacitamotua gniyalp woN" + +#: musicbot/bot.py:1333 +#, python-format +msgid "Skipping songs added by %(user)s as they are not in voice!" +msgstr "!eciov ni ton era yeht sa %(user)s yb dedda sgnos gnippikS" + +#: musicbot/bot.py:1555 +#, python-format +msgid "" +"Playback failed for song `%(song)s` due to an error:\n" +"```\n" +"%(error)s```" +msgstr "" +"```%(error)s\n" +"```\n" +":rorre na ot eud `%(song)s` gnos rof deliaf kcabyalP" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr ".tcejbo esnopser dilavni na gnidnes deirT ]guB veD[" + +#: musicbot/bot.py:2147 +msgid "" +"Failed Discord API Login!\n" +"\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n" +"\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" +"moc.sutatsdrocsid :etis laiciffo eht ta sutats IPA kcehC \n" +".gifnoc ruoy ni tes nekoT tcerroc eht evah uoy erus ekaM \n" +":noituloS\n" +"\n" +".egatuo IPA na eb yam ereht ro tcerrocni eb yam nekoT ruoY \n" +".IPA drocsiD otni gol ton dluoc toBcisuM \n" +":melborP\n" +"\n" +"!nigoL IPA drocsiD deliaF" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr ".tsil kcolb gnos eht yb dekcolb si `%(subject)s` gnos detseuqer ehT" + +#: musicbot/bot.py:2831 +msgid "" +"Reset the auto playlist queue by copying it back into player memory.\n" +"This command will be removed in a future version, replaced by the autoplaylist command(s)." +msgstr "" +".)s(dnammoc tsilyalpotua eht yb decalper ,noisrev erutuf a ni devomer eb lliw dnammoc sihT\n" +".yromem reyalp otni kcab ti gniypoc yb eueuq tsilyalp otua eht teseR" + +#: musicbot/bot.py:2846 +msgid "\\N{OK HAND SIGN}" +msgstr "}NGIS DNAH KO{N\\" + +#: musicbot/bot.py:2853 +msgid "" +"Show usage and description of a command, or list all available commands.\n" +msgstr "" +"\n" +".sdnammoc elbaliava lla tsil ro ,dnammoc a fo noitpircsed dna egasu wohS" + +#: musicbot/bot.py:2888 +msgid "**Aliases for this command:**\n" +msgstr "" +"\n" +"**:dnammoc siht rof sesailA**" + +#: musicbot/bot.py:2891 +#, python-format +msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" +msgstr "" +"\n" +"`%(args)s %(command)s` fo saila `%(alias)s`" + +#: musicbot/bot.py:2924 +#, python-format +msgid "" +"**Alias of command:**\n" +" `%(command)s`\n" +msgstr "" +"\n" +"`%(command)s` \n" +"**:dnammoc fo sailA**" + +#. TRANSLATORS: template string for command-specific help output. +#: musicbot/bot.py:2931 +#, python-format +msgid "" +"%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" +msgstr "" +"%(alias_list)s\n" +"%(docs)s\n" +"%(is_alias)s" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "dnammoc hcus oN" + +#: musicbot/bot.py:2959 +#, python-format +msgid "" +"The list above shows only commands permitted for your use.\n" +"For a list of all commands, run: %(example_all)s\n" +msgstr "" +"\n" +"%(example_all)s :nur ,sdnammoc lla fo tsil a roF\n" +".esu ruoy rof dettimrep sdnammoc ylno swohs evoba tsil ehT" + +#: musicbot/bot.py:2965 +#, python-format +msgid "" +"**Commands by name:** *(without prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Command Prefix:** %(prefix)s\n" +"\n" +"For help with a particular command, run: %(example_command)s\n" +"%(all_note)s" +msgstr "" +"%(all_note)s\n" +"%(example_command)s :nur ,dnammoc ralucitrap a htiw pleh roF\n" +"\n" +"%(prefix)s **:xiferP dnammoC**\n" +"```\n" +"%(command_list)s\n" +"```\n" +"*)xiferp tuohtiw(* **:eman yb sdnammoC**" + +#: musicbot/bot.py:2984 +msgid " Block a mentioned user." +msgstr ".resu denoitnem a kcolB " + +#: musicbot/bot.py:2987 +msgid " Unblock a mentioned user." +msgstr ".resu denoitnem a kcolbnU " + +#: musicbot/bot.py:2990 +msgid " Show the block status of a mentioned user." +msgstr ".resu denoitnem a fo sutats kcolb eht wohS " + +#: musicbot/bot.py:2994 +msgid "" +"Manage the users in the user block list.\n" +"Blocked users are forbidden from using all bot commands.\n" +msgstr "" +"\n" +".sdnammoc tob lla gnisu morf neddibrof era sresu dekcolB\n" +".tsil kcolb resu eht ni sresu eht eganaM" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr ".rebmun DI rieht edivorp ro resu a noitnem tsum uoY" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr ".selpmaxe egasu rof `resukcolb pleh` esU .nevig dnammoc-bus dilavnI" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr ".deificeps uoy )s(resu eht dnif ton dluoc toBcisuM" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr ".tsil kcolb eht ot dedda eb tonnac renwo ehT" + +#: musicbot/bot.py:3059 +msgid "User block list is currently enabled." +msgstr ".delbane yltnerruc si tsil kcolb resU" + +#: musicbot/bot.py:3061 +msgid "User block list is currently disabled." +msgstr ".delbasid yltnerruc si tsil kcolb resU" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr ".dedda ydaerla era yeht ,detsil uoy sresu eht dda tonnaC" + +#: musicbot/bot.py:3078 +#, python-format +msgid "" +"%(number)s user(s) have been added to the block list.\n" +"%(status)s" +msgstr "" +"%(status)s\n" +".tsil kcolb eht ot dedda neeb evah )s(resu %(number)s" + +#: musicbot/bot.py:3089 +msgid "None of those users are in the blacklist." +msgstr ".tsilkcalb eht ni era sresu esoht fo enoN" + +#: musicbot/bot.py:3094 +#, python-format +msgid "User: `%(user)s` is not blocked.\n" +msgstr "" +"\n" +".dekcolb ton si `%(user)s` :resU" + +#: musicbot/bot.py:3096 +#, python-format +msgid "User: `%(user)s` is blocked.\n" +msgstr "" +"\n" +".dekcolb si `%(user)s` :resU" + +#: musicbot/bot.py:3099 +#, python-format +msgid "" +"**Block list status:**\n" +"%(status)s\n" +"%(users)s" +msgstr "" +"%(users)s\n" +"%(status)s\n" +"**:sutats tsil kcolB**" + +#: musicbot/bot.py:3109 +#, python-format +msgid "" +"%(number)s user(s) have been removed from the block list.\n" +"%(status)s" +msgstr "" +"%(status)s\n" +".tsil kcolb eht morf devomer neeb evah )s(resu %(number)s" + +#: musicbot/bot.py:3118 +msgid "" +"Manage a block list applied to song requests and extracted song data.\n" +"A subject may be a song URL or a word or phrase found in the track title.\n" +"If subject is omitted, any currently playing track URL will be added instead.\n" +"\n" +"The song block list matches loosely, but is case-sensitive.\n" +"This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" +msgstr "" +"\n" +".skcehc ni 'tsurceip' ton tub 'eiP yrrehc' hctam lliw 'eiP' gnidda snaem sihT\n" +".evitisnes-esac si tub ,ylesool sehctam tsil kcolb gnos ehT\n" +"\n" +".daetsni dedda eb lliw LRU kcart gniyalp yltnerruc yna ,dettimo si tcejbus fI\n" +".eltit kcart eht ni dnuof esarhp ro drow a ro LRU gnos a eb yam tcejbus A\n" +".atad gnos detcartxe dna stseuqer gnos ot deilppa tsil kcolb a eganaM" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr ".gniyalp yltnerruc si gnos on fi tcejbus gnos a edivorp tsum uoY" + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr ".selpmaxe egasu rof `gnoskcolb pleh` esU .nevig dnammoc-bus dilavnI" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr ".tsil kcolb gnos eht ni ydaerla si `%(subject)s` tcejbuS" + +#: musicbot/bot.py:3187 +#, python-format +msgid "" +"Added subject `%(subject)s` to the song block list.\n" +"%(status)s" +msgstr "" +"%(status)s\n" +".tsil kcolb gnos eht ot `%(subject)s` tcejbus deddA" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr ".devomer eb tonnac dna tsil kcolb gnos eht ni ton si tcejbus ehT" + +#: musicbot/bot.py:3204 +#, python-format +msgid "" +"Subject `%(subject)s` has been removed from the block list.\n" +"%(status)s" +msgstr "" +"%(status)s\n" +".tsil kcolb eht morf devomer neeb sah `%(subject)s` tcejbuS" + +#: musicbot/bot.py:3214 +msgid "" +" Adds or removes the specified song or currently playing song to/from the" +" current playlist.\n" +msgstr "" +"\n" +".tsilyalp tnerruc eht morf/ot gnos gniyalp yltnerruc ro gnos deificeps eht sevomer ro sddA " + +#: musicbot/bot.py:3217 +msgid " Adds the entire queue to the guilds playlist.\n" +msgstr "" +"\n" +".tsilyalp sdliug eht ot eueuq eritne eht sddA " + +#: musicbot/bot.py:3220 +msgid " Show a list of existing playlist files.\n" +msgstr "" +"\n" +".selif tsilyalp gnitsixe fo tsil a wohS " + +#: musicbot/bot.py:3223 +msgid "" +" Reset the auto playlist queue, restarting at the first track unless " +"randomized.\n" +msgstr "" +"\n" +".dezimodnar sselnu kcart tsrif eht ta gnitratser ,eueuq tsilyalp otua eht teseR " + +#: musicbot/bot.py:3226 +msgid "" +" Set a playlist as default for this guild and reloads the guild auto " +"playlist.\n" +msgstr "" +"\n" +".tsilyalp otua dliug eht sdaoler dna dliug siht rof tluafed sa tsilyalp a teS " + +#: musicbot/bot.py:3229 +msgid "Manage auto playlist files and per-guild settings." +msgstr ".sgnittes dliug-rep dna selif tsilyalp otua eganaM" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" +".selpmaxe egasu rof `tsilyalpotua pleh` esU .nevig dnammoc-bus dilavnI" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "dilavni si knil gnos deilppus ehT" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "!dnammoc yalp a htiw sgnos emos ddA .ytpme si eueuq ehT" + +#: musicbot/bot.py:3273 +msgid "All songs in the queue are already in the autoplaylist." +msgstr ".tsilyalpotua eht ni ydaerla era eueuq eht ni sgnos llA" + +#: musicbot/bot.py:3277 +#, python-format +msgid "Added %(number)d songs to the autoplaylist." +msgstr ".tsilyalpotua eht ot sgnos %(number)d deddA" + +#: musicbot/bot.py:3287 +#, python-format +msgid "Added `%(url)s` to the autoplaylist." +msgstr ".tsilyalpotua eht ot `%(url)s` deddA" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr ".tsilyalpotua eht ni ydaerla si gnos sihT" + +#: musicbot/bot.py:3304 +#, python-format +msgid "Removed `%(url)s` from the autoplaylist." +msgstr ".tsilyalpotua eht morf `%(url)s` devomeR" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr ".tsilyalpotua eht ni tey ton si gnos sihT" + +#: musicbot/bot.py:3316 +#, python-format +msgid "Loaded a fresh copy of the playlist: `%(file)s`" +msgstr "`%(file)s` :tsilyalp eht fo ypoc hserf a dedaoL" + +#: musicbot/bot.py:3327 +#, python-format +msgid "" +"**Available Playlists:**\n" +"%(names)s" +msgstr "" +"%(names)s\n" +"**:stsilyalP elbaliavA**" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr ".emanelif tsilyalp a edivorp tsum uoY" + +#: musicbot/bot.py:3357 +msgid "" +"\n" +"This playlist is new, you must add songs to save it to disk!" +msgstr "!ksid ot ti evas ot sgnos dda tsum uoy ,wen si tsilyalp sihT\n" + +#: musicbot/bot.py:3362 +#, python-format +msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" +msgstr "%(note)s`%(name)s` :ot detadpu neeb sah revres siht rof tsilyalp ehT" + +#: musicbot/bot.py:3373 +msgid "" +"Generate an invite link that can be used to add this bot to another server." +msgstr "" +".revres rehtona ot tob siht dda ot desu eb nac taht knil etivni na etareneG" + +#: musicbot/bot.py:3385 +#, python-format +msgid "" +"Click here to add me to a discord server:\n" +"%(url)s" +msgstr "" +"%(url)s\n" +":revres drocsid a ot em dda ot ereh kcilC" + +#: musicbot/bot.py:3391 +msgid "" +"Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" +"Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" +msgstr "" +"\n" +".srebmem ekoaraK era srebmem hcihw lortnoc noissimrep edoMekoaraKssapyB htiw spuorG\n" +".sgnos eueuq yam srebmem ekoarak ylno ,delbane elihW .ffo ro no edom ekoarak elggoT" + +#: musicbot/bot.py:3403 +msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." +msgstr ".delbane won si edom ekoaraK }NGIS DNAH KO{N\\" + +#: musicbot/bot.py:3405 +msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." +msgstr ".delbasid won si edom ekoaraK }NGIS DNAH KO{N\\" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "stsilyalp tseuqer ot dewolla ton era uoY" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr ")%(max)s si xam tub %(songs)s( seirtne ynam oot sah tsilyalP" + +#: musicbot/bot.py:3447 +#, python-format +msgid "" +"The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" +".puorg ruoy rof %(max)s si timil ehT\n" +".eueuq ni ydaerla %(queued)s dna ,tsil eht ni %(songs)s era erehT\n" +".timil eueuq ruoy deecxe lliw seirtne tsilyalp ehT" + +#: musicbot/bot.py:3580 +msgid "Bot was previously paused, resuming playback now." +msgstr ".won kcabyalp gnimuser ,desuap ylsuoiverp saw toB" + +#: musicbot/bot.py:3589 +msgid "" +"Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n" +"\n" +"You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" +"Playlist links will be extracted into multiple links and added to the queue.\n" +"If you enter a non-URL, the input will be used as search criteria on YouTube and the first result played.\n" +"MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" +msgstr "" +"\n" +".sseldrager ebuTuoY morf dehctef si oidua tub ,sLRU dna sIRU yfitopS stroppus osla toBcisuM\n" +".deyalp tluser tsrif eht dna ebuTuoY no airetirc hcraes sa desu eb lliw tupni eht ,LRU-non a retne uoy fI\n" +".eueuq eht ot dedda dna sknil elpitlum otni detcartxe eb lliw sknil tsilyalP\n" +".pld-ty yb detroppus ecivres a fo LRU eht ro elif oidua ro oediv a ot LRU a ylppus yam uoY\n" +"\n" +".detrats eb lliw kcabyalp ,desuap ro gniyalp si gnos on fI .eueuq eht ni deyalp eb ot gnos a ddA" + +#: musicbot/bot.py:3628 +msgid "" +"Play command that shuffles playlist entries before adding them to the " +"queue.\n" +msgstr "" +"\n" +".eueuq eht ot meht gnidda erofeb seirtne tsilyalp selffuhs taht dnammoc yalP" + +#: musicbot/bot.py:3665 +#, python-format +msgid "Shuffled playlist items into the queue from `%(request)s`" +msgstr "`%(request)s` morf eueuq eht otni smeti tsilyalp delffuhS" + +#: musicbot/bot.py:3672 +msgid "" +"A play command that adds the song as the next to play rather than last.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" +"\n" +".stupni detroppus no noitamrofni rof dnammoc yalp eht rof pleh daeR\n" +".tsal naht rehtar yalp ot txen eht sa gnos eht sdda taht dnammoc yalp A" + +#: musicbot/bot.py:3707 +msgid "" +"A play command which skips any current song and plays immediately.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" +"\n" +".stupni detroppus no noitamrofni rof dnammoc yalp eht rof pleh daeR\n" +".yletaidemmi syalp dna gnos tnerruc yna spiks hcihw dnammoc yalp A" + +#: musicbot/bot.py:3744 +msgid "" +"Restarts the current song at the given time.\n" +"If time starts with + or - seek will be relative to current playback time.\n" +"Time should be given in seconds, fractional seconds are accepted.\n" +"Due to codec specifics in ffmpeg, this may not be accurate.\n" +msgstr "" +"\n" +".etarucca eb ton yam siht ,gepmff ni scificeps cedoc ot euD\n" +".detpecca era sdnoces lanoitcarf ,sdnoces ni nevig eb dluohs emiT\n" +".emit kcabyalp tnerruc ot evitaler eb lliw kees - ro + htiw strats emit fI\n" +".emit nevig eht ta gnos tnerruc eht stratseR" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr ".gniyalp gnihton si ereht fi kees esu tonnaC" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr ".noitarud nwonknu na sah ti ,kcart tnerruc no kees esu tonnaC" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr ".smaerts rof detroppus ton si gnikeeS" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr ".kcabyalp noitisop ot emit a tuohtiw kees esu tonnaC" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr ".sdnoces ni emit dilav a ot `%(input)s` trevnoc ton dluoC" + +#: musicbot/bot.py:3816 +#, python-format +msgid "" +"Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with" +" a length of `%(progress)s / %(total)s`" +msgstr "" +"`%(total)s / %(progress)s` fo htgnel a htiw kcart tnerruc eht ni )sdnoces " +"`%(seconds)s`( `%(input)s` ot kees tonnaC" + +#: musicbot/bot.py:3840 +#, python-format +msgid "" +"Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." +msgstr "" +".gnos tnerruc eht ni )sdnoces `%(seconds).2f`( `%(input)s` emit ot gnikeeS" + +#: musicbot/bot.py:3852 +msgid "" +"Toggles playlist or song looping.\n" +"If no option is provided the current song will be repeated.\n" +"If no option is provided and the song is already repeating, repeating will be turned off.\n" +msgstr "" +"\n" +".ffo denrut eb lliw gnitaeper ,gnitaeper ydaerla si gnos eht dna dedivorp si noitpo on fI\n" +".detaeper eb lliw gnos tnerruc eht dedivorp si noitpo on fI\n" +".gnipool gnos ro tsilyalp selggoT" + +#: musicbot/bot.py:3870 +msgid "No songs are currently playing. Play something with a play command." +msgstr ".dnammoc yalp a htiw gnihtemos yalP .gniyalp yltnerruc era sgnos oN" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" +".selpmaxe egasu rof `taeper pleh` dnammoc eht esU .dnammoc-bus dilavnI" + +#: musicbot/bot.py:3883 musicbot/bot.py:3920 +msgid "Playlist is now repeating." +msgstr ".gnitaeper won si tsilyalP" + +#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +msgid "Playlist is no longer repeating." +msgstr ".gnitaeper regnol on si tsilyalP" + +#: musicbot/bot.py:3892 musicbot/bot.py:3901 +msgid "Player will now loop the current song." +msgstr ".gnos tnerruc eht pool won lliw reyalP" + +#: musicbot/bot.py:3894 musicbot/bot.py:3908 +msgid "Player will no longer loop the current song." +msgstr ".gnos tnerruc eht pool regnol on lliw reyalP" + +#: musicbot/bot.py:3898 +msgid "Player is already looping a song!" +msgstr "!gnos a gnipool ydaerla si reyalP" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr ".gnipool yltnerruc ton si reyalp ehT" + +#: musicbot/bot.py:3926 +msgid "Song is no longer repeating." +msgstr ".gnitaeper regnol on si gnoS" + +#: musicbot/bot.py:3930 +msgid "Song is now repeating." +msgstr ".gnitaeper won si gnoS" + +#: musicbot/bot.py:3938 +msgid " Move song at position FROM to position TO.\n" +msgstr "" +"\n" +".OT noitisop ot MORF noitisop ta gnos evoM " + +#: musicbot/bot.py:3942 +msgid "" +"Swap existing songs in the queue using their position numbers.\n" +"Use the queue command to find track position numbers.\n" +msgstr "" +"\n" +".srebmun noitisop kcart dnif ot dnammoc eueuq eht esU\n" +".srebmun noitisop rieht gnisu eueuq eht ni sgnos gnitsixe pawS" + +#: musicbot/bot.py:3961 +msgid "There are no songs queued. Play something with a play command." +msgstr ".dnammoc yalp a htiw gnihtemos yalP .deueuq sgnos on era erehT" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "!sregetni eb tsum snoitisop gnoS" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "!ezis tsilyalp eht edistuo noitisop a evag uoY" + +#: musicbot/bot.py:3984 +#, python-format +msgid "" +"Successfully moved song from position %(from)s in queue to position %(to)s!" +msgstr "" +"!%(to)s noitisop ot eueuq ni %(from)s noitisop morf gnos devom yllufsseccuS" + +#: musicbot/bot.py:4072 +#, python-format +msgid "" +"This link contains a Playlist ID:\n" +"`%(url)s`\n" +"\n" +"Do you want to queue the playlist too?" +msgstr "" +"?oot tsilyalp eht eueuq ot tnaw uoy oD\n" +"\n" +"`%(url)s`\n" +":DI tsilyalP a sniatnoc knil sihT" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr ".delbane ton si kcabyalp aidem lacoL" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr ".detroppus yltnerruc ton ro dilavni si LRU yfitopS" + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr ".delbane ton si yfitopS tub ,LRU yfitopS a detceteD" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr ")%(max)s( timil gnos deueuqne ruoy dehcaer evah uoY" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "!delbasid sti nehw niaga yrt esaelp ,delbane si edom ekoaraK" + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "" +"Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +":rorre ot eud ofni tcartxe ot deliaF" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr ".dnammoc maerts eht gnisu yrT .deyalp eb tonnac oediv tahT" + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "%(url)s :rof stluser on denruter hcraes ebuTuoY" + +#: musicbot/bot.py:4249 +#, python-format +msgid "" +"No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" +")sdnoces %(max)s( noitarud xam revo erew sgnos lla ,dedda erew sgnos oN" + +#: musicbot/bot.py:4254 +#, python-format +msgid "" +"Enqueued **%(number)s** songs to be played.\n" +"Position in queue: %(position)s" +msgstr "" +"%(position)s :eueuq ni noitisoP\n" +".deyalp eb ot sgnos **%(number)s** deueuqnE" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr ")%(max)s > %(length)s( timil sdeecxe noitarud gnoS" + +#: musicbot/bot.py:4289 +#, python-format +msgid "" +"Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "" +"%(position)s :eueuq ni noitisoP\n" +".deyalp eb ot `%(track)s` deueuqnE" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "!txen gniyalP" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "`%(eta)s` :gniyalp litnu emit detamitse - %(position)s" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr ".gniyalp litnu emit etamitse tonnac - %(position)s" + +#: musicbot/bot.py:4346 +msgid "" +"Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "" +"\n" +".neppah spuccih noitcennoc fi ro ylmodnar maerts eht pord yam gepmFF :etoN\n" +".ti gnidaolnwod tuohtiw ti yalp ot aidem demaerts-non esu osla nac uoY\n" +".ecivres ekil tsactuohs a ro ,ebutuoY ,hctiwT ekil ,aidem gnimaerts lautca eb yam LRU ehT\n" +".maertS a sa eueuq eht ot LRU aidem a ddA" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr ".detroppus tey ton si stsilyalp gnimaertS" + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "`%(track)s` kcart gnimaerts woN" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr "" +"\n" +".yreuq hcraes eht htiw stluser fo rebmun a rof ecivres htiw hcraeS " + +#: musicbot/bot.py:4432 +msgid "" +" Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr "" +"\n" +".esac siht ni deriuqer era setouq-elbuod eht :etoN \n" +".stluser fo rebmun motsuc a teg tub yreuq rof ebuTuoY hcraeS " + +#: musicbot/bot.py:4438 +msgid "" +"Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "" +"\n" +"oohay ,hy -\n" +"duolcdnuos ,cs -\n" +")tluafed( ebutuoy ,ty -\n" +":secivres eseht morf tceleS\n" +".stluser 3 si rebmun tluafed ,dettimo eb nac stnemugra rebmun dna ecivreS\n" +".eueuq ot dda ot stluser morf tceles dna ecivres detroppus a hcraeS" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr ")%(max)s( timil meti tsilyalp ruoy dehcaer evah uoY" + +#: musicbot/bot.py:4480 +msgid "" +"Please specify a search query. Use `help search` for more information." +msgstr "" +".noitamrofni erom rof `hcraes pleh` esU .yreuq hcraes a yficeps esaelP" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "soediv %(max)s naht erom rof hcraes tonnac uoY" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "...soediv rof gnihcraeS" + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "%(error)s :rorre na ot eud deliaf hcraeS" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr ".dnuof soediv oN" + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr ".rebmun gnidnopserroc eht epyt ,gnos a tceles oT" + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr ":%(service)s morf stluser hcraeS" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "%(length)s | **%(track)s** .**%(index)s**" + +#: musicbot/bot.py:4594 +msgid "" +"\n" +"**0**. Cancel" +msgstr "lecnaC .**0**\n" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "gnos a kciP" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr ".eueuq eht ot )%(url)s(]%(track)s[ gnos deddA" + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "%(url)s :%(total)s fo %(number)s tluseR" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "!pu thgir gnimoc ,thgirlA" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr ".gniyalp yltnerruc si tahw no noitamrofni wohS" + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "]tsilyalpotua[" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "gniyalp woN" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr ":gnimaerts yltnerruC" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr ":gniyalp yltnerruC" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr ":yB deddA" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "`%(user)s`" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr ":ssergorP" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr ".dnammoc yalp a htiw gnihtemos eueuQ !deueuq sgnos on era erehT" + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr ".ni er'uoy lennahc eht nioj ot toBcisuM lleT" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "!lennahc eciov a gninioj yrT .eciov ot detcennoc ton era uoY" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "`%(channel)s` ot detcennoC" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "" +"\n" +".revres a ni slennahc egnahc yeht nehw resu a wollof toBcisuM sekaM" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "`%(user)s` resu gniwollof regnol oN" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr ".slennahc eciov neewteb `%(user)s` resu gniwollof woN" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr ".revres eht fo rebmem a ton si taht resu a wollof tonnac toBcisuM" + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr ".slennahc eciov neewteb `%(user)s` resu wollof lliW" + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr ".gniyalp yltnerruc si kcart a fi kcabyalp esuaP" + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "`%(channel)s` ni cisum desuaP" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr ".gniyalp ton si reyalP" + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr ".desuap ylsuoiverp saw reyalp eht fi kcabyalp semuseR" + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "`%(channel)s` ni cisum demuseR" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "eueuq cisum demuseR" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr ".desuap ton si reyalP" + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr ".eueuq eht ni skcart tnerruc lla elffuhS" + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr ".eueuq eht ni sgnos lla delffuhS" + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr ".eueuq eht ni yltnerruc sgnos lla sevomeR" + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr ".eueuq eht morf sgnos lla deraelC" + +#: musicbot/bot.py:5033 +msgid "" +"Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "" +"\n" +".gniyalp strats gnos wen a nehw degnahc era sgnos lla fo snoitisop ,revewoH\n" +".kcart ruoy fo rebmun noitisop dnif ot dnammoc eueuq eht esU\n" +".devomer si eueuq eht fo dne eht ta gnos eht ,dettimo si noitisop eht fI\n" +".noitisop eueuq nevig eht ta yllanoitpo ,eueuq eht morf gnos a evomeR" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "!evomer ot eueuq eht ni gnihtoN" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "`%(user)s` yb dedda `%(track)s` devomeR" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "`%(user)s` resu morf eueuq eht ni dnuof gnihtoN" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "" +"You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" +".snoissimrep piks tnatsni evah ro ti deueuq ohw eno eht eb tsum uoY\n" +".eueuq eht morf yrtne taht evomer ot noissimrep eht evah ton od uoY" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr ".snoitisop eueuq dnif ot dnammoc eueuq eht esU .rebmun yrtne dilavnI" + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "`%(user)s` yb dedda `%(track)s` yrtne devomeR" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "`%(track)s` yrtne devomeR" + +#: musicbot/bot.py:5121 +msgid "" +"Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "" +"\n" +".derongi eb nac retemarap ecrof eht ,delbane si noitpo pikSycageL fI\n" +".gnitov ssapyb ot retemarap ecrof esu yam noissimrep pikSatsnI htiw srebmeM\n" +".gnos gniyalp tnerruc eht piks ot etov ro pikS" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "!gniyalp ton si reyalp ehT !piks t'naC" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr ".tiaw esaelp ,gnidaolnwod si `%(track)s` gnos txen ehT" + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr ".tiaw esaelP .yltrohs deyalp eb lliw gnos txen ehT" + +#: musicbot/bot.py:5166 +msgid "" +"Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" +".gnikrow trats t'nseod ti fi tob eht tratser ot tnaw thgim uoY\n" +".gnineppah si ddo gnihtemoS" + +#: musicbot/bot.py:5173 +msgid "" +"Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" +".gnikrow trats t'nseod ti fi tob eht tratser ot tnaw thgim uoY\n" +".gnineppah si egnarts gnihtemoS" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr ".gnos depool a piks ecrof ot noissimrep evah ton od uoY" + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr ".`%(track)s` deppiks ecroF" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr ".piks ecrof ot noissimrep evah ton od uoY" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr ".gnos depool a piks ot noissimrep evah ton od uoY" + +#: musicbot/bot.py:5269 +#, python-format +msgid "" +"Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "" +"%(next_up)s.dessap neeb sah piks ot etov ehT\n" +".degdelwonkca saw `%(track)s` rof piks ruoY" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr "!pu gnimoc gnos txeN " + +#: musicbot/bot.py:5293 +#, python-format +msgid "" +"Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "" +".gnos siht piks ot )s(etov erom **%(votes)s** deeN\n" +".degdelwonkca saw `%(track)s` rof piks ruoY" + +#: musicbot/bot.py:5306 +msgid "" +"Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "" +"\n" +".detratser si toBcisuM litnu deniater si gnittes emulov ehT\n" +".stnemtsujda evitaler rof - ro + gnidael a swolla retemarap emuloV\n" +".001 ot 1 morf toBcisuM fo level emulov tuptuo eht teS" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "`%%%(volume)s` :emulov tnerruC" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "rebmun dilav a ton si `%(new_volume)s`" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "**%(new)d** ot **%(old)d** morf emulov detadpU" + +#: musicbot/bot.py:5357 +#, python-format +msgid "" +"Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" +".001 ot 1 morf tes eb ylno nac emuloV\n" +".%(new_volume)s si %(adjustment)s%(old_volume)s :dedivorp egnahc emulov elbanosaernU" + +#: musicbot/bot.py:5367 +#, python-format +msgid "" +"Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" +".001 dna 1 neewteb eulav a edivorP .%(volume)s :dedivorp emulov elbanosaernU" + +#: musicbot/bot.py:5374 +msgid "" +"Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "" +"\n" +".stnemtsujda deeps troppus ton seod kcabyalp gnimaertS\n" +".stimil gepmff ot eud 0.001 dna 5.0 neewteb eb tsum etar ehT\n" +".ylno kcart gniyalp yltnerruc eht fo deeps kcabyalp eht egnahC" + +#: musicbot/bot.py:5391 +msgid "" +"No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" +".deeps kcabyalp tluafed a tes ot dnammoc gifnoc eht esU\n" +".deeps tes tonnac ,gniyalp si kcart oN" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr ".aidem demaerts ot deilppa eb tonnac deepS" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr ".tes ot deeps a edivorp tsum uoY" + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr ".001 dna 5.0 neewteb rebmun a esU .dilavni si dedivorp uoy deeps ehT" + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr ".kcart tnerruc rof `%(speed).3f` ot deeps kcabyalp gnitteS" + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr "" +"\n" +".stnemugra lanoitpo htiw saila wen na ddA " + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr ".eman nevig eht htiw saila na evomeR " + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr ".elif gifnoc eht ot/morf sesaila evas ro daoleR " + +#: musicbot/bot.py:5451 +msgid "" +"Allows management of aliases from discord. To see aliases use the help " +"command." +msgstr "" +".dnammoc pleh eht esu sesaila ees oT .drocsid morf sesaila fo tnemeganam " +"swollA" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "`%(option)s` :dnammoc rof noitpo dilavnI" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr ".elif gifnoc morf dedaoler sesailA" + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr ".elif gifnoc ot devas sesailA" + +#: musicbot/bot.py:5485 +#, python-format +msgid "" +"Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" +"`%(raw_error)s`\n" +":rorre ot eud sesaila evas ot deliaF" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "saila ot dnammoc a dna saila na ylppus tsum uoY" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "`%(command)s` fo saila na won si `%(alias)s` .dedda saila weN" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr ".evomer ot eman saila na ylppus tsum uoY" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr ".tsixe ton seod `%(alias)s` saila ehT" + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr ".devomer saw `%(alias)s` sailA" + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr "" +"\n" +".snoitpo gifnoc gnissim yna tuoba txet pleh swohS " + +#: musicbot/bot.py:5531 +msgid "" +" Lists the names of options which have been changed since loading config " +"file.\n" +msgstr "" +"\n" +".elif gifnoc gnidaol ecnis degnahc neeb evah hcihw snoitpo fo seman eht stsiL " + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr "" +"\n" +".snoitces rieht dna snoitpo gifnoc elbaliava eht tsiL " + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr "" +"\n" +".ksid morf elif ini.snoitpo eht daoleR " + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr "" +"\n" +".noitpo cificeps a rof txet pleh swohS " + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr "" +"\n" +".noitpo eht fo eulav tnerruc eht yalpsiD " + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr "" +"\n" +".elif snoitpo eht ot eulav tnerruc eht sevaS " + +#: musicbot/bot.py:5549 +msgid "" +" Validates the option and sets the config for the session, but not to " +"file.\n" +msgstr "" +"\n" +".elif ot ton tub ,noisses eht rof gifnoc eht stes dna noitpo eht setadilaV " + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr "" +"\n" +".eulav tluafed sti ot noitpo eht teseR " + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr ".drocsiD nihtiw morf noitarugifnoc ini.snoitpo eganaM" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr ".emit emas eht ta snoitnem resu dna lennahc esu tonnac gifnoC" + +#: musicbot/bot.py:5596 +#, python-format +msgid "" +"**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "" +"\n" +"```%(default)s :ot tes si tluafeD\n" +"%(comment)s\n" +"```\n" +"`%(config)s` **:noitpO gnissiM**" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "*!rof detnuocca dna tneserp era snoitpo gifnoc llA*" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr ".degnahc eb ot raeppa snoitpo gifnoc oN" + +#: musicbot/bot.py:5627 +#, python-format +msgid "" +"**Changed Options:**\n" +"%(changed)s" +msgstr "" +"%(changed)s\n" +"**:snoitpO degnahC**" + +#: musicbot/bot.py:5647 +#, python-format +msgid "" +"## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "" +"%(manual)s\n" +"**:ylnO tidE launaM**\n" +"%(editable)s\n" +"**:snoitpO elbatidE**\n" +":snoitpO elbaliavA ##" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "!yllufsseccus elif morf dedaoler snoitpo gifnoC" + +#: musicbot/bot.py:5673 +#, python-format +msgid "" +"Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +":rorre gniwollof eht ot eud gifnoC daoler ot elbanU" + +#: musicbot/bot.py:5691 +msgid "" +"Could not resolve section name from option name. Please provide a valid " +"section and option name." +msgstr "" +".eman noitpo dna noitces dilav a edivorp esaelP .eman noitpo morf eman " +"noitces evloser ton dluoC" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr ".eman noitces a edivorp esaelp ,suougibma si nevig noitpo ehT" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr ".dnammoc siht rof eman noitpo dna eman noitces a edivorp tsum uoY" + +#: musicbot/bot.py:5717 +#, python-format +msgid "" +"The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" +"%(sections)s :era snoitces elbaliava ehT\n" +".elbaliava ton si `%(section)s` noitces ehT" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr ".elbaliava ton si `%(option)s` noitpo ehT" + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr ".elif gifnoc eht gnitide yb tes eb ylno nac noitpo sihT" + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "%(default)s :ot tes si noitpo siht tluafed yB" + +#: musicbot/bot.py:5742 +#, python-format +msgid "" +"**Option:** `%(config)s`\n" +"%(comment)s\n" +"\n" +"%(default)s" +msgstr "" +"%(default)s\n" +"\n" +"%(comment)s\n" +"`%(config)s` **:noitpO**" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr ".ksid ot evas tonnaC .elbatide ton si `%(option)s` noitpO" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "`%(option)s` :noitpo eht evas ot deliaF" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "`%(config)s` :noitpo eht devas yllufsseccuS" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr ".deyalpsid eb tonnac eulav ,elbatide ton si `%(option)s` noitpO" + +#: musicbot/bot.py:5784 +#, python-format +msgid "" +"**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" +"`%(ini)s` :eulaV eliF INI\n" +"`%(loaded)s` :eulaV tnerruC\n" +"`%(config)s` **:noitpO**" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr ".gnittes etadpu tonnaC .elbatide ton si `%(option)s` noitpO" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr ".dnammoc bus siht rof eulav dna ,noitpo ,noitces a edivorp tsum uoY" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "!detadpu ton saw `%(option)s` noitpO" + +#: musicbot/bot.py:5822 +#, python-format +msgid "" +"Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" +"`%(option)s %(section)s evas gifnoc` esu egnahc eht evas oT\n" +".noisses siht rof detadpu saw `%(config)s` noitpO" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr ".tluafed ot teser tonnaC .elbatide ton si `%(option)s` noitpO" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "!tluafed ot teser ton saw `%(option)s` noitpO" + +#: musicbot/bot.py:5857 +#, python-format +msgid "" +"Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" +"`%(option)s %(section)s evas gifnoc` esu egnahc eht evas oT\n" +".`%(default)s` eulav tluafed sti ot teser saw `%(config)s` noitpO" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr ".daetsni dnammoc gifnoc eht esu ,dnammoc detacerpeD" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr ".daetsni dnammoc gifnoc eht esu ,detacerped si dnammoc noitpo ehT" + +#: musicbot/bot.py:5892 +msgid "" +"Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "" +".sliated gniyalpsid erofeb segnahc lanretxe rof ehcac eht nacs lliw noitpo etadpu gnisU\n" +".stimil derugifnoc ot gnidrocca ehcac raelc ro egarots ehcac tuoba noitamrofni yalpsiD" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "raelc ro ,etadpu ,ofni :esu ,deificeps noitpo dilavnI" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "delbasiD" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "delbanE" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "syad %(time)s" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "detimilnU" + +#: musicbot/bot.py:5933 +#, python-format +msgid "" +"**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n" +"\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "" +".)s(elif %(files)s ni %(used)s :woN dehcaC**\n" +"\n" +"*%(time)s* **:timiL emiT**\n" +"*%(size)s* **:timiL egarotS**\n" +"*%(state)s* **:ehcaC oediV**" + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr ".deraelc neeb sah ehcaC" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "...ofni erom rof sgol kcehc ,ehcac eteled ot **deliaF**" + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr ".raelc ot dnuof ehcac oN" + +#: musicbot/bot.py:5973 +msgid "" +"Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "" +"\n" +".eueuq eht ni seirtne retal swohs rebmun egap lanoitpO\n" +".eueuq reyalp tnerruc eht tuoba noitamrofni yalpsiD" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr ".rebmun elohw a eb tsum tnemugra egap eueuQ" + +#: musicbot/bot.py:6013 +#, python-format +msgid "" +"Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" +".segap **%(total)s** era erehT\n" +".sdnuob fo tuo si rebmun egap detseuqeR" + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr ")noitarud nwonknu(" + +#: musicbot/bot.py:6034 +#, python-format +msgid "" +"Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "" +"\n" +"`]%(total)s/%(progress)s[` :ssergorP\n" +"`%(user)s` :yb deddA\n" +"`%(title)s` :gniyalp yltnerruC" + +#: musicbot/bot.py:6064 +#, python-format +msgid "" +"**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n" +"\n" +msgstr "" +"\n" +"\n" +"%(user)s` :yb deddA\n" +"`%(title)s` :eltiT**:%(index)s# yrtnE**" + +#: musicbot/bot.py:6072 +#, python-format +msgid "" +"%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n" +"\n" +"%(tracks)s" +msgstr "" +"%(tracks)s\n" +"\n" +"%(start)s# gnos ta gnitrats ,sgnos %(per_page)s txen eht era ereH\n" +".eueuq eht ni seirtne `%(total)s` era erehT%(progress)s" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "eueuq ni sgnoS" + +#: musicbot/bot.py:6105 +msgid "" +"Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" +".troper gub a elif ,stsisrep eussi eht fI\n" +".egassem eueuq eht ot ecnerefer a teg ro ekam t'ndluoc toBcisuM .niaga taht yrT" + +#: musicbot/bot.py:6156 +msgid "" +"Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "" +"\n" +".nevig era segnar regral fi wols eb yam dnammoc sihT\n" +".xam 005 tluafed yb 05 ,hguorht hcraes ot segassem fo rebmun a ylppus yllanoitpO\n" +".lennahc txet gnillac eht morf sdnammoc dna segassem tob evomer dna rof hcraeS" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr ".hcraes ot segassem fo rebmun a edivorp esaelP .retemarap dilavnI" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr ".lennahc MD etavirp no egrup esu tonnaC" + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr ".)s(egassem %(number)s pu denaelC" + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr ".segassem eganam ot noissimrep evah ton seod toB" + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr ".elif a ot tsilyalp a fo sLRU laudividni eht pmuD" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr ".LRU dilav a ton saw LRU nevig ehT" + +#: musicbot/bot.py:6257 +#, python-format +msgid "" +"Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" +"\n" +"%(raw_error)s\n" +"lru tupni morf ofni tcartxe ton dluoC" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr ".tsilyalp a eb ot mees ton seod sihT" + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "%(url)s :rof pmud tsilyalp eht si ereH" + +#: musicbot/bot.py:6292 +msgid "" +"Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "" +"\n" +".stneilc drocsiD ni edoM repoleveD fo rovaf ni detacerped si dnammoc sihT\n" +".resu denoitnem a fo DI eht ro ,DI resU drocsiD ruoy yalpsiD" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "`%(id)s` si DI resu ruoY" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "`%(id)s` si `%(username)s` rof DI resu ehT" + +#: musicbot/bot.py:6319 +msgid "" +"List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "" +"\n" +".stneilc drocsiD ni edom repoleveD gnisu fo rovaf ni detacerped si dnammoc sihT\n" +".detceles eb yam seirogetac erom ro eno tub ,tluafed yb atad DI lla snruteR\n" +".yrogetac detceles eht rof sDI drocsiD eht tsiL" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "%(cats)s :seirogetac dilaV" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr ":detseuqer uoy sDI eht era ereH" + +#: musicbot/bot.py:6395 +msgid "" +"Get a list of your permissions, or the permissions of the mentioned user." +msgstr "" +".resu denoitnem eht fo snoissimrep eht ro ,snoissimrep ruoy fo tsil a teG" + +#: musicbot/bot.py:6425 +msgid "" +"Invalid user ID or server nickname, please double-check the ID and try " +"again." +msgstr "" +".niaga yrt dna DI eht kcehc-elbuod esaelp ,emankcin revres ro DI resu " +"dilavnI" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr ".niaga yrT .resU drocsid eht enimreted ton dluoC" + +#: musicbot/bot.py:6439 +#, python-format +msgid "" +"Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" +"```\n" +"%(permissions)s\n" +"```\n" +":era %(server)s ni snoissimrep dnammoc ruoY" + +#: musicbot/bot.py:6448 +#, python-format +msgid "" +"The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" +"```\n" +"%(permissions)s\n" +"```\n" +":era %(server)s ni %(username)s rof snoissimrep dnammoc ehT" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr "" +"\n" +".snoitpo noissimrep tsil dna spuorg dedaol wohS " + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr "" +"\n" +".elif ini.snoissimrep eht morf snoissimrep sdaoleR " + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr "" +"\n" +".stluafed htiw puorg wen ddA " + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr "" +"\n" +".puorg gnitsixe evomeR " + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr "" +"\n" +".noitpo noissimrep eht rof txet pleh wohS " + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr "" +"\n" +".noissimrep dna puorg nevig rof eulav noissimrep wohS " + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr "" +"\n" +".elif ot puorg snoissimrep evaS " + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr "" +"\n" +".puorg eht rof eulav noissimrep teS " + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr ".drocsid nihtiw morf noitarugifnoc ini.snoissimrep eganaM" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr ".emit emas eht ta snoitnem resu dna lennahc esu tonnac snoissimreP" + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "!yllufsseccus elif morf dedaoler snoissimreP" + +#: musicbot/bot.py:6538 +#, python-format +msgid "" +"Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +":rorre na ot eud snoissimreP daoler ot elbanU" + +#: musicbot/bot.py:6558 +#, python-format +msgid "" +"## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "" +"\n" +"%(options)s\n" +":snoitpO elbaliavA ##\n" +"%(groups)s\n" +":spuorG elbaliavA ##" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr ".dnammoc siht rof eman noitpo ro puorg a edivorp tsum uoY" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr ".dnammoc siht rof tes ot eulav dna ,noitpo ,puorg a edivorp tsum uoY" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr ".eman noissimrep dna puorg a seriuqer dnammoc-bus %(option)s ehT" + +#: musicbot/bot.py:6605 +#, python-format +msgid "" +"The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" +"%(sections)s :era spuorg elbaliava ehT\n" +".elbaliava ton si `%(group)s` puorg ehT" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr ".elbaliava ton si `%(option)s` noissimrep ehT" + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr ".elif snoissimrep eht gnitide yb tes eb ylno nac noissimrep sihT" + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "`%(value)s` :ot tes si noissimrep siht tluafed yB" + +#: musicbot/bot.py:6638 +#, python-format +msgid "" +"**Permission:** `%(option)s`\n" +"%(comment)s\n" +"\n" +"%(default)s" +msgstr "" +"%(default)s\n" +"\n" +"%(comment)s\n" +"`%(option)s` **:noissimreP**" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr ".stsixe ydaerla ti `%(group)s` puorg dda tonnaC" + +#: musicbot/bot.py:6660 +#, python-format +msgid "" +"Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "" +"`%(group)s evas smreptes` :htiw puorg wen eht evas ot erus ekaM\n" +"`%(group)s tes smreptes` :htiw snoissimrep eht ezimotsuc won nac uoY\n" +"`%(group)s` :puorg wen dedda yllufsseccuS" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr ".puorg ni-tliub evomer tonnaC" + +#: musicbot/bot.py:6677 +#, python-format +msgid "" +"Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "" +"`%(group)s evas smreptes` :htiw egnahc siht evas ot erus ekaM\n" +"`%(group)s` :puorg devomer yllufsseccuS" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr ".elbatide ton si puorg renwo ehT" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "`%(group)s` :puorg eht evas ot deliaF" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "`%(group)s` :puorg eht devas yllufsseccuS" + +#: musicbot/bot.py:6711 +#, python-format +msgid "" +"**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" +"`%(ini)s` :eulaV eliF INI\n" +"`%(loaded)s` :eulaV tnerruC\n" +"`%(permission)s` **:noissimreP**" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "!detadpu ton saw `%(option)s` noissimreP" + +#: musicbot/bot.py:6748 +#, python-format +msgid "" +"Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "" +"`%(option)s %(section)s evas smreptes` esu egnahc eht evas oT\n" +".noisses siht rof detadpu saw `%(permission)s` noissimreP" + +#: musicbot/bot.py:6765 +msgid "" +"Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "" +".ruoh rep eciwt ot segnahc eman timil yam IPA ehT :etoN\n" +".drocsid no emanresu s'tob eht egnahC" + +#: musicbot/bot.py:6784 +msgid "" +"Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" +"\n" +".ruoh rep eciwt ot detimil era segnahc eman rebmemeR\n" +"?semit ynam oot seman egnahc uoy diD .emanresu egnahc ot deliaF" + +#: musicbot/bot.py:6790 +#, python-format +msgid "" +"Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +" :rorre ot eud emanresu egnahc ot deliaF" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "`%(name)s` ot emanresu s'tob eht teS" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr ".emankcin s'toBcisuM eht egnahC" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr ".noissimrep on :emankcin egnahc ot elbanU" + +#: musicbot/bot.py:6820 +#, python-format +msgid "" +"Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +" :rorre ot eud emankcin tes ot deliaF" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "`%(nick)s` ot emankcin s'tob eht teS" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr ".xiferp dnammoc revres-rep a teS " + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr ".xiferp dnammoc revres-rep eht raelC " + +#: musicbot/bot.py:6838 +msgid "" +"Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "" +".tsrif delbane eb tsum dliuGrePxiferPelbanE noitpo ehT\n" +".revres eht ni xiferp dnammoc tluafed eht edirrevO" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr ".xiferp a sa esu ot revres siht morf eb tsum ijome motsuC" + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr ".deraelc si xiferp dnammoc revreS" + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "%(prefix)s :won si xiferp dnammoc revreS" + +#: musicbot/bot.py:6877 +msgid "" +"Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" +".daetsni xiferp eht etadpu ot dnammoc gifnoc eht esU\n" +"!delbane ton si revres rep xiferP" + +#: musicbot/bot.py:6885 +msgid "" +"Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "" +"\n" +".skrow osla retemarap lru eht gnittimo dna elif a gnihcattA\n" +".ratava s'toBcisuM egnahC" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr ".elif a hcatta ro LRU a edivorp tsum uoY" + +#: musicbot/bot.py:6915 +#, python-format +msgid "" +"Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +" :rorre ot eud ratava egnahc ot elbanU" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr ".ratava s'tob eht degnahC" + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr ".revres drocsid eht morf tcennocsid ot toBcisuM ecroF" + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "`%(guild)s` revres morf detcennocsiD" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "]GUB[ ?tneilc eciov sselreyalp a detcennocsiD" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "`%(guild)s` revres ot detcennoc yltnerruc toN" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr "" +"\n" +".noitpo tluafed ehT .tratser ssecorp tuohtiw daoler ot tpmettA " + +#: musicbot/bot.py:6962 +msgid "" +" Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr "" +"\n" +".gnihtyreve gnidaoler ,ssecorp toBcisuM eritne eht tratser ot tpmettA " + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr "" +"\n" +".tratser erofeb segakcap pip etadpu ot tpmetta tub ,tratser lluF " + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr "" +"\n" +".tsrif tig htiw edoc ecruos toBcisuM etadpu tub ,tratser lluF " + +#: musicbot/bot.py:6968 +msgid "" +" Attempt to update all dependency and source code before fully " +"restarting.\n" +msgstr "" +"\n" +".gnitratser ylluf erofeb edoc ecruos dna ycnedneped lla etadpu ot tpmettA " + +#: musicbot/bot.py:6972 +msgid "" +"Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "" +"\n" +".stratser rof dnammoc siht fo daetsni ti gnisu dnemmocer ew ,reganam ecivres a evah uoy fI\n" +".erac htiw desu eb dluohs tub ,noitallatsni toBcisuM a etadpu yletomer ot desu eb nac tI\n" +".deilpmi si tratser `tfos` a ,deilppus noitpo on htiW\n" +".syaw tnereffid fo rebmun a ni toBcisuM eht tratser ot stpmettA" + +#: musicbot/bot.py:6993 +msgid "" +"Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" +"tigpu ro ,pippu ,edargpu ,lluf ,tfos :fo eno esu ,nevig noitpo dilavnI" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "...ecnatsni tnerruc gnitratseR %(emoji)s" + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "...ssecorp tob gnitratseR %(emoji)s" + +#: musicbot/bot.py:7009 +#, python-format +msgid "" +"%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "" +"...tob eht tratser dna segakcap pip deriuqer edargpu ot yrt lliW %(emoji)s" + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "...tob eht tratser dna tig htiw edoc tob etadpu ot yrt lliW %(emoji)s" + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "...tob eht tratser dna gnihtyreve edargpu ot yrt lliW %(emoji)s" + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr ".ssecorp toBcisuM eht esolc dna slennahc eciov lla morf tcennocsiD" + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr ".DI revres ro eman yb nevig revres drocsid eht evaeL " + +#: musicbot/bot.py:7083 +msgid "" +"Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "" +"\n" +".elbailer erom si rebmun DI na gnisu os ,evitisnes-esac era semaN\n" +".revres drocsiD nevig eht evael ot toBcisuM ecroF" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr ".eman ro DI na edivorp tsum uoY" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "`%(input)s` eman ro DI eht htiw dnuof saw dliug oN" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "nwonknU" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr ")`%(id)s` :DI ,`%(owner)s` :renwO( `%(name)s` :dliug eht tfeL" + +#: musicbot/bot.py:7138 +msgid "" +"Command used for testing. It prints a list of commands which can be verified" +" by a test suite." +msgstr "" +".etius tset a yb deifirev eb nac hcihw sdnammoc fo tsil a stnirp tI .gnitset" +" rof desu dnammoC" + +#: musicbot/bot.py:7162 +msgid "" +"This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "" +"\n" +".elif gol toBcisuM eht ni stneve tniopnip yllaunam ot desu eb naC\n" +".esle gnihton seod tub ,LACITIRC level ta gol a seussi dnammoc sihT" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "%(uuid)s :DI htiw tniopkaerb deggoL" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr "" +"\n" +".hpargjbo yb detroper sepyt nommoc tsom weiV " + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr "" +"\n" +".tuptuo )(htworg_wohs.hpargjbo detimil weiV " + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr "" +"\n" +".stcejbo gnikael fo sepyt nommoc tsom weiV " + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr "" +"\n" +".stcejbo gnikael fo statsepyt weiV " + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr "" +"\n" +".hpargjbo no stnemugra dna noitcnuf nevig eht etaulavE " + +#: musicbot/bot.py:7196 +msgid "" +"Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "" +"\n" +".dnammoc gubed eht ekil suoregnad deredisnoc si ti ,edoc yrartibra setaulave dohtem siht ecniS\n" +".hpargjbo fo rebmem a si taht )!secaps on tub( stnemugra htiw dohtem yrartibra na ssap nac uoY\n" +".egasu yromem otni thgisni niag ot ,dellatsni si ti fi ,hpargjbo htiw tcaretnI" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "?dellatsni ti si ,`hpargjbo` tropmi ton dluoC" + +#: musicbot/bot.py:7249 +msgid "" +"This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n" +"\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n" +"\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "" +"\n" +"!sksir eht dnatsrednu ton od uoy fi ti ot ssecca evig ro ti esu ton oD .detatsrednu eb tonnac dnammoc siht fo regnad ehT\n" +".ruoivaheb toBcisuM gubed ot srepoleved yb desu si dna ,noisrev erutuf a ni devomer eb yam dnammoc sihT\n" +"\n" +".detucexe eb yam enil elgnis a ylno esiwrehtO\n" +".kcolb-edoc ni depparw fi detucexe eb nac edoc enil-itluM\n" +"\n" +".denruter eb lliw eulav taht dna `tluser` elbairav lacol ot tes eb nac eulav a ,lufsseccus si cexe fI\n" +".deyalpsid si eulav nruter s'ti ,lufsseccus si lave fI\n" +".txen deirt si )(cexe nworht era snoitpecxe fi ,detpmetta si )(lave tsriF\n" +".epocs dnammoc eht ni edoc nohtyp yrartibra etucexe lliw dnammoc sihT" + +#: musicbot/bot.py:7302 +#, python-format +msgid "" +"Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" +"```%(ex_text)s\n" +":%(ex_name)s\n" +"``` :noitpecxE\n" +"%(py_code)s\n" +":edoc gubed etucexe ot deliaF" + +#: musicbot/bot.py:7320 +msgid "" +"Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "" +".esu ecnerefer lamron rof elbatiusnu suht si dna segaP buHtiG etadpu ot desu si tuptuo ehT\n" +".edoc eht morf sdnammoc ro ,snoissimrep ,snoitpo rof 'nwodkram' etaerC" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "%(options)s :fo eno eb tsum dnammoc-buS" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr ".selif INI tluafed sekaM" + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "ti kcehc oG .ksid ot elif INI detseuqer eht devaS" + +#: musicbot/bot.py:7415 +msgid "" +"Display the current bot version and check for updates to MusicBot or " +"dependencies.\n" +msgstr "" +"\n" +".seicnedneped ro toBcisuM ot setadpu rof kcehc dna noisrev tob tnerruc eht yalpsiD" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr ".elbatucexe tig etacol ton dluoC" + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr ".etomer `%(branch)s` hcnarb ni setadpu oN" + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr ".etomer hcnarb `%(branch)s` ni elbaliava era stimmoc weN" + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr ".sliated rof sgol ees ,gnikcehc elihw rorrE" + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "" +"\n" +"`%(version)s` :noisrev ot `%(name)s` rof etadpU" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr ".dnuof seicnedneped rof setadpu oN" + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr ".daolnwod rof elbaliava toBcisuM rof setadpu era erehT" + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "!etad-ot-pu yllatot si toBcisuM" + +#: musicbot/bot.py:7536 +#, python-format +msgid "" +"%(status)s\n" +"\n" +"**Source Code Updates:**\n" +"%(git_status)s\n" +"\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "" +"%(pip_status)s\n" +"**:setadpU ycnednepeD**\n" +"\n" +"%(git_status)s\n" +"**:setadpU edoC ecruoS**\n" +"\n" +"%(status)s" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr ".tratser / trats tsal ecnis emit ro ,emitpu toBcisuM eht syalpsiD" + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "`%(time)s` rof enilno neeb sah %(name)s" + +#: musicbot/bot.py:7572 +msgid "" +"Display latency information for Discord API and all connected voice clients." +msgstr "" +".stneilc eciov detcennoc lla dna IPA drocsiD rof noitamrofni ycnetal yalpsiD" + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "" +"\n" +"`%(region)s` :noiger ni ).gvA `sm %(avg).0f`( `sm %(delay).0f` -" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "" +"\n" +".detcennoc stneilc eciov oN" + +#: musicbot/bot.py:7604 +#, python-format +msgid "" +"**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "" +"%(voices)s\n" +"**:ycnetaL tneilCecioV**\n" +"`sm %(delay).0f` **:ycnetaL IPA**" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr ".detcennoc si toBcisuM fi ycnetal ecioV dna ycnetal IPA yalpsiD" + +#. TRANSLATORS: short for automatic, displayed when voice region is not +#. selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "otua" + +#: musicbot/bot.py:7630 +#, python-format +msgid "" +"\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "" +"`%(region)s` noiger ni ).gvA `sm %(average).0f`( `sm %(delay).0f` **:ycnetaL" +" ecioV**\n" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "%(voice)s`sm %(delay).0f` **:ycnetaL IPA**" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr ".tahc eht ni rebmun noisrev toBcisuM yalpsiD" + +#: musicbot/bot.py:7648 +#, python-format +msgid "" +"https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "" +"`%(version)s` :noisrev tnerruC\n" +"toBcisuM/stoB-emoS-tsuJ/moc.buhtig//:sptth" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr ".tnemhcatta txt.seikooc a gnisu elif txt.seikooc eht etadpU " + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr ".ti gniteled tuohtiw elif txt.seikooc elbasid ro elbanE " + +#: musicbot/bot.py:7667 +msgid "" +"Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n" +"\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "" +".sksir eht diova ot woh dnatsrednu ton od uoy fi erutaef \n" +"siht esu ton dluohs uoy dna ,sksir eseht ot eud dednemmocer ton si tI \n" +".luferac ton era uoy fi tfeht ro snab tnuocca ni tluser yam dna \n" +",stnuocca ro noitamrofni lanosrep ruoy gnisopxe ksir nac seikooc gniypoC \n" +":GNINRAW\n" +"\n" +".elif seikooc delbasid gnidulcni ,seikooc gnitsixe eteled lliw sdaolpU\n" +".erutaef eht elbane lliw gnidaolpu ,delbasid era seikooc fI\n" +"txt.seikooc deman elif a daolpu tsum uoy ,seikooc gnitadpu nehW\n" +".pld-ty ni erutaef seikooc eht fo tnemeganam swollA" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr ".delbane ydaerla seikooC" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr ").elif seikooc gnissiM( .delbane eb ot dedaolpu eb tsum seikooC" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "%(raw_error)s :rorre ot eud seikooc elbane ton dluoC" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr ".delbane neeb evah seikooC" + +#: musicbot/bot.py:7722 +#, python-format +msgid "" +"Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" +".tratser txen no delbane-er eb lliw dna delbasid yliraropmet seikooC\n" +"%(raw_error)s :rorre ot eud elif seikooc emaner ton dluoC" + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr ".delbasid neeb evah seikooC" + +#: musicbot/bot.py:7731 +msgid "" +"No attached uploads were found, try again while uploading a cookie file." +msgstr "" +".elif eikooc a gnidaolpu elihw niaga yrt ,dnuof erew sdaolpu dehcatta oN" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "%(raw_error)s :drocsid morf elif seikooc eht gnidaolnwod rorrE" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "%(raw_error)s :ksid ot seikooc evas ton dluoC" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr ".delbane dna dedaolpu seikooC" + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr ".segassem etavirp ni tob siht esu tonnac uoY" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "%(group)s :puorg snoissimrep ruoy rof dewolla ton si dnammoc sihT" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr ".lennahc ecioV a ni eb ot uoy seriuqer dnammoc sihT" + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "%(name)s **:dnammoC**" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "rorrE noitpecxE" + +#: musicbot/bot.py:8179 +#, python-format +msgid "" +"**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "" +"\n" +"`... %(command)s`%(prefix)s\n" +"**:xiferp htiw elpmaxE**" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "" +"\n" +".nevig noitpircsed oN" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr ".nevig egasu oN" + +#: musicbot/bot.py:8220 +#, python-format +msgid "" +"**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "" +"%(desc)s\n" +"**:noitpircseD**%(prefix_note)s\n" +"```%(usage)s```\n" +"**:egasu elpmaxE**" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr ".ytivitcani ot eud %(channel)s lennahc eciov gnivaeL" + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr ".ti ni dnuof gnieb ton renwo tob ot eud `%(guild)s` tfeL" + +#: musicbot/config.py:127 +msgid "" +"Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "" +"GNIHTYREVE ro ,YSION ,GEPMFF ,GUBEDECIOV ,GUBED ,OFNI ,GNINRAW ,RORRE ,LACITIRC \n" +":gniwollof eht fo eno ot tes eb nac tI\n" +".OFNI ot tes eb dluohs siht yllamroN .toBcisuM fo ytisobrev gol eht teS" + +#: musicbot/config.py:149 +msgid "" +"Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "" +"!nekot tob ruoy hsilbup reveN\n" +".nekoT ruoy etareneg dna ppA tob a etaerc ot latroP repoleveD drocsiD tisiV\n" +".toB ruoy rof nekot noitacitnehtua tob drocsiD" + +#: musicbot/config.py:162 +msgid "" +"Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "" +".edom tseug naht stimil egasu rehgih stnarg slaitnederc IPA nwo ruoy gnisU\n" +".ereh tes si gnihton fi )edom tseug( IPA reyalp bew eht esu ot yrt lliw toBcisuM\n" +".IPA yfitopS htiw tcaretni ot toBcisuM elbane ot DI tneilC yfitopS nwo ruoy edivorP" + +#: musicbot/config.py:174 +msgid "" +"Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "" +".evoba noitpo DItneilC_yfitopS eht tes uoy fi deriuqer si sihT\n" +".IPA yfitopS htiw tcaretni ot toBcisuM elbane ot terceS tneilC yfitopS ruoy edivorP" + +#: musicbot/config.py:188 +msgid "" +"Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "" +".dednemmocer si 'otua' gnittes ,yllareneG .ereh tes eb nac DI renwo eno ylnO\n" +".noitamrofni ppA no desab renwo eht tes lliw 0 rebmun ro 'otua' drow ehT\n" +".tob siht fo renwo eht tes ot rebmun DI resU drocsiD a edivorP" + +#: musicbot/config.py:201 +msgid "" +"A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "" +".knalb gnittes siht evael dluohs sresu tsoM\n" +".sDI elpitlum etarapes ot secaps esU\n" +".noitucexe edoc etomer yrartibra wolla nac sdnammoc ylno-ved :gninraW\n" +".sdnammoc ylno-ved eht esu nac ohw sDI resU drocsiD fo tsil A" + +#: musicbot/config.py:217 +msgid "" +"Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "" +".tluafed yb derongi era stob llA\n" +".sDI elpitlum etarapes ot secaps esU\n" +".erongi ton dluohs toBcisuM taht stob rehto rof sDI rebmeM drocsiD" + +#: musicbot/config.py:230 +msgid "" +"Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "" +"... yalp* yb reggirt si dnammoc yalp eht * ot siht tes uoy fi ,.g.E\n" +".segassem drocsiD ni detrats eb tsum sdnammoc toBcisuM lla woh si xiferp dnammoC" + +#: musicbot/config.py:242 +msgid "" +"Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "" +".noitnem @ htiw decalper eb nac tub ,elbaliava llits si xiferPdnammoC ehT\n" +"]ereHemaNtoBruoY[@ htiw sdnammoc gnisu elbanE" + +#: musicbot/config.py:253 +msgid "" +"ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "" +".tes ton si siht fi desu era slennahc llA\n" +".sDI elpitlum etarapes ot secaps esU\n" +".srevres elpitlum ni slennahc rof sDI niatnoc nac sihT\n" +".sdnammoc rof esu ylevisulcxe dluohs toBcisuM taht slennahc txet rof srebmun DI" + +#: musicbot/config.py:267 +msgid "" +"Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "" +".revres a rof DI na gnissim si slennahCoTdniB nehw desu ylnO\n" +".revres a rof tes si lennahc cificeps on elihw slennahc lla ni sesnopser wollA" + +#: musicbot/config.py:278 +msgid "" +"A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "" +".sDI elpitlum etarapes ot secaps esU\n" +".pu trats no nioj yllacitamotua dluohs toBcisuM taht sDI lennahC ecioV fo tsil A" + +#: musicbot/config.py:289 +msgid "" +"MusicBot will try to send Now Playing notices directly to the member who " +"requested the song instead of posting in a server channel." +msgstr "" +".lennahc revres a ni gnitsop fo daetsni gnos eht detseuqer ohw rebmem eht ot" +" yltcerid seciton gniyalP woN dnes ot yrt lliw toBcisuM" + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr ".tsilyalp otua aiv deyalp sgnos rof segassem gniyalp won elbasiD" + +#: musicbot/config.py:309 +msgid "" +"Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "" +".revres rep desu eb nac DI lennahc txet eno ylnO\n" +".segassem gniyalp won dnes ot lennahc cificeps a esu ot toBcisuM secroF" + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr ".segassem gniyalP woN eteled yllacitamotua lliw toBcisuM" + +#: musicbot/config.py:329 +msgid "" +"Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "" +".emulov %001 ot %0 ro ,1 ot 0 morf eulav yna esu nac uoY\n" +".ta sgnos yalp lliw toBcisuM level emulov tluafed eht steS" + +#: musicbot/config.py:340 +msgid "" +"Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "" +".stnemtsujda deeps troppus ton seod aidem demaertS :etoN\n" +".deeps kcabyalp lamron si 1 fo eulav A\n" +".ti esu ot gepmff rof 0.001 ot 5.0 morf eulav a eb tsuM\n" +".ta sgnos yalp lliw toBcisuM deeps tluafed eht steS" + +#: musicbot/config.py:354 +msgid "" +"Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "" +".setov erom eriuqer dluow oitaRpikS nehw muminim a sa stcA\n" +".gnos a piks ot deriuqer setov rebmem lennahc fo rebmuN" + +#: musicbot/config.py:366 +msgid "" +"This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "" +".%001 ot %0 ro ,1 ot 0 morf siht tes nac uoY\n" +".daetsni desu eb lliw ti ,eulav detupmoc eht naht rewol si deriuqeRspikS fI\n" +".piks rof etov tsum eciov ni srenetsil fo tnecrep sihT" + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr ".yawa thgir ti eteled ro ,aidem dedaolnwod peek ot toBcisuM wollA" + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "" +"If SaveVideos is enabled, set a limit on how much storage space should be " +"used." +msgstr "" +".desu eb dluohs ecaps egarots hcum woh no timil a tes ,delbane si soediVevaS" +" fI" + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "" +"If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "" +".tpek eb dluohs selif gnol woh no timil a tes ,delbane si soediVevaS fI" + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "" +"If SaveVideos is enabled, never purge auto playlist songs from the cache " +"regardless of limits." +msgstr "" +".stimil fo sseldrager ehcac eht morf sgnos tsilyalp otua egrup reven " +",delbane si soediVevaS fI" + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr ".deyalp si ti nehw gnos eht dedda ohw resu eht noitneM" + +#: musicbot/config.py:429 +msgid "" +"Automatically join the owner if they are in an accessible voice channel when" +" bot starts." +msgstr "" +".strats tob nehw lennahc eciov elbissecca na ni era yeht fi renwo eht nioj " +"yllacitamotuA" + +#: musicbot/config.py:439 +msgid "" +"Enable MusicBot to automatically play music from the auto playlist when the " +"queue is empty." +msgstr "" +".ytpme si eueuq eht nehw tsilyalp otua eht morf cisum yalp yllacitamotua ot " +"toBcisuM elbanE" + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr ".meht gniyalp erofeb skcart tsilyalp otua eht selffuhS" + +#: musicbot/config.py:457 +msgid "" +"Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "" +".tsilyalp otua eht yb dedda saw ti fi gnos gniyalp tnerruc eht ot seilppa ylno sihT\n" +".gnos wen a syalp resu a nehw sgnos tsilyalp otua fo piks citamotua elbanE" + +#: musicbot/config.py:469 +msgid "" +"Remove songs from the auto playlist if they are found in the song block " +"list." +msgstr "" +".tsil kcolb gnos eht ni dnuof era yeht fi tsilyalp otua eht morf sgnos " +"evomeR" + +#: musicbot/config.py:488 +msgid "" +"Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "" +".gnoLyaleDeteleD dna trohSyaleDeteleD yb dellortnoc si doirep yaleD\n" +".yaled a retfa ,sdnes ti segassem eteled yllacitamotua ot toBcisuM wollA" + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr ".yaled a retfa sdnammoc dilav eteled otuA" + +#: musicbot/config.py:507 +msgid "" +"Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "" +".noitcaretni rehtruf on eriuqer taht segassem yb desu si doirep sihT\n" +".segassem gniteled erofeb sdnoces fo doirep trohs eht steS" + +#: musicbot/config.py:518 +msgid "" +"Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "" +".pleh dna hcraes ekil ,segassem dedniw-gnol ro evitcaretni yb desu si doirep sihT\n" +".segassem gniteled erofeb doirep yaled gnol eht steS" + +#: musicbot/config.py:530 +msgid "" +"Allow MusicBot to save the song queue, so queued songs will survive " +"restarts." +msgstr "" +".stratser evivrus lliw sgnos deueuq os ,eueuq gnos eht evas ot toBcisuM " +"wollA" + +#: musicbot/config.py:540 +msgid "" +"Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "" +".eueuq ytpme na ot dedda sgnos ro tsilyalp otua ot ylppa ton seod noitpo siht yltnerruC\n" +".gniyalp si gnos a elihw eueuq eht ni gnos txen eht daolnwod ot toBcisuM elbanE" + +#: musicbot/config.py:550 +msgid "" +"Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n" +"\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "" +".kcart gniyalp yltnerruc eht rof LRU kcart ehT = }lru_0p{ \n" +".kcart gniyalp yltnerruc eht rof eltit kcart ehT = }eltit_0p{ \n" +"]43:2[ :xE .elbaliava fi ,kcart eht fo noitarud latot ehT = }htgnel_0p{ \n" +":stob dliug-itlum ni etarucca eb ton yam selbairav esehT\n" +".kcart dna reyalp eht tuoba noitamrofni ot ssecca evig selbairav gniwollof ehT\n" +"\n" +".etats reyalp yna ni ,sreyalp cisum detcennoc fo rebmuN = }detcennoc_n{ \n" +".sreyalp cisum desuaP yltnerruc fo rebmuN = }desuap_n{ \n" +".sreyalp cisum gniyalP yltnerruc fo rebmuN = }gniyalp_n{ \n" +":selbairav gniwollof eht esu osla yam segassem sutatS\n" +".daetsni sutats sti ni deyalp gnieb yltnerruc cisum tuoba ofni cimanyd yalpsid lliw\n" +"tob eht ,ytpme tfel fI .sutats s'tob eht sa esu ot egassem motsuc a yficepS" + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr ".sreyalp desuap no ofni troper lliw segassem sutats ,delbane fI" + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be +#. translated. +#: musicbot/config.py:582 +msgid "" +"If enabled, MusicBot will save the track title to: data/[Server " +"ID]/current.txt" +msgstr "" +"txt.tnerruc/]DI revreS[/atad :ot eltit kcart eht evas lliw toBcisuM " +",delbane fI" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr ".setov gnissapyb ,ti piks ot gnos eht detseuqer ohw rebmem eht wollA" + +#: musicbot/config.py:602 +msgid "" +"Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "" +".dessecorp eb tsum kcart elohw eht sa ,sgnos gniyalp neewteb yaled esuac nac noitpo sihT\n" +".kcabyalp ni esu rof snoitpo gnizilamron emulov teg ot gepmff esu ot seirT" + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr ".sdebme sa segassem sti tamrof ot toBcisuM wollA" + +#: musicbot/config.py:621 +msgid "" +"The number of entries to show per-page when using q command to list the " +"queue." +msgstr "" +".eueuq eht tsil ot dnammoc q gnisu nehw egap-rep wohs ot seirtne fo rebmun " +"ehT" + +#: musicbot/config.py:631 +msgid "" +"Enable MusicBot to automatically remove unplayable entries from the auto " +"playlist." +msgstr "" +".tsilyalp otua eht morf seirtne elbayalpnu evomer yllacitamotua ot toBcisuM " +"elbanE" + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr ".putrats ta sgol eht ni sgnittes gifnoc toBcisuM yalpsiD" + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "" +"Enable users with the InstaSkip permission to bypass skip voting and force " +"skips." +msgstr "" +".spiks ecrof dna gnitov piks ssapyb ot noissimrep pikSatsnI eht htiw sresu " +"elbanE" + +#: musicbot/config.py:660 +msgid "" +"If enabled, MusicBot will leave servers if the owner is not in their member " +"list." +msgstr "" +".tsil rebmem rieht ni ton si renwo eht fi srevres evael lliw toBcisuM " +",delbane fI" + +#: musicbot/config.py:670 +msgid "" +"If enabled, MusicBot will allow commands to have multiple names using data " +"in: config/aliases.json" +msgstr "" +"nosj.sesaila/gifnoc :ni atad gnisu seman elpitlum evah ot sdnammoc wolla " +"lliw toBcisuM ,delbane fI" + +#: musicbot/config.py:681 +msgid "" +"Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "" +".knalb ton si ti dna delbane si sdebmEesU nehw deilppa ylnO\n" +".txet motsuc htiw retoof debme ni noisrev/eman toBcisuM ecalpeR" + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr ".sdebme morf retoof eht evomer yletelpmoC" + +#: musicbot/config.py:700 +msgid "" +"MusicBot will automatically deafen itself when entering a voice channel." +msgstr "" +".lennahc eciov a gniretne nehw flesti nefaed yllacitamotua lliw toBcisuM" + +#: musicbot/config.py:711 +msgid "" +"If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "" +".denefaed ton era ohw ,stob gnidulcxe ,srebmem lennahc era srenetsiL\n" +".noitpo tuOemiTCVevitcanIevaeL ni tes doirep a rof gnitiaw retfa\n" +",gninetsil era sresu on nehw lennahc eciov a evael lliw toBcisuM ,delbane fI" + +#: musicbot/config.py:723 +msgid "" +"Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "" +"sruoh 4 :ekil esarhp ro sdnoces fo rebmun a ot siht tes nac uoY\n" +".lennahc eciov evitcani na gnivael erofeb tiaw ot emit fo doirep a teS" + +#: musicbot/config.py:734 +msgid "" +"If enabled, MusicBot will leave the channel immediately when the song queue " +"is empty." +msgstr "" +".ytpme si eueuq gnos eht nehw yletaidemmi lennahc eht evael lliw toBcisuM " +",delbane fI" + +#: musicbot/config.py:744 +msgid "" +"When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "" +".yaw siht ni gnivael elbasid ot 0 ot ti teS\n" +"setunim 51 :ekil esarhp fo sdnoces fo rebmun a ot siht tes nac uoY\n" +".eciov evael neht emit fo tnuoma siht rof tiaw ,gniyalp regnol on ro desuap nehW" + +#: musicbot/config.py:756 +msgid "" +"If enabled, users must indicate search result choices by sending a message " +"instead of using reactions." +msgstr "" +".snoitcaer gnisu fo daetsni egassem a gnidnes yb seciohc tluser hcraes " +"etacidni tsum sresu ,delbane fI" + +#: musicbot/config.py:766 +msgid "" +"Sets the default number of search results to fetch when using the search " +"command without a specific number." +msgstr "" +".rebmun cificeps a tuohtiw dnammoc hcraes eht gnisu nehw hctef ot stluser " +"hcraes fo rebmun tluafed eht steS" + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "" +"Allow MusicBot to save a per-server command prefix, and enables the " +"setprefix command." +msgstr "" +".dnammoc xiferptes eht selbane dna ,xiferp dnammoc revres-rep a evas ot " +"toBcisuM wollA" + +#: musicbot/config.py:789 +msgid "" +"If enabled and multiple members are adding songs, MusicBot will organize " +"playback for one song per member." +msgstr "" +".rebmem rep gnos eno rof kcabyalp ezinagro lliw toBcisuM ,sgnos gnidda era " +"srebmem elpitlum dna delbane fI" + +#: musicbot/config.py:800 +msgid "" +"Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "" +".delbasid si siht tluafed yB\n" +".gnitset krowten elbane ot detratser eb tsum toBcisuM\n" +".7/42 cisum gniyalp ro lennahc a ot denioj tob eht peek uoy fi lufesu eb yam sihT\n" +".ytilibaliava dna egatuo krowten tceted ot sgnip demit esu ot toBcisuM wollA" + +#: musicbot/config.py:814 +#, python-format +msgid "" +"Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "" +".srevres lla morf sgnos lla niatnoc lliw sihT\n" +"%(filename)s :elif tsilyalp labolg a ot toBcisuM yb deyalp sgnos lla gnivas elbanE" + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be +#. translated. +#: musicbot/config.py:829 +#, python-format +msgid "" +"Enable saving songs played per-server to a playlist file: " +"%(basename)s[Server ID]%(ext)s" +msgstr "" +"%(ext)s]DI revreS[%(basename)s :elif tsilyalp a ot revres-rep deyalp sgnos " +"gnivas elbanE" + +#: musicbot/config.py:845 +msgid "" +"Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "" +".htap yrotceriDeliFaideM lacol eht morf selif yalp ot\n" +"`txe.elif/ot/htap//:elif yalp` :esu nac sresu ,delbane nehW\n" +".dnammoc yalp eht gnisu selif aidem lacol fo kcabyalp elbanE" + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr ".desu era sdnammoc yalp nehw esuapnu yllacitamotua ot toBcisuM wollA" + +#: musicbot/config.py:877 +msgid "" +"Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "" +".elbasid ot knalb evaeL\n" +".gnikcehc redaeh ptthoia dna `yxorp-- pldty` ot dessap si ereh tes eulav ehT\n" +".redaolnwod aidem pldty htiw esu ot sgnittes yxorp SPTTH/PTTH ,latnemirepxE" + +#: musicbot/config.py:888 +msgid "" +"Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "" +".sgnirts AU detareneg yllacimanyd ,tluafed esu ot knalb evaeL\n" +" /em.stnegaresu.www//:sptth \n" +" tnegA-resU/sredaeH/PTTH/beW/scod/SU-ne/gro.allizom.repoleved//:sptth \n" +":sknil owt gniwollof eht kcehc ,ereh tup thgim uoy tahw fo selpmaxe roF\n" +".gnirts AU eht egnahc ot pld-ty yb dednemmocer yllacipyt ton si tI\n" +".pld-ty ni redaeh tnegA-resU citats a tes ot noitpo latnemirepxE" + +#: musicbot/config.py:903 +#, python-format +msgid "" +"Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "" +".elbasid ot on ro elbane ot sey teS\n" +".dednemmocer eb ton yam tnuocca lanosrep a gnisU\n" +".delbane era seikooc nehw desu eb ton dluohs noitpo sihT\n" +".elif `%(oauthfile)s` eht ni derots neht si nekot noitazirohtua ehT\n" +".tnuocca na ezirohtua ot edoc dna LRU detareneg eht esu tsum uoy ,delbane nehW\n" +".2htuAO aiv tnuocca ebuTuoY a esu ot pld-ty elbane ot noitpo latnemirepxE" + +#: musicbot/config.py:920 +msgid "" +"Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "" +".tes si siht nehw eunitnoc lliw pu-trats erofeb detelpmoc eb tsum noitazirohtuA\n" +".LRU oediv ebuTuoY elbissecca na eb dluohs ereh tes LRU ehT\n" +".tseuqer gnos a rof gnitiaw naht rehtar ,ylrae tpmorp 2htuAO eht strats sihT\n" +".noitazirohtua 2htuAO gnireggirt rof pu-trats ta desu LRU oediv ebuTuoY lanoitpO" + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr ".tsil kcolb eht gniytpme tuohtiw ,erutaef tsil kcolb resu eht elggoT" + +#: musicbot/config.py:949 +msgid "" +"An optional file path to a text file listing Discord User IDs, one per line." +msgstr "" +".enil rep eno ,sDI resU drocsiD gnitsil elif txet a ot htap elif lanoitpo nA" + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr ".tsil kcolb eht gniytpme tuohtiw ,erutaef tsil kcolb gnos eht elbanE" + +#: musicbot/config.py:971 +msgid "" +"An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "" +".dekcolb eb lliw tsil eht ni enil yna sniatnoc taht LRU ro eltit gnos ynA\n" +".enil rep eno sesarhp ro ,sdrow ,sLRU stsil taht elif txet a ot htap elif lanoitpo nA" + +#: musicbot/config.py:984 +msgid "" +"An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "" +".enil rep kcart eno ,smret ro sLRU elbayalp fo tsil a niatnoc dluohs elif hcaE\n" +".selif tsilyalp otua gniniatnoc yrotcerid a ot htap lanoitpo nA" + +#: musicbot/config.py:996 +#, python-format +msgid "" +"An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "" +"txe.elif/eman/redlof/emos/%(path)s :ot spaM\n" +"txe.elif/eman/redlof/emos//:elif :elpmaxE\n" +".locotorp a sa '//:elif' gnisu yb dessecca eb neht nac seirotcerid-bus dna selif llA\n" +".derots eb nac selif aidem elbayalp erehw htap yrotcerid lanoitpo nA" + +#: musicbot/config.py:1015 +msgid "" +"An optional directory path where MusicBot will store long and short-term " +"cache for playback." +msgstr "" +".kcabyalp rof ehcac mret-trohs dna gnol erots lliw toBcisuM erehw htap " +"yrotcerid lanoitpo nA" + +#: musicbot/config.py:1026 +#, python-format +msgid "" +"Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "" +".%(max)s si rebmun dewolla mumixaM .elbasid ot 0 ot teS\n" +".nur hcae decalper era stnetnoc sti dna tpek si gol eno ylno ,delbasid nehW\n" +".tpek selif fo rebmun eht timil dna ,tratser ta noitator elif gol citamotua erugifnoC" + +#: musicbot/config.py:1039 +msgid "" +"Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "" +"roivaheb-emitprts-emitfrts#lmth.emitetad/yrarbil/3/gro.nohtyp.scod//:sptth \n" +":ereh atad dna selbat eht morf sedoc tamrof emit tuoba erom nraeL\n" +".daetsni desu eb lliw tluafed eht dna deggol si gninraw a ,knalb tfel fI\n" +".delbane si tpeKxaMsgoL nehw desu tamrof etad elif gol eht erugifnoC" + +#: musicbot/config.py:1053 +msgid "" +"Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "" +".llew sa noitpo noitazilauqElatnemirepxEesU elbasid lliw noitpo sihT\n" +".slortnoc deeps dna emulov selbasid tub ,egasu UPC secuder yllaitnetoP" + +#: musicbot/config.py:1083 +#, python-format +msgid "" +"Error while reading config.\n" +"\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n" +"\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" +".yrotisoper eht morf ti ypoc ro etalpmet a sa snoitpo elpmaxe eht esU \n" +".noitpo eno tsael ta evah tsum noitces hcaE \n" +".enil emas eht no txet rehto on htiw ,ecno ylno raeppa tsum ]noitceS[ hcaE \n" +".elif snoitpo gifnoc ruoy riapeR \n" +":noituloS\n" +"\n" +"%(sections)s \n" +":era snoitces gnissim ehT \n" +".gnissim era snoitces noitpo gifnoc deriuqer erom ro enO \n" +":melborP\n" +"\n" +".gifnoc gnidaer elihw rorrE" + +#: musicbot/config.py:1132 +msgid "" +"Error while validating config options.\n" +"\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n" +"\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" +".yrotcerid / redlof a ot htap a si derugifnoc uoy htap eht erus ekaM \n" +":noituloS\n" +"\n" +".yrotcerid a ton si htaPehcaCoiduA noitpo gifnoC \n" +":melborP\n" +"\n" +".snoitpo gifnoc gnitadilav elihw rorrE" + +#: musicbot/config.py:1153 +#, python-format +msgid "" +"Error while validating config options.\n" +"\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" +".htap yrotcerid elbissecca ,dilav a si gnittes eht kcehc elbuoD \n" +":noituloS\n" +"\n" +"%(raw_error)s \n" +":rorre na ot eud tes eb ton dluoc noitpo gifnoc htaPehcaCoiduA \n" +":melborP\n" +"\n" +".snoitpo gifnoc gnitadilav elihw rorrE" + +#: musicbot/config.py:1176 +#, python-format +msgid "" +"Error while reading config options.\n" +"\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n" +"\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" +".nekot ppA na htiw %(env_var)s elbairav tnemnorivne tes ro noitpo gifnoc nekoT eht teS \n" +":noituloS\n" +"\n" +".tnemnorivne ro snoitpo gifnoc eht ni deificeps saw nekoT tob oN \n" +":melborP\n" +"\n" +".snoitpo gifnoc gnidaer elihw rorrE" + +#: musicbot/config.py:1244 +msgid "" +"Error while fetching 'OwnerID' automatically.\n" +"\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n" +"\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "" +".retal niaga yrt ro noitpo gifnoc 'DIrenwO' eht tes yllaunaM \n" +":noituloS\n" +"\n" +".gub a ro egatuo IPA yraropmet a eb dluoc sihT \n" +".elbaliava ton si ofni ppA drocsiD \n" +":melborP\n" +"\n" +".yllacitamotua 'DIrenwO' gnihctef elihw rorrE" + +#: musicbot/config.py:1262 +msgid "" +"Error validating config options.\n" +"\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n" +"\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "" +".dleif 'DIrenwO' eht ni DI ppA ro toB eht esu ton oD \n" +":noituloS\n" +"\n" +".DI ppA / toB ruoy sa emas eht si gifnoc 'DIrenwO' ehT \n" +":melborP\n" +"\n" +".snoitpo gifnoc gnitadilav rorrE" + +#: musicbot/config.py:1327 +#, python-format +msgid "" +"Error locating config.\n" +"\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" +".toBcisuM yb daer eb nac dna tsixe selif dna redlof gifnoc eht yfireV \n" +":noituloS\n" +"\n" +"%(raw_error)s \n" +":rorre na ot eud elif gifnoc a etaerc ro dnif ton dluoC \n" +":melborP\n" +"\n" +".gifnoc gnitacol rorrE" + +#: musicbot/config.py:1345 +#, python-format +msgid "" +"Error loading config.\n" +"\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n" +"\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" +".sliaf esle lla fi oper eht morf elif elpmaxe eht ypoC \n" +".eerf rorre dna elbissecca si elif eht erus ekaM \n" +":noituloS\n" +"\n" +"%(raw_error)s \n" +":rorre na ot eud elif gifnoc daer ton dluoc toBcisuM \n" +":melborP\n" +"\n" +".gifnoc gnidaol rorrE" + +#: musicbot/config.py:2184 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n" +"\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" +".gnidnib renwo citamotua rof `0` ro `otua` ot ti tes ro DI laciremun a ot %(option)s teS \n" +":noituloS\n" +"\n" +".dilav ton si %(option)s > ]%(section)s[ ni DI renwo ehT \n" +":melborP\n" +"\n" +".eulav gifnoc gnidaol rorrE" + +#: musicbot/config.py:2220 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n" +"\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" +".toBcisuM ot elbissecca si dna stsixe elif eht erus ekam dna gnittes htap eht kcehC \n" +":noituloS\n" +"\n" +".noitacol elif dilav a ton si %(option)s > ]%(section)s[ noitpo gifnoc ehT \n" +":melborP\n" +"\n" +".eulav gifnoc gnidaol rorrE" + +#: musicbot/config.py:2250 +#, python-format +msgid "" +"Error loading config value.\n" +"\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n" +"\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" +".sammoc ro secaps yb ylno detarapes dna ,laciremun era sDI lla erusnE \n" +":noituloS\n" +"\n" +".dilavni si %(option)s > ]%(section)s[ noitpo ni sDI eht fo enO \n" +":melborP\n" +"\n" +".eulav gifnoc gnidaol rorrE" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "...sredaeh on evah ot smees DAEH" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr ".atad on denruter noitcartxe ofni gnoS" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr ".desolc si pool tneve ,noitcartxe eunitnoc tonnaC" + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr ".detroppus ton ro dilavni si LRU yfitopS" + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "%(raw_error)s :atad gnidaolnwod elihw pld-ty ni rorrE" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr ".LRU dilavni na maerts tonnaC" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr ".dnuof eb ton dluoc elif aidem lacol ehT" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "%(type)s :epyt htiw rorre gnissecorp ,sknil yfitopS daolnwod tonnaC" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "%(raw_error)s :rorre na ot eud etelpmoc ton did daolnwoD" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "%(raw_error)s :rorre pld-ty a ot eud deliaf daolnwoD" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "%(raw_error)s :noitpecxe deldnahnu na ot eud deliaf daolnwoD" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr ".aidem detseuqer eht rof atad tcartxe ot deliaF" + +#: musicbot/permissions.py:328 +msgid "" +"List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "" +"\n" +".tes fi tsilkcalBdnammoC sedirrevo noitpo sihT\n" +".dnammoc gifnoc eht fo dnammoc-bus `tes` eht ylno stnarg `tes_gifnoc` si tahT\n" +".eman dnammoc-bus eht dna _ gnidda yb dellortnoc eb nac ssecca dnammoc-buS\n" +".secaps yb detarapes ,esu rof dewolla seman dnammoc fo tsiL" + +#: musicbot/permissions.py:342 +msgid "" +"List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "" +"!tes si tsiletihWdnammoC fi krow ton lliW\n" +".secaps yb detarapes ,esu morf deined seman dnammoc fo tsiL" + +#: musicbot/permissions.py:354 +msgid "" +"When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "" +"\n" +".tsilkcalb eht yb deined eb yam sdnammoc-bus revewoh ,dewolla era tsiletihw eht ni sdnammoc ylnO\n" +".rehtegot desu era tsiletihWdnammoC dna tsilkcalBdnammoC ,delbane nehW" + +#: musicbot/permissions.py:365 +msgid "" +"List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "" +".secaps yb detarapes eb dluohs seman dnammoC\n" +".tsil siht fo sseldrager ,eciov ni eb ot resu eht eriuqer syawla lliw sdnammoc emoS\n" +".toBcisuM sa lennahc eciov emas eht ni elihw desu eb ylno nac taht seman dnammoc fo tsiL" + +#: musicbot/permissions.py:378 +msgid "" +"List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "" +".tes si tsiLresU fi derongi si noitpo sihT\n" +".puorg noissimrep siht detnarg era taht sDI elor revres drocsiD fo tsiL" + +#: musicbot/permissions.py:390 +msgid "" +"List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "" +".seloRoTtnarG sedirrevo noitpo sihT\n" +".puorg siht ni snoissimrep detnarg era taht sDI rebmem drocsiD fo tsiL" + +#: musicbot/permissions.py:402 +msgid "" +"Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "" +".detimilnu snaem 0 fo eulav A\n" +".eueuq ot dewolla si resu a sgnos fo rebmun mumixaM" + +#: musicbot/permissions.py:414 +msgid "" +"Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "" +".elbaliava ton si noitarud gnos fi decrofne eb ton yam noissimrep sihT\n" +".detimilnu snaem 0 fo eulav A .sdnoces ni gnos a fo htgnel mumixaM" + +#: musicbot/permissions.py:426 +msgid "" +"Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "" +".detimilnu snaem 0 fo eulav A\n" +".deueuq nehw evah ot dewolla si tsilyalp a sgnos fo rebmun mumixaM" + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr ".hcraes a ni denruter eb nac taht smeti fo rebmun mumixam ehT" + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr ".ecno ta sgnos elpitlum ro ,stsilyalp eueuq ot sresu wollA" + +#: musicbot/permissions.py:456 +msgid "" +"Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "" +".delbane si noitpo gifnoc pikSycageL fi ,gnitov tuohtiw piks ot sresu wollA" + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr ".gnos depool a piks ot resu eht swollA" + +#: musicbot/permissions.py:474 +msgid "" +"Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "" +".sgnos gniyalp yltnerruc piks ro evomer ton seoD\n" +".eueuq eht morf gnos yna evomer ot resu eht swollA" + +#: musicbot/permissions.py:485 +msgid "" +"Skip songs added by users who are not in voice when their song is played." +msgstr "" +".deyalp si gnos rieht nehw eciov ni ton era ohw sresu yb dedda sgnos pikS" + +#: musicbot/permissions.py:495 +msgid "" +"Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "" +".delbane si edoM ekoaraK nehw eueuq eht ot sgnos dda ot resu eht swollA" + +#: musicbot/permissions.py:505 +msgid "" +"Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "" +"!puorg siht rof dewolla eb llits tsum dnammoc nommus ehT\n" +".ydaerla eciov ni t'nsi tob fi ,sdnammoc yalp gnisu nehw lennahc eciov resu ot nommus otuA" + +#: musicbot/permissions.py:516 +#, python-format +msgid "" +"Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n" +"\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n" +"\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "" +"\n" +"!pld-ty ot elbaliava secivres lla troppus ton thgim toBcisuM :ECITON\n" +".noitcartxe IPA yfitopS elbasid ro elbane ot `tobcisum:yfitops` ecivres motsuc eno sedivorp osla toBcisuM\n" +"\n" +" dm.setisdetroppus/retsam/bolb/pld-ty/pld-ty/moc.buhtig//:sptth \n" +":ereh detsil era pld-ty yb detroppus srotcartxe/secivreS\n" +"\n" +".tsil eht ot setouq tuohtiw `%(allow_all)s` dda ,srotcartxe lla wolla oT\n" +".snoisrev neewteb egnahc yam tub ,evoba deyalpsid era stluafed ehT .desu era stluafed dedoc-drah ,ytpme nehW\n" +".desu eb ot dewolla era taht ,secaps yb detarapes ,seman rotcartxe pld-ty yficepS" + +#: musicbot/permissions.py:613 +#, python-format +msgid "" +"You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" +".puorg ruoy ni dettimrep ton si `%(extractor)s` rotcartxe pld-ty ehT\n" +".aidem detseuqer eht yalp ot noissimrep evah ton od uoY" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "noitamrofni tcartxe ton dluoC" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr ".tsilyalp a si sihT" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "%(url)s :LRU rof `%(type)s` epyt tnetnoc dilavnI" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "atad noitarud on" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "yrtne tnerruc ni atad noitarud on" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "`%(type)s` tog `kcart` epyt fo eb tsum ,atad_kcart dilavnI" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "%(reason)s ]%(status)s[ :KO ton si sutats esnopseR" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "!tcid a ot edoced ton did NOSJ esnopseR" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "%(raw_error)s :nosaeR %(url)s :LRU ot TEG ekam ton dluoC" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "%(raw_error)s :nosaeR %(url)s :LRU ot TSOP ekam ton dluoC" + +#: musicbot/spotify.py:672 +msgid "" +"Failed to get a guest token from Spotify, please try specifying client ID " +"and client secret" +msgstr "" +"terces tneilc dna DI tneilc gniyficeps yrt esaelp ,yfitopS morf nekot tseug " +"a teg ot deliaF" + +#: musicbot/spotify.py:683 +#, python-format +msgid "" +"API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" +"%(raw_error)s :yek gnissiM .atad detcepxe eht niatnoc ton did esnopser IPA" + +#: musicbot/spotify.py:689 +#, python-format +msgid "" +"API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" +"%(raw_error)s\n" +".atad detcepxenu deniatnoc esnopser IPA" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "eno gnitteg pu dne ton did ,yfitopS morf nekot a detseuqeR" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "%(reason)s ]%(status)s[ :KO ton si sutats esnopser IPA" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr ".dnammoc siht esu nac renwo eht ylnO" + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr ".dnammoc siht esu nac sresu ved ylnO" diff --git a/i18n/zh_CN/LC_MESSAGES/musicbot_logs.mo b/i18n/zh_CN/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..dd5cd1c6135f1f135511d0009559350df341e0b5 GIT binary patch literal 60254 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 %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "加载自动播放列表文件时出错: %s" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "无法记录播放列表URL移除信息。" + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "正在更新播放列表文件..." + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "保存播放列表文件失败: %s" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "已经在播放列表 %s中的 URL,忽略" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "正在初始化 MusicBot %s" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "任务未处理异常: %r" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "Spotify没有为我们提供令牌。禁用。" + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "通过Spotify验证成功使用客户端 ID 和秘密。" + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "" + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "配置没有 Spotify 应用凭据,正在尝试使用访客模式。" + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "使用 Spotify 验证成功使用访客模式。" + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "" + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "实验性的 Yt-dlp OAuth2 插件已启用。这可能会在任何时候中断!" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "已初始化,正在连接到 discord。" + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "通过配置禁用网络ping测试。" + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "网络Ping 测试正在关闭。" + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "无法解析 ping 目标。" + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "网络Ping 测试已取消。" + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "通过 HTTP 进行网络测试没有要借用的会话。" + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "无法在您的环境中找到 ping` 可执行文件。" + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "侦测到的 MusicBot 网络再次可用." + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "语音客户端未连接,正在等待恢复 MusicPlayer..." + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "MusicBot 检测到网络停用。" + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "正在检查频道以自动加入或恢复..." + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "丢弃音乐播放器并制作新音乐..." + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "MusicBot 现在将创建一个新的 MusicPlayer ..." + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "" + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "已完成加入配置频道。" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "会员没有语音功能,无法使用此命令。" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "您不能在语音频道中使用此命令。" + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "正在获取机器人应用程序信息。" + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "断开连接失败或已取消?" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "MusicBot 现在有一个语音客户端..." + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "MusicBot 语音客户端连接尝试已取消。无需重试。" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "MusicBot 与语音的连接已取消。这是奇异的。可能要重新启动吗?" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "MusicBot 没有发言权限。" + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "MusicBot 无法请求发言。" + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "在杀死MusicPlayer前断开语音客户端。" + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "断开连接失败或取消。" + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "MusicBot 有一个不是语音客户端的语音协议,仍然断开连接..." + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "断开非公会语音客户端的连接..." + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." +msgstr "" + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "MusicPlayer 有一个未连接的语音客户端。" + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "出错了,我们没有得到语音客户端。" + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "运行_player_player" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with URL: %s" +msgstr "没有为 URL 条目设置缩略图: %s" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "没有频道放入正在播放消息" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "忽略正在播放的消息,因为它已经被发布。" + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "运行 on_player_result" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "运行 on_player_pause" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "运行_player_stop" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "运行_player_finished_play_playing" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "事件循环已关闭,此处不需要做任何其它事情。" + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "注销正在进行,忽略此事件。" + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "语音客户端说它没有连接,我们在这里无法做任何其他事情。" + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "播放器已完成,队列为空,离开语音频道..." + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "正在循环播放队列以删除缺失作者的歌曲..." + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "公会自动播放列表中没有可播放的歌曲,禁用。" + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "当前自动播放列表中没有内容。用新音乐填充..." + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "正在循环播放器自动布局列表..." + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the auto playlist extraction and bail." +msgstr "MusicBot 需要停止自动播放列表提取和保释。" + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "在玩家完成的活动中,MusicBot 有一个未处理的异常。" + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "上述异常数据错误:" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "自动播放列表中没有可播放的歌曲,禁用了。" + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "已添加 on_player_entry_添加" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "自动跳过队列条目的自动播放列表条目。" + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "MusicPlayer 异常。" + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "注销正在进行,忽略状态更新事件。" + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-response object: %r" +msgstr "无法发送无响应对象: %r" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "[Dev Bug ] 试图发送无效的响应对象。" + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "无法发送私信,发送到后退频道中。" + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "评分有限的发送消息,但不能重试!" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "在后退频道中发送消息失败。" + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "由于HTTP错误发送失败。" + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "评分限制信息已删除,但无法重试!" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "删除消息失败" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "发送消息" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "编辑消息失败" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "断开和关闭MusicBot" + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "处理中断信号时抛出异常!" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "MusicBot 正在执行关闭步骤..." + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "正在等待下载线程完成..." + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "正在等待任务..." + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "关闭HTTP连接器。" + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "闭幕会议." + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "注销已被调用。" + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "MusicBot恢复了不一致的会话。" + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "准备好完成" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "已登录,正在准备好MusicBot..." + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "客户端在某种程度上是没有的,我们去做保释..." + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "公会列表:" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr "" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "所有者未知。机器人不在任何公会上。" + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non Messageable channel with ID: %d" +msgstr "无法绑定到 ID 为 %d 的不可信频道" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "文本通道绑定:" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "不绑定到任何文本频道" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for auto join channel with ID: %d" +msgstr "没有自动加入频道ID: %d" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot auto join a Private/Non-Guild channel with ID: %d" +msgstr "无法自动加入私有/非公会频道与 ID: %d" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot auto join to non-connectable channel with ID: %d" +msgstr "无法自动加入不可连接的频道 ID: %d" + +#: musicbot/bot.py:2451 +msgid "Auto joining voice channels:" +msgstr "自动加入语音频道:" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not auto joining any voice channels" +msgstr "不自动加入任何语音频道" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "正在获取应用程序信息。" + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "确保数据文件夹存在" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "正在验证配置" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "正在验证权限配置" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "已禁用" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "已启用" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "选项:" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr "" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr "" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr "" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr "" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "随机的" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "序列" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr "" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr "" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr "" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Now Playing: %s" +msgstr " 删除正在播放中: %s" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr "" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr "" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr "" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr "" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr "" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr "" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr "" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr "" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr "" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr "" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr "" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr "" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr "" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr "" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr "" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr "" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr "" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr "" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr "" + +#: musicbot/bot.py:2695 +#, python-format +msgid "The requested song `%(subject)s` is blocked by the song block list." +msgstr "" + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "试图处理 Voice Channot 处于无活动状态,但Bot 没有语音..." + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "正在重置玩家活动计时器。" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "没有这种命令" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "您必须提及用户或提供他们的身份号码。" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "给定的子命令无效。使用 \"help blockuser\" 作为使用示例。" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "MusicBot 无法找到您指定的用户。" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "所有者不能添加到方块列表。" + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from block list, not listed: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "无法添加您列出的用户,他们已经被添加。" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "如果没有歌曲正在播放,您必须提供一个歌曲主题。" + +#: musicbot/bot.py:3152 +msgid "Invalid sub-command given. Use `help blocksong` for usage examples." +msgstr "给定的子命令无效。使用 \"help blocksong\" 作为使用示例。" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "主题不在歌曲块列表中,无法删除。" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "给定的子命令无效。使用 \"help autoplaylist\" 作为使用示例。" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "提供的歌曲链接无效" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "队列为空。用播放命令添加一些歌曲!" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "这首歌已经在自动播放列表中。" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "这首歌尚未在自动播放列表中。" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "您必须提供一个播放列表文件名。" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "您无权请求播放列表" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "由于网络停电,忽略自动暂停。" + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "MusicPlayer 没有 VoiceClient 或没有频道数据,无法处理自动暂停。" + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "已经在处理自动暂停,忽略此事件。" + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "自动暂停等待已取消。" + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "一个新的 MusicPlayer 正在连接,忽略旧的自动暂停事件。" + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "如果没有播放,无法使用寻找。" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "无法在当前轨道上使用寻找,它有未知的持续时间。" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "不支持搜索。" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "没有时间定位播放,无法使用搜索引擎。" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "无效的子命令。使用命令“help repat”作为使用示例。" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "玩家目前没有循环中。" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "歌曲位置必须是整数!" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "您提供了一个超出播放列表大小的位置!" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "无法提示播放列表播放,没有消息添加反应。" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "本地媒体播放未启用。" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "Spotify URL 无效或目前不支持。" + +#: musicbot/bot.py:4159 +msgid "Detected a Spotify URL, but Spotify is not enabled." +msgstr "检测到 Spotify 网址,但Spotify 未启用。" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "Karaoke模式已启用,请禁用后再试一次!" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "与extract_info() 有关的问题: " + +#: musicbot/bot.py:4191 musicbot/bot.py:4396 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "无法播放该视频。请尝试使用流命令。" + +#: musicbot/bot.py:4208 +#, python-format +msgid "YouTube search returned no results for: %(url)s" +msgstr "" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with 'youtube:playlist' as extractor key" +msgstr "提取了“youtube:playlist”作为提取器键的条目" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "尚不支持流播放列表。" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "请指定一个搜索查询。使用 \"help search \" 获取更多信息。" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "您没有连接到语音。请尝试加入一个语音频道!" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot 不能关注不是服务器成员的用户。" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "播放器未播放。" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "队列中没有要移除的内容!" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "无效的条目编号。使用队列命令来查找队列位置。" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "无法跳过!玩家没有在玩!" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "您没有权限强制跳过循环歌曲。" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "您没有强制跳过的权限。" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "您没有权限跳过循环歌曲。" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "速度不能应用于流媒体。" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "您必须提供一个速度来设置。" + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "您提供的速度无效。请使用0.5 至 100之间的数字。" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "您必须为别名提供别名和命令" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "您必须提供一个别名来移除。" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "配置不能同时使用频道和用户提到。" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "无法解析选项名称中的部分名称。请提供一个有效的部分和选项名称。" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "给定的选项含混,请提供一个章节名称。" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "您必须提供此命令的部分名称和选项名称。" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "您必须为此子命令提供一个章节、选项和值。" + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "选项命令已废弃,请使用配置命令。" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "指定的选项无效,使用:信息、更新或清除" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**删除缓存失败,请检查日志获取更多信息..." + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "队列页面参数必须是一个整数。" + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "没有播放队列的歌曲!队列中有播放命令的歌曲。" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "跳过当前播放列表条目。" + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "没有足够的条目来分页队列。" + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "无法发布队列消息,没有消息添加反应。" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "无法在私有DM频道上使用净化。" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "给定的 URL 不是有效的 URL。" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "这似乎不是一个播放列表。" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "无效的用户ID或服务器昵称,请重新检查ID,然后重试。" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "无法确定 Discord 用户,请重试。" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "权限不能同时使用频道和用户提到。" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "您必须为此命令提供一个组或选项名称。" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "您必须为此命令设置一个组、选项和值。" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "无法删除内置组。" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "所有者群组不可编辑。" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "无法更改昵称:没有权限。" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "自定义表情必须来自此服务器才能用作前缀。" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "每个服务器的前缀未启用!\n" +"使用配置命令来更新前缀。" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "您必须提供一个 URL 或附加文件。" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "MusicBot找到了一个 %s 没有公会!这可能是一个问题。" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "给定的选项无效,请使用其中一项:软、完整、升级、上传或上传。" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "您必须提供一个ID或名称。" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "无法导入 `objgraph` ,是否安装?" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "调试代码使用 eval()." + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "调试代码与 exec() 一起运行。" + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "调试代码执行失败。" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "无法找到 git 可执行文件。" + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "通过 git 命令检查更新失败。" + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "Pip报告中缺少元数据。" + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "由于某些错误,Pip更新状态失败。" + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "获取一个奇怪的语音客户端条目。" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookie 已启用。" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Cookie 必须上传才能启用。(正在使用 cookies 文件)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "没有找到附加的上传文件,上传cookie文件时再试一次。" + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "获取一条没有频道的消息,或者说: %s" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "忽略自身的命令 (%s)" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "忽略其它机器人的命令(%s)" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "忽略频道类型的命令: %s" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "此命令要求您在语音频道中。" + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "无法为缺失的命令生成帮助: %s" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "缺少命令的帮助数据: %s" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "MusicBot 已连接。" + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "MusicBot 已断开连接。" + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "获取一个套接字事件: %s" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "在 on_ready 完成之前更新语音状态" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "忽略 %s 中的 %s ,因为它是一个绑定的语音频道。" + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "%s 被检测为空。处理超时。" + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "一个用户加入 %s,取消计时器。" + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "机器人移动了,音频道 %s 为空。处理超时。" + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "机器人移动了,声音频道 %s 不是空的。" + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "不再关注用户 %s" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "频道前没有语音状态断开连接。" + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "找不到自动加入的频道,是否删除?公会: %s" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "重新连接到频道上的自动加入公会: %s" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "无法自动加入频道: %s" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "帐号已添加到公会: %s" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "由于找不到机器人所有人,左公会为%s' 。" + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "为公会创建数据文件夹 %s" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "机器人已从公会中移除: %s" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "更新公会列表:" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "公会\"%s\"已经可用。" + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "由于可用,恢复玩家“%s”。" + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "公会\"%s\" 已不可用。" + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "由于不可用而暂停玩家 \"%s\"。" + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "公会更新: %s" + +#: musicbot/bot.py:8636 +#, python-format +msgid "Guild attribute %(attr)s is now: %(new)s -- Was: %(old)s" +msgstr "" + +#: musicbot/bot.py:8668 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "正在创建 %s" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "正在加载配置: %s" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "不能存储超过 %s 的日志文件。选项LogsMaxKept 将被限制。" + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "配置选项 LogsDateFormat 是空的,这将破坏日志文件的旋转。使用默认值。" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "验证AudioCachePath时出现异常。" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "音频缓存将存储在: %s" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "状态消息配置选项太长,它将被限制为128个字符。" + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "默认播放速度必须在 0.5 和 100.0之间。 %.3f 的选项值将被限制。" + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "检测到 Cookies TXT 文件。MusicBot 会将它们传递到 yt-dlp.\n" +"Cookies 不被推荐,可能不被支持,可能完全断开。\n" +"从您的网页浏览器复制cookie有暴露个人数据的风险, \n" +"在最好的情况下可能导致您的账户被禁止!\n\n" +"您已被警告!祝您好运! \\U0001F596\n" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "正在通过服务数据验证选项..." + +#: musicbot/config.py:1240 +msgid "Acquired owner ID via API" +msgstr "通过 API 获得所有者ID" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "" + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "MusicBot 没有用户实例,不能继续。" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "验证配置选项时出错。\n\n" +"问题:\n" +" “所有者ID”配置与您的 Bot / App ID相同。\n\n" +"解决方案:\n" +" 不要在“所有者ID”字段中使用机器人或App ID。" + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "找不到配置选项文件,正在检查替代..." + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "" + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "试图找到配置选项文件时出了错。" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "定位配置时出错。\n\n" +"问题:\n" +" 由于错误无法找到或创建配置文件:\n" +" %(raw_error)s\n\n" +"解决方案:\n" +" 验证配置文件夹和文件存在并且可以通过 MusicBot 读取。" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "开发错误!配置选项有不可用的getter。" + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "开发错误!配置选项的类型无效,获取类型和默认类型必须相同。" + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "此前缺少备选办法。" + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "配置部分不在解析后的配置中!缺少: %s" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "保存配置失败: %s" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "选项名称在INI部分之间并不唯一!解析器已被禁用。" + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "保存默认 INI 文件失败: %s" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "" + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "" + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "使用重命名选项升级配置文件..." + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "升级配置失败。您需要手动升级。" + +#: musicbot/config.py:2551 +#, python-format +msgid "Block list file not found: %s" +msgstr "未找到方块列表文件: %s" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "无法从文件加载块列表: %s" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the block list file: %s" +msgstr "无法更新块列表文件: %s" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Block list with %s entries." +msgstr "使用 %s 条目加载用户块列表。" + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "我们找到了一个旧的黑名单文件,它将被重命名为: %s" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Block list with %s entries." +msgstr "使用 %s 条目加载歌曲方块列表。" + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "无法用ID0加载公会数据。这可能是代码中的错误!" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "一个操作系统错误阻止读取公会数据文件: %s" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "无法保存与 ID 0的公会数据。这可能是代码中的一个错误!" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "由于操作系统错误,无法保存公会特定数据。" + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "由于无效数据,无法序列化公会特定数据。" + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "强制YTDLP使用用户代理: %s" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "MusicBot 将使用 cookie 的 yt-dlp: %s" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "Yt-dlp 将使用您配置的代理服务器。" + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD 似乎没有信头..." + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "由于超时检查媒体头部失败。" + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "HEAD 请求失败: %s" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "HEAD 请求异常: " + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "卫生化的 YTDL 提取信息(非JSON ):\n" +"%s" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "已卫生化的 YTDL 提取信息(而不是JSON ): %s" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "歌曲信息提取没有返回数据。" + +#: musicbot/downloader.py:437 +#, python-format +msgid "Called extract_info with: '%(subject)s', %(args)s, %(kws)s" +msgstr "" + +#: musicbot/downloader.py:445 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "无法运行提取,循环已关闭。(关机时这是正常的。)" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "无法继续提取,事件循环已关闭。" + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "Spotify URL 无效或不支持。" + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:493 +msgid "Download Error with stream URL" +msgstr "下载流URL错误" + +#: musicbot/downloader.py:498 +msgid "Assuming content is a direct stream" +msgstr "假设内容是直接流" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "无法生成无效的 URL。" + +#: musicbot/downloader.py:517 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "捕捉到NoSupportingHanders,在用空格替换冒号后再次尝试。" + +#: musicbot/downloader.py:544 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "Extractor youtube:search 返回了单条目结果,以条目信息取代基础信息。" + +#: musicbot/downloader.py:560 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "找不到本地媒体文件。" + +#: musicbot/downloader.py:618 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "YtdlpResponseDict 缺少__input_subject" + +#: musicbot/downloader.py:623 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "条目不是 YtdlpResponseDict 中的列表, 设置进程=True 以避免这种情况。" + +#: musicbot/downloader.py:852 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "未找到模块“pymediainfo”,将会退回到ffprobe。" + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "%r 未来创建" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "在 _for_each_future 回拨中未处理异常。" + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "条目数据缺失版本号,不能反序列化。" + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "条目数据有错误的版本号,不能反序列化。" + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with ID: %s" +msgstr "反序列化的 URL 播放列表条目无法找到 ID 的频道: %s" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "反序列化的 URL 播放列表条目有错误的频道类型: %s" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with ID: %s" +msgstr "反序列化的 URL 播放列表条目找不到 ID 的作者: %s" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "反序列化的 URL 播放列表条目有作者ID,但没有查找频道!" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "无法加载 %s" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "准备进入: %r" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "下载缓存的扩展..." + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "本地大小不同于远程大小。正在重新下载..." + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "下载已缓存于: %s" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalized." +msgstr "解决EQ问题可能是一个奇怪的安装程序造成的。 这不会影响机器人的工作能力,但意味着您的轨道将不会平等。" + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "检查条目数据时出现异常。" + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "尝试通过pymediainfo 获取持续时间: %s" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "无法通过 pymediainfo 获取持续时间。" + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "尝试通过 ffprobe 获取持续时间: %s" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "无法在您的路径中找到 ffprobe!" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "ffprobe 返回了无法使用的东西。" + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "由于某种原因无法执行 ffprobe。" + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "计算平均体积: %s" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "无法在您的路径上找到 ffmpeg !" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse 'I' in normalize json." +msgstr "无法解析 json。" + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse 'LRA' in normalize json." +msgstr "无法解析 json 正常化 “LRA”。" + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse 'TP' in normalize json." +msgstr "无法解析 json 正常化 “TP”。" + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse 'thresh' in normalize json." +msgstr "无法解析 json 正常化 “阈值”。" + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse 'offset' in normalize json." +msgstr "无法解析 json 正常化 'offset' 。" + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "开始下载: %r" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "下载尝试 %s ,共 3 次..." + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "解压遇到一个未处理的异常。" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "下载失败: %r" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "为请求的媒体提取数据失败。" + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "下载完成: %r" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with ID: %s" +msgstr "反序列化的 StreamPlaylistEnter无法找到与 ID: %s 的频道" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "反序列化的 StreamPlaylistentre 有错误的频道类型: %s" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with ID: %s" +msgstr "反序列化的 StreamPlaylistEnter无法找到 ID 的作者: %s" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "反序列化的 StreamPlaylistEnter有作者ID,但没有查找渠道!" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with ID: %s" +msgstr "反序列化的 LocalFilePlaylistEnter无法找到与 ID: %s 的频道" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "反序列化的本地文件播放列表条目有错误的通道类型: %s" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with ID: %s" +msgstr "反序列化的 LocalFilePlaylistEnter无法找到ID: %s 的作者" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "Desertialized LocalFilePlaylistEnt有作者ID,但没有查找渠道!" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "删除缓存文件失败: %s" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "音频缓存目录已删除。" + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "无法删除或重命名音频缓存目录。" + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "无法删除音频缓存目录。" + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "音频缓存没有设置限制,无需删除。" + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "" + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "" + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "" + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "缺少音频缓存目录,无需删除。" + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "音频缓存文件来自自动布局列表,但标记为忙,忽略它。" + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "缓存级别需要清理。 %s" + +#: musicbot/filecache.py:302 +msgid "Auto playlist has no cache map, moving on." +msgstr "自动播放列表没有缓存地图,正在继续。" + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded auto playlist cache map with %s entries." +msgstr "加载了带有 %s 条目的自动播放列表缓存图。" + +#: musicbot/filecache.py:314 +msgid "Failed to load auto playlist cache map." +msgstr "自动载入播放列表缓存映射失败。" + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved auto playlist cache map with %s entries." +msgstr "保存了带有 %s 条条目的自动播放列表缓存图。" + +#: musicbot/filecache.py:337 +msgid "Failed to save auto playlist cache map." +msgstr "保存自动播放列表缓存映射失败。" + +#: musicbot/filecache.py:355 +#, python-format +msgid "Auto playlist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Argument Error: %s" +msgstr "Lang 参数错误: %s" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/json.py:14 +#, python-format +msgid "Loading JSON file: %s" +msgstr "正在加载 JSON 文件: %s" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "无法从 JSON 键抓取数据: %s" + +#: musicbot/logs.py:124 +msgid "Skipping logger setup, already set up" +msgstr "跳过记录器设置,已经设置" + +#: musicbot/logs.py:276 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "日志级别先前通过覆盖设置到: %s" + +#: musicbot/logs.py:285 +#, python-format +msgid "Changing log level to: %s" +msgstr "" + +#: musicbot/logs.py:314 +msgid "MusicBot loggers have been called to shut down." +msgstr "MusicBot 伐木者已被召唤关闭。" + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "找不到权限文件,复制自: %s" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "复制示例权限文件时出错: %s" + +#: musicbot/permissions.py:165 +msgid "Config 'OwnerID' is set auto, will set correctly later." +msgstr "配置“所有者ID”设置为自动设置,稍后会正确设置。" + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "正在验证权限..." + +#: musicbot/permissions.py:184 +msgid "Setting auto 'OwnerID' for owner permissions group." +msgstr "为所有者权限组设置自动“所有者ID”。" + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permissions file: %s" +msgstr "正在更新权限文件中的组: %s" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "正在从权限文件中删除组: %s" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "添加新组到权限文件: %s" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "正在保存权限文件。" + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "配置更新器无法解析权限文件!" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "您有一个重复的部分,修复您的权限文件!" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "保存权限组失败: %s" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "开发错误!权限不可用。" + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "开发错误!权限类型无效,获取类型和默认类型必须相同。" + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "最多搜索项不能大于 100。设置为 100。" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "清理被调用到音频源: %r" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "MusicPlayer.skip() 被调用: %s" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "MusicPlayer.stop() 被调用: %s" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "公会或网络不可用,无法恢复播放。" + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "MusicPlayer.resume() 被调用: %s" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "MusicPlayer.pause() 被调用: %s" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "MusicPlayer.kill() 被调用: %s" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "播放结束,但_current_entre 没有" + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "可能来自击杀_current_player() 的警告" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "MusicPlayer.play() 被调用: %s" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "MusicPlayer 已死亡,无法播放。" + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "公会或网络不可用,无法启动回放。" + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "MusicPlayer 先前已暂停,恢复当前播放器。" + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "MusicPlayer 已经锁定播放,此通话将被忽略。" + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "无法获取下一个条目。" + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "处理播放条目失败。" + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "正在跳过删除'%s',在队列中找到歌曲" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "正在删除文件: %s" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "文件已删除: %s" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "无法删除文件,它目前正在使用。" + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permission error." +msgstr "由于权限错误,无法删除文件。" + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "无法删除文件,找不到。" + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "删除文件时出错。" + +#: musicbot/player.py:520 +msgid "Could not delete file, giving up and moving on" +msgstr "无法删除文件,放弃并移动" + +#: musicbot/player.py:581 +#, python-format +msgid "Deserialize returned an object that is not a MusicPlayer: %s" +msgstr "反序列化返回的对象不是 MusicPlayer: %s" + +#: musicbot/player.py:586 +msgid "Failed to deserialize player" +msgstr "无法反序列化播放器" + +#: musicbot/player.py:648 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "来自 ffmpeg的数据: %s" + +#: musicbot/player.py:658 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "来自 ffmpeg的错误: %s" + +#: musicbot/player.py:666 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "来自 ffmpeg的警告: %s" + +#: musicbot/player.py:695 +msgid "Unknown error decoding message from ffmpeg" +msgstr "未知错误解码来自 ffmpeg 的消息" + +#: musicbot/player.py:699 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "解码来自 ffmpeg的数据: %s" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "无法提取信息" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "这是一个播放列表。" + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "条目信息似乎是一个流,正在添加流条目..." + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "获取内容类型的文本/html ,这可能是一个串流。" + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "从与ID的复合播放列表链接忽略视频: %s" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "以 '%s' 忽略条目中的歌曲,持续时间超过允许的最大值。" + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding YouTube video because it is marked private or deleted: %s" +msgstr "不添加 YouTube 视频,因为它已标记为私有或已删除: %s" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "无法添加项目" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "项目: %s" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "跳过 %s 错误条目" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "在条目上重新排序循环." + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "预下载下一首曲目: %r" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "无持续时间数据" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "当前条目中没有持续数据" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "忽略播放列表中的非轨迹条目类型: %s" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spotify Album Next URL: %s" +msgstr "获取 Spotify 相册下一个URL: %s" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "Spotify 相册比初始总数更多。" + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spotify Playlist Next URL: %s" +msgstr "获取 Spotify 播放列表下一个URL: %s" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "Spotify播放列表比初始播放列表更多的曲目。" + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "Spotify播放列表包含 %s 可用曲目。" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "响应 JSON 没有解码到一个口令!" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "向 url 发出GET 请求失败: %s" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "向 url 发出POST 请求失败: %s" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "无法从 Spotify 获取访客令牌,请尝试指定客户端 ID 和客户端密钥" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "创建了新访客模式访问令牌。" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "从 Spotify 请求一个令牌,最终没有得到一个" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "创建了新客户端模式访问令牌。" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "获取 Spotify 访客令牌失败。" + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "只有所有者可以使用此命令。" + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "只有dev 用户可以使用此命令。" + +#: musicbot/utils.py:280 musicbot/utils.py:322 +msgid "Cannot count members when voice_channel is None." +msgstr "语音频道无时无法计数成员。" + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "保存 ytdlp ooth2 令牌数据失败,原因是: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading YouTube TV OAuth2 token data." +msgstr "正在加载 YouTube TV OAuth2 令牌数据。" + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "无法加载 ytdlp ooth2 令牌数据,原因是: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing YouTube TV OAuth2 token data" +msgstr "存储 YouTube TV OAuth2 令牌数据" + +#: musicbot/ytdlp_oauth2_plugin.py:139 +msgid "Invalid cached OAuth2 token data." +msgstr "无效缓存 OAuth2 令牌数据。" + +#: musicbot/ytdlp_oauth2_plugin.py:154 +msgid "Access token expired, refreshing" +msgstr "访问令牌已过期,正在刷新" + +#: musicbot/ytdlp_oauth2_plugin.py:175 +msgid "YouTube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing YouTube cookies to yt-dlp." +msgstr "YouTube cookie 已经提供,但是OAuth2 正在使用。如果您遇到问题,停止提供 YouTube cookie 到 yt-dlp。" + +#: musicbot/ytdlp_oauth2_plugin.py:193 +msgid "Refreshing YouTube TV oauth2 token..." +msgstr "正在刷新 YouTube TV oauth2 令牌..." + +#: musicbot/ytdlp_oauth2_plugin.py:211 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "无法刷新 OAuth2 访问令牌,原因是: %s\n" +"重新启动授权流程..." + +#: musicbot/ytdlp_oauth2_plugin.py:229 +msgid "Starting oauth2 flow..." +msgstr "正在启动 oauth2 流程..." + +#: musicbot/ytdlp_oauth2_plugin.py:248 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:257 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "如果此时关闭,应用程序可以挂断直到授权超时。这是正常的。" + +#: musicbot/ytdlp_oauth2_plugin.py:263 +msgid "Timed out while waiting for OAuth2 token." +msgstr "等待 OAuth2 令牌时超时。" + +#: musicbot/ytdlp_oauth2_plugin.py:291 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "设备代码已过期,正在为yt-dlp重启授权流程。" + +#: musicbot/ytdlp_oauth2_plugin.py:297 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "Yt-dlp OAuth2 授权成功。" + +#: musicbot/ytdlp_oauth2_plugin.py:327 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "将 OAuth2 插件添加到 Yt-dlp IE: %s" + +#: musicbot/ytdlp_oauth2_plugin.py:349 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "默认 Yt-dlp 客户端: %s" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "找不到 git 可执行文件。" + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "尝试使用当前路径上的 git 脉冲进行升级。" + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "git 脉冲的结果: %s" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "升级失败,您需要手动运行 `git pull` 。" + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "无法执行管道。" + +#: run.py:180 +msgid "Error using -m method" +msgstr "使用 -m 方法出错" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "调用子进程时PIP失败。" + +#: run.py:229 +msgid "PIP failed due to Permission Error." +msgstr "由于权限错误,PIP失败。" + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "PIP因缺少Python 可执行文件而失败?(%s)" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "由于OS错误,PIP失败。" + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "无法解码 pipp 更新报告 JSON" + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "无法定位或执行 python -m pip" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "尝试在当前路径上使用%s升级..." + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "螺丝刀升级结果:\n" +"%s" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "从 pip 升级中退出代码: %s" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "升级失败,或者我们无法理解输出" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "您可能需要手动运行 `%s'。" + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "按回车键继续" + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "开始智能检查" + +#: run.py:361 +msgid "Required checks passed." +msgstr "所需检查通过。" + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "跳过检查更新。" + +#: run.py:376 +msgid "Optional checks passed." +msgstr "可选检查通过。" + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "正在检查 Python 3.8+" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "Python 3.8+ 是必需的。此版本是 %s" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "正在尝试找到 Python 3.8..." + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "无法定位py.exe" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "无法执行 py.exe -3.8` " + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "Python 3找到。正在启动机器人..." + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "尝试\"python3.8\"" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "无法在路径上找到 python3.8" + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "\n" +"Python 3.8已经找到。正在重启机器人使用: %s run.py\n" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "找不到 Python 3.8 或更高版本。请使用 Python 3.8 运行机器人。" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "确保我们处于正确的环境" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "环境检查失败, %s" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "当前工作目录似乎不可写" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "请移动机器人到可写入的文件夹" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "检测到的 FFmpeg 安装于: %s" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "正在为捆绑的 ffpeg添加本地bins/文件夹环境PATH ..." + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "" + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "在 Windows上,您可以将事先编译的 EXE 添加到 MusicBot `bin` 文件夹。\n" +"或者您可以通过 WinGet 或通过运行安装来安装 FFmpeg 。 在文件中。" + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "" + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "" + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "此设备上剩余的剩余空间小于 %sMB" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "\n" +"正在检查对 MusicBot 或依赖关系的更新..." + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "没有通过 `git` 命令提供的 MusicBot 更新。" + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "无法使用 'git' 命令检查更新。您应该手动检查。" + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "以下软件包可以更新:\n" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr " %s 到版本: %s\n" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "无法通过 `pip` 命令更新依赖信息。" + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "无法使用 \"pip\" 命令检查更新。您应该手动检查。" + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "您可以使用命令运行一个指导更新:\n" +" %s ./update.py" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "值高于最大限制。" + +#: run.py:638 +msgid "Value must not be negative." +msgstr "值不能为负值。" + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "最大日志的值必须是 0 到 %s 的数字" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "日志关卡 '%s不可用。" + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "日志级别必须是: %s" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "启动使用 discord.py, youtubeDL 和 ffmpeg 构建的音乐播放机器人。" + +#: run.py:669 +msgid "Available via Github:" +msgstr "通过 Github:" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "为了获得更多的帮助和支持,加入我们的不和:" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "这种软件是根据MIT许可证提供的。" + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "详情请参阅`LICENSE`文本文件。" + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "覆盖 MusicBot 中所有文本的默认值/系统。" + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "对于来自 MusicBot 的所有服务器端日志消息使用此语言。" + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "对于来自 MusicBot 发送到不和的所有消息使用此语言。\n" +"这并不阻止每个公会语言的选择。" + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "打印MusicBot 版本信息并退出。" + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "跳过所有可选的启动检查,包括更新检查。" + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "启动时仅跳过磁盘空间检查。" + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "在启动时仅跳过更新检查。" + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "禁用 MusicBot 在无法导入时无法安装依赖项。" + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "指定要保存多少日志文件,介于 0 到 %s 之间。(默认: %s)" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "覆盖配置中设置的日志级别设置。必须是: %s" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "重写旋转日志文件时使用的默认日期格式。这应该包含与 strftime()兼容的值。(默认:'%s')" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "版本: %s" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "打开了一个新的 MusicBot 实例。此终端可以安全地关闭!" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "正在加载 MusicBot 版本: %s" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "日志已打开: %s" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "Python version: %s" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "更改工作目录到: %s" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "无法启动机器人!您在错误的目录中启动了`run.py`,我们无法定位`musicbot`和`。 它的文件夹以验证新的目录位置。" + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "为了取得最好的结果,从同一个文件夹中开始`run.py`,你克隆了MusicBot。\n" +"如果你没有使用 git 来克隆仓库,你会被强烈敦促." + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "证书错误不是验证错误,而不是尝试验证和退出。" + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "这是一个确切的错误,它可能是一个错误。" + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "若要轻松将证书添加到Windows信任商店, \n" +"您可以在 Microsoft Edge 或 IE中打开失败站点...\n" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "无法从默认的信任商店获取发行者证书,请改用 certifi。" + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "语法错误(检测到更改,您是否编辑代码?)" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "语法错误 (这是一个bug, 而不是你的错误)" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "" + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "尝试自动安装 MusicBot 依赖软件包...\n" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "好的,让我们希望安装依赖关系成功!" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "MusicBot 在尝试安装软件包后发生导入错误。MusicBot必须退出..." + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "造成上述错误的异常: " + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "MusicBot 正在进行软重启..." + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "MusicBot 正在重启整个进程..." + +#: run.py:1169 +msgid "Error starting bot" +msgstr "启动机器人出错" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "关闭活动循环。" + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "在 %s 秒后重启..." + +#: run.py:1183 +msgid "All done." +msgstr "全部完成。" + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "好的,我们正在关闭!" + diff --git a/i18n/zh_CN/LC_MESSAGES/musicbot_messages.mo b/i18n/zh_CN/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..ad1a014a9db2db619175c2d3f847cd1f9d66bcc9 GIT binary patch literal 47645 zcmb`w33Qy-b>~@jyC*T6*glROud$2XBrya?TCye6i%f}HXp0ghl9HDwauFzyB?2h8 z3J^s*c0ftoByN(pNL)lw;$}%CsErH2#dAD8Ihjl*v150fj5}#Nr~=?gA5Z!uIq9T3 zncx53_ulsb1Su!eK05rPs@`(neRqHF`}`Mgd&Bku|GVXNg~I#5-)YgOLgB}6&+yIs z`Jedw8St;cHgNho3WaIlm%w|#Z-5^I|8MYm@XfzoDBKF(0lpX94_*$Q1zW);_$l!1 z?{r)U-oWRL;C0~l!8zbN-c=~f1Q&u=f&<`hg0FyAgZ~-SxbJ$m&odWX%;&p7wR;Kt zF!&eXZ1CT`r%<>F{5YuZzX{#}J_Bl;zXNB0?}uou^9$fr;Mc)9;9&UvXW%FJ{BD@0 zc@~1d0sannEw~H34g7O(7C4U&SNM(h7Yc6!uLSw8a3lZd z_cEyU?*)GVeh<{Vhdxj!yb=69_(AZ;AVU@Y1ysM^D8f^42{;e@DJXg_WAo;MUj*+2 zcYzDQzXAUSyq3Wp0cU^6`<(@~{@25_FMyu`wZ09Y`1xmGJ2>qlg~CU{H6Sc6ya4_d z_`idY0d50-6n^h! zForDr0r(m4??CPAl?e6wUk49BM6&Pz!h?tuc7upi;Usu1_F?bC8AK)$E3k)_F{BIy#3!j2%Uje(pJHX!u4}e_tJ_f!8tg)D{!M_JUmR$H-giZ5(_*3XAH~`)c zo&di9&ir(tFdzH|SOotAsC{gLKLr05Hs`m&AA>i6pZcuJ>x1CEeEt(q^7>hr@qO?a zP;~cy4qX9%4_pZT229|mLJ!yp9s{+`cfeGQ`(;q{Jp=Mn;YZ+&;CrrjJ6H;M5Y+eM z-~w|_*U?D!1sZhz$?J# zK+XRH@J-;~f;CXg6P@*dPkEzYJEJAIF{pXhfX{;eNBF&G zsoTLPz&G;!)1da_IZ*ulGf?{~WAq*1qoDXP3Vs@VYlp9Q0Vw``9TZ)!f|~!ofRdMY zmR%m^gBt&P;FX|^md3jZ{3LicI1k(jYTh4%bHUdybA6o$evZ%U!6Nwk;0M5;fiuCD zK2fm@(>6!)>`TTkC8gK=Ot127_pZ^S;%jdWC z_<9zDALsK!p!hfxzW-}b{oYq~IlUcx51;$MPk~#&BKQXZ{~El4&%fI1bY2bqCZF#G zMgI=42>usv2KeT$dHYX+`dkk97o@?aT@%ze@2mSd z=7Z|@4N!7)5EP$&3celu7f|bYd!MgoCODJNE5JVlcY_}TEB)vaxCgup{5JT0@Oz-- z>Hh`44o<(%_46Po`TQ$T^7`JD9*^G%-p1$W!M_6k3H)8~FYk9fyl0i;4)9jK|3mN# z;QJW-GvIO%Q&l(w%HI47_+D`OH}E;&jiA~;1#SU<25ths{yR?hFMreH*;ybaqHqS( zdfxLbm(%OOxAD0b{4n?+sP!EQzyB0`7oXn>(cqDzs=`$;CsO)I1POLYL9zA3~C*xK>hyK2i&gA05$&I;4i-py##-a&yPOn_V^&E z&u74E!9NDA|3lty2B>x26+Yh!eu&T8LGj@%gHxD@#|%9KKL{6 z7VxSK&< z`K#c~;OlleejdD$&yR!RuTHhM*6X4TeEBL42 zZ-W0G=1V?igLi_jg5v+L>~?x?2gT1dp!y#L7lR|O@81r-kIxT);=?}hZQ%a{YQBF4KMa0(pXp!o9Jpy>W4sP%0HwI45q&wmc8-G2wQFYi6-@;D#-BA>qrYTo|{s@*?@-`{i0 z$GH_0zwQG?&v8)l`;+kdy9T}A=K|gXUdiv@0_TD+f$I0Sp!V-0$6asdf;aQ|A@D=s zAA+L$Z$Q!WZj6W8e-_kuUk2Ig!shUK_Djyca=@)%E58qeqIVobWeOj9*~j}1C^=~a z{5g09pZ^;uzI}*I6W#zqLSY%G`QP=b+pDWU?N=YDdG>|Re+a7IKY*h9Jtyc3UJHs( zhXeivID^mcIO*SC7jPA*@s5L{`!7K4|GQ4P-B|*PFS|kU>AT_cXu!9e_ITuK@Xh?b z416niAEEt_R9n{HUGC|tx3#3^YP+mf?eF!r9p%nae^=B&{x^zz3y! zrB*I}t-st~)|xcYvi?d}N5+uYrLV8t-D?Z4mAk5?4kNtU-&gFdRolz;I>grdO0~YW z;$j8~3kpoQaE$)mj#6J4c6HITx7^cF?rC2I6ScbjT6?+JUhOCsmzF!Lkk{GY#UjJ_ ztTPOEU01bzMX^*AZ{akY>93b-ZN}s4yUL}SEvL6!Yvt?v$}p_j-K{BlYvs<${oZh1 zrLL`?z^(gAU9h9tX#BVdm~TS73|a52)areKkXxi8T0rT( zQl%?!pr^C4EbMgMmO_I{tynMH;-c6uK$KlVO9)N1Ua^(mc*kuEBzftJ#kYm2?r<@K z*QRu)S*%R5Ju`@Ed)1~E-<`*yj|lXAtG88pD!wtM6jIs=<0I(hT6d*hXB&KQTVC$V zG(zeprIfF%r#u}FIhi4K5)Auw;y&M?XuhmEEW12W4Znb*BEDdg(Q0%L* z!NvZbE>k#Ux!PU%db#6*L4EP!Yo)KAl+olmv|S`amRn`8M)WXly1=NB8;WR1Tr~pw z1B)m0K<(O>yHS(YRZwMg7%lDT?_P=yqE!f`Y@IjK+Unkkwbxcf^59NM^j%7K7kQ(| zI}C3$JDRdjX5EaL$)sB?UrqQn&-vWE8CQzFTpta~D1#jvF0W$ki{>&|Q`+RTlVW2O z{Y7fLyxi4W>?_Mo7ZD}8KOvfOppbPrr#*|+@iD~hnFw?A4@>(E`rl*%Px?)z5tLJb_p zZLQD(7zOJY<>w;pYvtZ*O>-_?l}+o?U_ES9HuK^m-%^$t(26mP?bRCY*IlK{4CBh2 z$=`+V=g)(Mw@Qc=5{Z0K+uu8_aCv{vik|Aqo?=ITtt8WaMPd5%xeAA5w4*)-7d&VB z^cH@;5g$_Sm_A+nG=Is4vQy<5MgGCibybPF)VEt9k*U* zk4@W4?d{e69`T0m)20{ZCQZfR+d`MHqT>8{n4#rWX6;e%;G8Jm*IMl%;0Uy`33ruh zJ*;yML{9q6dJ@IR7}S2$r|?V^YEi;N%oE7gRjM6|*P*Vj zR_#KRqzU|5?kigxELF|rA@}7i2rm414PyFxdP|asmCK3KEJBRpz($v~Lmg8Mg0!(9 z^SWsr_@y$wucJOyhZW^=Z?OZt3HH9b+)*jbun5!Ep=6_0S+<;ItYqy|(CyLD#eF60 zBjznz#$SR?l>~xWz9*ciz(Ib)hMF#6z zj)-Z*dU44ew;+Sq4S5G?`SO~@852frnM+7&ThUkPgBaS;5BX;pxr|bUj89>!XoxP$ zf^1_4cEN&BGxRz7vUO%W4Z~@v@@ZK<7qWmGV4!EA!KsH1sJu-`2*l6ivhU>L{_P^iZ540;d$9xN=6ZOeqP)z$R$E_O7bM zCSj^zY?e~g>uZIfp2J2$>V3p(-Qsek#{~)Lv(;!enb6+;8eW+crMFhOPvPpk1yOV+ zw8QkS2%D#!vvn_*K7_Sj*qAY6Rl(#Nf$J-ZvrscRm$O8W{g z{^Wi~JegH4!V@XdBhNqDT5iSB&M{$`yKp|TDLVuKo^eS#RmWppeJiDQQhxFQ%9}pA z3y=>V7FDpKCkm&?!+r83A5^%0LIqUYq^g11$Au*QcV$M6O}iKs;fZEEX;8}zZOhus zQm9<6IK~tms>$hKkG3L?sM-2(PRm#cVfu9YP5E3T3N8g>5kjuwd{vh#RL*mDGT0gm zsW7U_+#r&u$&2HRj7Ts5wuyY)Mkl%IE2G;%7erWR74FwO^@+jx^`25PVibPug5pRC zhq?JsYK9)K%GH$}E3VZ%6B5#i*_AoSdcRpRt7c;gtbISqB6`SlT@I}*9A7MJ8OU(Rl9dhXXsw`x4aug0>{SJ5^y z06An7Q#tRoxz^P0WTREJ_ril1lb?(XrP_sK47GVTHfAM48O$tLaUp(9#=lm*uR`Qo zQX!NmBlgnT^X&`Q<3^bGvhGrCg_7CJ%;|d*VwlVgd$^W#IN2wOn1>WzDAOWMLfM{h zNO4o8@8}zelQWv6DiL9to{ZOFEHD5)zFA3nm|y&B=Y`ZjfEq zmvw3qB<$6DE6D@~GMUg5G?`^aEy`Ibc(Bu?d1d|*`%^SF!x~8r@Y^~g3G24KliC&L zSq>~MEiURMHR@cY5Y_99@e5{^U?o|@2-{kTN1}60A&s%!O~1@51K(FEO$2SiZ?$qz()d?Gxm{|$J9JI&t zF8MH%5(_RR!`K8x3|>IUo#%Bp12qYThUzI%ZzMOdFS8>i4*YHfPcdC;qg_rsjr(oe zlnv%tXW~}B8E4D1%rCGK^s1{QFRL@(;>=h=ft>zsjyaHdY8Dl&M?b6Zlt$+X+CIy8 z;8DqKYvBezR86z#rwJ*7?RmEqaFW58m}Z%i)TExfBQ-j#rd;-#V~3c4avzkLULmhF zPIO%*H0Feg_*!?Z?`ojXsQ zFV|>=rOfe&VlQ$zAG{D{3W35Q&C164!yY0EqOY6Uu8)|l$~k;`kPmG{`kE9xyRi>h6AM4+GUR3IC!BZNV! zT^;O-RM)Bre%5H8L-4DbyF%)yL9D{4H>XW`J<%VWHpVEwj>RzbvfGq>&!2Z$BpnI0 ztxP7>bNipsBN7U%Z%QgdX8JlXTA=A`5l)lDs7pEt!4*q7NHTx03N`#F_f8npu- zD4l_ewQ$%Eev*~Tw^ih(MTJt|#MOLBl*S^UGwkx%@LnXX_)!>G>Lw?+C;#;oR&fYr z)k%xHql~s7B3haCiA>V)m)AMm)7_F@+qG`98xzA}!m;K3OWW}NGe1vw(YmNgqzjAc zGvkiUEZlH^JHfqNlC6}_$Sx5vWvZ?iYazl)v9KW=>QT*Jg4nmtU8d}RIU<0N!0AXn?qG!)v6VB<3-90C{}b)ysWi#SHDi3sATy;xu zBFh?P-c?>Y^XA2i7tXxdR#cyvTcmP~IMB+KE8C>@IAYzb>MqYLDv2SqwOmMxk}!s> zXGXDO6_IUV16}B-KrJm6&G*Adb&L_YWjAuiT3J>=wl^B-+jAs(dfi4xfmyYvsNIoJZcGbciNAe{kBFW3unknJpBlSA9Y^ z@c?<5eCWV{I$A?KE{q|=>4ViB<;r3b457i^Fev9Zh#UOZaYf;#z))6#2;N8DZCelD zls$TeZk?FdYhQ>awF@n*gou(s=EjnQ$Ev8=oy>}R`k?K|eWxP z{`M~76lC0vZ!G?b$xd*iVh1~^>a)!$`AUQGU3RKs%(cJ~@AO*d#&Z?b#RH;vLg@uL zcpWSO)}yUJ%|Q2h?j*6R+Akrqn1RD*H$%m5svsc+Umge7IKZiOSg@~~3m)cPVtBV* zUgW~gsq$op4Q`|Z2g$`(U|2Si z45(S3O3$2P@HR8^?n-P<`E{LR;~)_w=F(v}^3>ukwGlp|^ga?>!7+05ZiT{> zPT1B?&M7X=dOM2OpnhQE$4-4!woscn^DB$|a?SjCch3x^Z`~W6u$OY})HGs+l@J)k z_KQC3Lub`W@w%CS1y+V%!*k^c^8M{rl}ibjm4m|lI%+?h*s@>=2KEzb9F ziO|Oif-m*X8YA3v^S35b8R+*F^dbtMMK`PMS%l%f%K>4Zy&nAu&Je-bD;J_SXl{%^3XuT{` zPrXuMzwN?OS9Vb`Z33%t9%l5{`6jL z)V+J+se2kCHTByOcEvT+w5AngiX^_V>=6ut+`GAK*&Src?uO-q2(uvgNk1U-TPHzC zx$ax5;V$dNo78b}^^U6UcBZK!pWJ$Lm0h>=%~`?^B{Y81%VKVK2jBN!eXqE!%h)`~As z&MKc5M9m_6EsU>>Rkku6Sa{7#o<0REVc?14YHAv2k!Onc#%;uqabzQS0o#bEhL}gC zCr0Ms9-Rtt#L8g&SMA`#0`9M*3t!jfC`sor$cmN3*%{3kbOrH<2Fgm;HS;Rr;+Qp5 zK7)7!2KhO?6hU=Ml6{yKPkhWXMwY35pu8h_uqnHQtVH5M!xHyz(zvNoXrW}LI#acU z3w>1`8nH9hPKJ3~FED z$-u4D8N`c0f5H}|7 zSh)Bbm=In6VhtI}k9Hcf&<-^hmTNcZX~1+48l8ea5>{AfSESRPWBs^$VUH*wO&1Di zf$^-usz7 z({e53?EE5F+vIP9uEnp-T=h`tWCTXHOIX^Uuz1tgG)8EwvIlpyrfw#Jbb{pM#AqR# z!J}|m`KVcgl}MEW^zf6N-@8xIjhG3KSQRa4^Qhi`@TfjLWuaRicvPk^G04^WV!RUs zVcI1OLpbTwGLz8xZ4-vAF2i-!=jg9+!yv}%SQ<+qLUa=>j7D*pCw4Ozi@R0G#tnTv zwsM)A)@8~&Lcdv_Im?7)eV1~nfrFYJJDA8F@8(LLK1o*V)Bw8R(pK~$C$3Wwz26fH zvm#Tu%DTAbi?ZS+1I9{l@%mKqWm(R`V)EmB#Z@N?(;UYuE>68TxXs;J&pSvdk5;#` zywr?0oYN`q3i z5+5^So3bg|3b)(i!@ZUwglC#g*%|;1ES5g zcrt(f=c7rb>g4Tw8}nlD5kFnEn5stK!SxoYy{h6ol}$_Rad zC$>ztP%sSkc&I4XJ=yT^L0ikBT!*0L*)!8}g>claaHyr?udg}3uju;kk zE!ITC%aqyb)y%IQ5&ddqaC@?k#z|7AwEM-2Fhi*(D-%coR;*FYmUS~4M=lh8H5Z(y zgi7tiB5+&Fmq;|kDHmv%A|^+Z$*>_)mL2sg^_2BjP);jeWtUIuP>NBIG*05L^|eQT zbKBQh?jzE)2*`_x>KHsxTx&eyM>66em2a82GHEW0DKmphW?i$e$JZv7xfYt637#c0U+q=VZUFSSW0GjegE zOUlYIs&+?@mD1ead(dj}XU^GtE$YAcVb($X32H9-L&6(95sc?mG~o)b9V3|{O{#c= zVv-XSMsTLmztp|7vaFv6iPBL;Z_01t-Dw>Xgx+?58S-GMf<4X+v7$2{Ub&vdyc zXBX50EhJo${Zfm%Z+6GD;_a58yhdg0qWyod!dlinU+_xVUFMY(`Na#PS{J(!MKHKe zzlee$AQYxIX3S%mB=pIm4sN(e#3ez=nuSJ^$;sbEu_p|)E1mRHI7l8Nfs#q=gV#aq zWdOoh1PkrxosL$dO@7>;99FjiFO{+^z*13+D`?y_(XC45URExH9PU356j%!B({yu< zj4j2s_j6W8G#kxqlTVZ}L(SXQ%No{$0!iJeXgNq(~uW z5{ke04cW!fPBKI>i+dF&+{d+3RNtSMsC->J@3P^wT6JI{vMUOKLpYj~o_4GLc`O^1 zUad8d=^qayd6?uS0Iv+1pdfQtMm^W5h-Qgj07r(s0-g?y=SY>a-BC+>#|Ris?Fvim zh#&d!#h6q~pZ<}{xiou4c(aH;a+g^j3ri+3Qp%T}3?XgR4RBF(sb-<})mFI6-VGrx zgs3EjO@Rx6c5aLXGC?y=^JYJfdqWd}SVI zUDx$5yBp(SFoh=n)jGeU^-izt%B}Umq)Izx zu;mVWi&yJ{`m#z#D-5Z(F6PEy%fj0hx7uTsSIHsRd{Mf9IUDY~!cI&KbinFes z^YM@I$E;a2Y`ufm7pQ1_VY}Ja%$fbMmRopIt93CI{W=ec@dyf6<$1ikpMrhsVxIq> zQ@oz@0hK`)@wjQ1JxHBe%qf0-`90U)+OlB&f*Z00%x;_2ay_@0Sz_yA!k9VsX1kfl zU8Uz!a^p3W?=wpl-`ILh)=mWQP-g25J(Q+#6?2N$@XD-~gzq5a<<`jEZ>GXg~3y(k-XSaR4wR`ET z*)8Fz{9I-NdZ^UbrwG^9(;Ua%yON_=&M&2O0xsCO25Wqp|+!@h1;7 zH?C_O+ohqLg!Ma`N1tu%IpTz;?;)pg_VLDsP5A|loI09@Z5&_Q-2TeQsprO@*vE1M zwe(u^!pNCj`Chp$d&dU1kFVRLRXqIk*x9pV0~<$9ZQ`58*1@s!yGM^aLStV7s~+Ef zdQxBLY#iIzSaZa?jGTT%6z+b70h=2JntL{koZCD0>W;>mmq%Y7ZalWJIka_T_}S5? zS7+nAxMghH+2)q5jV%we*wJlAn(I&UtF!#n8gXcF3(IQm+0=M=f8)s`jYrRp3?E>g z(K7?7;S=XZ4-7epjN+WiGoAI=&^tyCt>zExfA&(@=8knE!zX;{z9)@i55|#MVSF%r z7Ulkc8y4>~z|SSp(I)946IHXlbgN6#HVNmFkI zW{qR(o@3#8eQ||i?a1Qz-lxWQZE5ZqqA@Zxsju^SO09REIK512jFs4>5zyZxwvmCy zeZWbq86Vg+c79!R>z>h9o@wqoI5zl<>xO?ba%x~?X!q#wIyWAYBQs-pt~5@c$nS)=ypVa5NN|=jpmQRxqD|A`QQMjPM80~r;Au2( z?1N-#f9hD{;cwHvx#xvRE#16{@uyEP6e^PMJE?Kd@8O5?bjo^7l(s;Fn=Z3kYLB|? z-8uU3iROTeoSQLQ*~swl$l2|qXNDRFUd*c{of;P>e00NUY|W*Y=y=f)-feUdh#ef+tNV}q-Get74?fkPP^-0O>Q`-ayDKb;y%0|bY-@8Ia3M^HC3 zm9=K?QB_?zdwuKJxyRX+Y$rmmfySv*V~1CZvoAl?JhP=SczW!`{i81qH=dGj%1@C- zt{0mRA8b4-f709&2bikIgduT0)@FS5&XJ+RaqQ9U=)ohS+g@~gf^|!dX#Tw9yXW~E z0Mbvk^YlX*#}DDqH#RoCECoL^&^Y{v0*cFtm75)K@VIQdfZ=~JV}c0$_p0?uP(_@GP7$S@vw>&Vb% z?#+oNvlsjkFO(O}tDc-cFVoMlqle%)rm=qQ_^xeQ)2Zj?&(p7s1Bdyj5X|&W%Ng1>Hh2)j z$%es27e;ME?&Yn%6^ipL=EDZNy=t6#u<_zRT0y~o9vK>95e0a232&D<7ym1>+~#TUy1@F9+0^wfy^BZ=tH++_CP^ z-OXJOG*-*=T-X~0SaX8F9MZI_DD%c0ILpSXM34uYd(UGyr|RcCMVkmvC4m>%Ys42w;>?uk!VVA7|T0c5`7$r{u z!v%bCmSW}Mq`$jWI{oS+qh}u-9o_>oN4LFdF{XvE17?~UhaSMclf=Lrj0gb{3GMlco!R1*m z&4Ud>=8KbF(JDuJ{L$1EW4!Z(b26J>=JCY`T+x^xx7B#`iLsL}6F#9W5HdQvU7^&& z+eZ%`$-22w2}Evwj7^;okC3??*p+OFb+g@YE{zPW&A)gxZ*{eDGkiV)J`>gV$;m#P zt{fG|_K$8|OCy}f*t%E5znE!`9a@de$E!vkAx99z$U=$9!W&kE{BoEsm;9yeR5m3g^0ncJC*b2i7JaN-Kz7^C-#qNR;&#^ z%qi1YlW3gOn!)j|Atbe)jH|NlUk$8oY}!6HxJhPi-_fx_OZA=Qq>PQN&%487H~dQ` z6@{M6J-u%HnJ4JUKrDXjnddz^w6$613*Ajxm2=V8=Bv`?1|w>@vO8O+A}ud%ofV~J zeD>~dz7R?;tR~MFd@!>ZHB-4V%tCYfdNJ5MjB(L&-Jpk){mu)GZ3luZ4IahXx&4#6 zxtUDX(VVT@9T-YW<{*-_^&LIn$;rs@rqPE^xDj-9ZEVp5PK%^&@~B$}l`&#|hIfn% zzksbuJQ+K7ethRKnM@{MHOC z+O$T&Ku|L?#efcHH`9eh8)uO-Zga!(8-OQvS$Q(E8_i z7p+Ij$hk-8txbz@lU%}@n9iOW;%%yV+d`z^RhH@g?bzW%#MVlt++KSS1j)%jNg6gh z-q>_J>Au22uhdw?)Ht|v?AbM*PN$Ap&f#TLs%{jS6c8WWIllkZv4?hv4<17(#U{_O z(8)#Cgr^yU#Z_J){26r_wz600oxq$D5mu$)gRe z9XtH2C$cube74W&i6TO%cNL|V75!`9hswop&NI8q;cck>@pY(086}I6#Q5v2O04g& zY*}!deSKk5J5!LcIP-Kqc4oB8J$~`6iv{SSGc~^bl$pG5%1A_po2k+L$H)?Z?E z=*QN2Odid(YEqP8RRM^Wb?^*{LGCT5McF@;YU`oKu?rk6T$8CHIuv z$;^n+?mV?Ml!dI)%C50f;}7B@)_Sdk)(XJ4Y#lkbJD9EL*F&?%Hs(jr=tzTaaAW=M z#_-Tj2lm7lp8j-TuQygGVNQ?`BdK4Dmyd#W+5to{yv`Io8sGbjL~}RCJO@ytaZZS~ zuGe;)Iwe)y^1#@@gT61KA)K@1PGM9B2)lRcrRJ-v^;!NKvwnJmq?a7X50myDKm z8_ymm%4!^YhEtu<=LeZ-?EF*B%?IQAO5J*7fjXLIziYeJKj{@#d*UjTJRT#{Q6%Lb zjoui2Dd;gfg(QZKX=dRgD2M~1-2GKg|y-6 z)0iwDpVhfPq-Q8#$)oNFWqi3DXtZMR*x;ej;k7H%{LD0Ku_E! zXS77$hYyy;G?ym>Wo#3Foj*B_JFk4MY#h1!7xp7G#I7?v*{7hSC0Ml}Ic%kedn_=8 z{@^3+G}RTJ9EA*w0A%d!3nW;`Y1n&96f~X7WhN`|AUgda)%Rlg$j82L2B&ALkzAhT zKrT45fw+*Pl9OV@lAQ0|9}^F@!oCd|)6Q4|Nk`mhM9{Zch8oK2B$pCD6t>swZ?iPoNS$qDSmgj2?Bk#cDjyVdk8W zV9*i|terH>%N9f~Pf%KVaf%U*SP0CxAIPy&4v$_4B#28ioQEc-HlZKd*j$^ee{p_# zb*Ni$M)wu_vYJ+lk^7^*v;IW*^6^a`&8iyf@>G!VJ-f*j4;kX@V0_z?+L0DAE|Oo5 z5Lg!JHNT7v4u(|5yqkQ7d6+PONvn66^y*MNU1RObET*}Cy*CI)BDn%@s5PFZMpskyGTjFJ5Go9%1^Z`Ayc&AD~Wkf{2}L-M2Ig zB!7`Ni8jtWK;+;;r3}j7@(J7A!Hn;HlEXh2Y6UY}DOg$g?$}docno4l=mvH%47=g# z=c68#q z0e&yh1{Mow=IHT?7Y5pku*c%Jcf$}14ow4w9oA$x_$-eNea zJ0(x2+NZ_8n!t*yx#hM5arbJc9si}Jc=VBP9Qc2+6GKn@ttjJaikP@T^+7m8)Uoz6 z&-*yG!R{X|9n4Rav`$)3IS*x|J-&h>#&aG72PSM0GXTDfm9Mhf&BR6 zG813X83GvFph?4FB5kkT4EqwsR+E{&0Ov*z4U^gAa~gWLj2_+4IH#kgTl9X<3tz<< zBfMbd(B@j`f#;bU9(Z|dwXQTw z*vg5ka=Mca@S}4e1qPahy5*V^e$?fvjH+B>*kVXaOg>|<8v=7bUiDdhNv|RwvfhABwN=o zQ-7bZ_`wU_&iO$cBX)Ag8+f2Hfhn&sR(eI}|CE9BjK#$UN;{n>g3ho(wpik2TOQAB zm->jnr(ReZ#!U|g)9^exd9S?t-g`mT!)dw5jXHMPx;ZQ6O*p2V;1LE-dX0zXjkT)% zAvd(y-HT*^kcUv{J1B1 zWP9fF!nH^9(Bc!JK#CeU#-e`X1LbeJdNvYUhtrpQW8W=%FK5=)6K|;_SK1C7<|Ml@ zbciT_^zdV7m&!0_H;L;5XZScPShStoFxLT%RvTP}+4=lom3)SUk}ykgq=k8WLon)_ zk}hQx+^L7OKbCQn*x9Xy<|CX8Y)BM_O2PKyY|iQxD3#=`xgI(LEPg7U+Oim zSeWo-xbP}*GG!M3{lp}cS|(nDfPy3_S?CI{bOy8LWsbu5TXAmEY!7}e(rvQ`8;t7t zgS6SMOF;%PGXpgat|PCcfi}^&j}3Mc;YGT}R>Git87;o5FdUaQ(tR0B`REaDC(AT= z7R1i_?)z!1w89Pz7&wI^;zv}JV%&Hg1Q5xmdyZ4EB#>dr8@_hzh+WFhMzSc(f5}+E;|`&Z$j~A9vdefbT%`Kk_7rt4pacnU z)=zZR!Ox3A5sJGbIzI9{xo(l9V>vrNc_4XfuSp|*cAF(@;TFWh1Nj59m)XyXP1X&C zn><^%jHv^}mO?0N`Wd#Hj2!!DlH&W3q1}yBhjbEdR@#+I{Iy=$L`eDQ;Z6Q?-~yFh z4%fv_>ni(WUci0E_`p6aoTzcl^@aEVp+)XedTKp^!}-TgM3YtHGn(>?muSDNdu?36 zc+U67)2FQYq|$n-1hgpag%7SBxFFwTPrg~+_%NBlCaaV`tkGhW9on&be(no}xPito zVn8ll4$haXuapH6aKa5ds5uu z@@ph}B9FXzmXTwV1juf|xIC$~4-m}uFLHE_19z1Rrq>>e@=+8tg+p`84)V!uA>5uZ zYW#Xj`dPafenzs=_1K^<PHu8}JGZIR$B)$=D|a`iIV z1v^C>8?Xnl{MH?@z8*&<%2)W#LtaOB&VtEJJMN=`#mL-RZwzhm1S<@iA4ieK0S=c{ z)$^YN-(n*x>3I>DqwcX|$GjCYyW3)JW0oyU^)$TP$rm9v)jm@lle#9MpzBXD`7@O; zW0_P}c1DH{j0`=-n7O;Y$c;Uk=G({rH&na_^W+hK)1_Bd{i^5{DUb+tzFaxYU5MK+ zO%aSpo@~1|wC*V9rNQtHtsQ^<36%gT-3|@;9IVf~rpPteOFzf=v^AWzlgN94bNef9 z02O~b^MZE8lgbzZ=qb;%2zee;C@!9-Qb{oVX3#Sq<_0<$?j$o=3q}5s*&a4HZK)F3U*+-pvRQwttTwTpV<^wB49Hez;)YSmQX$#c?pJIMAl z(AO^mX%}xu5khF>k3N`b=2e%HH@~IrueuE3^xZ1I3Yb#x^cwnSg9_9Z!04}shUV!{>FS@5SuZbH10iNB}HtN(WC(!Ey~LNSjc zs-w@qzI=3T3`%EACUenl4K>z1O`?e@^sC5Z6Rh|uzw{R-mE3u}XimZ{u68IsAP_8q ztu%yj{=AYGn(T>1+9&>J>+!Gjo5h5gg_A`#hnDm(gcW2IdOa3W6kbY6XV*v4P;|p- ziLdL?$~`@utyBcRcj}ano5ISLbor6{KVFtdd*qGAjz4Jiy0{6!FS3IKHa9)?@)bM_5<-(g$Vyj&<%QZ4%q96Rqwr#(T$1S^%3DViSJ%Z_%SK_nEE)$}# z;Lq5GEr<^txR(wzqzmLzHWlqQc#?})yV$TP-@&bZb{jp!**TGdZNX&QO(q8Rn8J;V z=1C!$UqQg0*%}|^a5-=6CnXQYFYD_33&)-AP|t5`?0yQ5hNsNhO%<)#03HE)oW|@~ z4}WMo`AVddF=e+W_%R!!;4+LztG;334T6|NU1LV)#$6w)4{TpAb70qBk|tcV-Gmm6 z<2=b1?c1xX^R8M0@buu=;D!{%_#;iKLTniDzu|hSc7zjQAA=_VQ_hCd$VWC>N>=xY zXQhyV*_vzwU2yZa{$*!kAF^G{3iLq6q@G!U+@68ZBJCloNtf0)oYTCFk*{%D@^8ye zXZ)t+^4}&8TJ`?ZI)XsxtOm$#dTkANG5JwbX9$uAA5;w*(A}6qFneDs1|MQ-=+YoT zAKXHa6|TH7i5++_iF$eh7P`gTi$1&$norNwVbY-o&#N>~p7aj+P~BfgkS>fCQYa3K zRDq1wr6%7dO6|f!8(zdbvt#U>ou_&LlCNUKq|DC3q5|lg3u2|xo)?*j_@r_dL%UtQ zr8JU23&ph&=7&_Ru$mJ*b|&bJjAQFwme0ZD`xz??B-AkOpBm<3lFOWrn-4r?HM|I( z9%oGRd22tl_gQ0^!^rmKNG?p7p*Aj%N1R@(FykwqGz8@O_s)gasPIHxWil!Qa$@me z&0NJL7G717pr%HkF;VjnbTLWcm0c}x?Qy3acE_Um&p`Ryx??T`$Y z(NI#0xuC|Q&*+nsydMZ{6N<&sA6V&R;C#r7YrqJ|5icji)6ug@6BU8 zvvX`G5e0in%!>8M-z#X*+Fi*pEAd%nhUfn>%L0}eMJ#KP*DZ$dc>LTR&k@7PAt%1wB4c}KdVH5I6JM$+b!iWwC!g&qu|%qU8O zPBc`S9X!M1l-|zuC8?_4l+~u~ewzL8_vr*pwfo&9^jzn%?J!l9cyBu$5A}A1_%~gY zfsvGbVTZhw=d%T;UD;y(C5oZ0LAaXUrKm?uxCok9;>L_9AbSvDQVS1_XyJtbr-Cw?Y9sh z=?*#C;fhK>TD!P-gy5DT@127McdvqU^S~H^7sBs`8!<@^K9G@`=7-65$i)-522Xwb z@GN(A)!mNEP+Xri&EIbo?=zv9IG9_Piw=VzC0p;&KS7YpUUm3zqJ&E$L%c&;x zBAs1(p~KkF^CQD&JyQ(KN!_wyo&}sFL-zbzc0wyFYKxMlM&~jiv>1MfDTDUgGb$72 z$ajn4soQe)++lp<2`QGnx=XTmA!&IoIAH`b6DDzb5_zmS|AY)#(QA>HE?VTuoADJ+ z7Z4eacwH3DIOk6hq?l8#!di}4a54q)zU?96ncy_18qBUc-P@EzeU3|XCqHF9)upHjbTl{}SzBJ %(max)s)" +msgstr "" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "接下来玩!" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "" + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "尚不支持流播放列表。" + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr " 通过搜索查询服务搜索一些结果。\n" + +#: musicbot/bot.py:4432 +msgid " Search YouTube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr "" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "搜索支持的服务并从结果中选择添加到队列。\n" +"服务和数字参数可以省略,默认数字为3个结果。\n" +"从这些服务中选择:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "请指定一个搜索查询。使用 \"help search \" 获取更多信息。" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "正在搜索视频..." + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "未找到视频。" + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "要选择歌曲,请输入相应的数字。" + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "\n" +"**0**。取消" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "选择一首歌曲" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "" + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "好吧,正在准备好!" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "显示当前正在播放的信息。" + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "[autoplaylist]" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "正在播放" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "正在串流:" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "当前正在播放:" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "添加人:" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "进度:" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "没有播放队列的歌曲!队列中有播放命令的歌曲。" + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "告诉MusicBot 加入您所加入的频道。" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "您没有连接到语音。请尝试加入一个语音频道!" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "当用户更改服务器中的频道时,让MusicBot跟随用户。\n" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "MusicBot 不能关注不是服务器成员的用户。" + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "如果有曲目正在播放,暂停播放。" + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "播放器未播放。" + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "如果玩家先前暂停,恢复播放。" + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "继续音乐队列" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "玩家未暂停。" + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "随机播放队列中所有当前曲目。" + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "随机播放队列中的所有歌曲。" + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "移除队列中的所有歌曲。" + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "清除队列中的所有歌曲。" + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "队列中没有要移除的内容!" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "您没有从队列中删除该项的权限。\n" +"您必须是排队它或拥有即时跳过权限的人。" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "无效的条目编号。使用队列命令来查找队列位置。" + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "无法跳过!玩家没有在玩!" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "" + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "下一首歌即将播放,请稍候。" + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "您没有权限强制跳过循环歌曲。" + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "您没有强制跳过的权限。" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "您没有权限跳过循环歌曲。" + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr " 下一首歌即将开始!" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "" + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "音量从 **%(old)d** 更新到 **%(new)d" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "没有音轨在播放,无法设置速度。\n" +"使用配置命令设置默认播放速度。" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "速度不能应用于流媒体。" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "您必须提供一个速度来设置。" + +#: musicbot/bot.py:5413 +msgid "The speed you provided is invalid. Use a number between 0.5 and 100." +msgstr "您提供的速度无效。请使用0.5 至 100之间的数字。" + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "" + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr " 添加可选参数的新别名。\n" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr " 删除给定名称的别名。" + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr " 从配置文件重新加载或保存别名。" + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "允许管理不一致的别名。要查看别名,请使用帮助命令。" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "已从配置文件重新加载别名。" + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "别名保存到配置文件。" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "您必须为别名提供别名和命令" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "您必须提供一个别名来移除。" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "" + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr " 显示任何缺失配置选项的帮助文本。\n" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr "" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr " 列出可用的配置选项及其章节。\n" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr " 从磁盘重新加载options.ini 文件。\n" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr " 显示特定选项的帮助文本。\n" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr " 显示选项的当前值。\n" + +#: musicbot/bot.py:5546 +msgid " Saves the current value to the options file.\n" +msgstr " 将当前值保存到选项文件。\n" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr " 验证选项并设置会话配置,但不设置为文件。\n" + +#: musicbot/bot.py:5552 +msgid " Reset the option to its default value.\n" +msgstr " 重置选项为默认值。\n" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "从 Discord 内部管理options.ini 配置。" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "配置不能同时使用频道和用户提到。" + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "*所有配置选项都已存在并已核算!*" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "没有配置选项被更改。" + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "配置选项从文件重新加载成功!" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "无法解析选项名称中的部分名称。请提供一个有效的部分和选项名称。" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "给定的选项含混,请提供一个章节名称。" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "您必须提供此命令的部分名称和选项名称。" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "此选项只能通过编辑配置文件来设置。" + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "您必须为此子命令提供一个章节、选项和值。" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "已废弃的命令,改用配置命令。" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "选项命令已废弃,请使用配置命令。" + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "显示缓存信息或清除缓存根据配置的限制。\n" +"使用更新选项将在显示详细信息之前扫描缓存进行外部更改。" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "指定的选项无效,使用:信息、更新或清除" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "已禁用" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "已启用" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "无限制" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "" + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "缓存已清除。" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "**删除缓存失败,请检查日志获取更多信息..." + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "没有找到要清除的缓存。" + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "队列页面参数必须是一个整数。" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "(未知持续时间)" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "队列中的歌曲" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "参数无效。请提供一些要搜索的消息。" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "无法在私有DM频道上使用净化。" + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "" + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "机器人没有管理信件的权限。" + +#: musicbot/bot.py:6231 +msgid "Dump the individual URLs of a playlist to a file." +msgstr "将播放列表中的单个URL转储到一个文件。" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "给定的 URL 不是有效的 URL。" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "这似乎不是一个播放列表。" + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "这里是您请求的ID:" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permissions of the mentioned user." +msgstr "获取您的权限列表或上述用户的权限。" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double-check the ID and try again." +msgstr "无效的用户ID或服务器昵称,请重新检查ID,然后重试。" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "无法确定 Discord 用户,请重试。" + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr " 显示加载组并列出权限选项。\n" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr " 从 permissions.ini 文件重新加载权限。\n" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr " 添加新组为默认值。\n" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr " 删除现有群组。\n" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr " 显示权限选项的帮助文本。\n" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr " 显示给定组的权限值和权限。\n" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr " 保存权限组到文件。\n" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr " 设置群组的权限值。\n" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "从 discord内部管理权限.ini 配置。" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "权限不能同时使用频道和用户提到。" + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "从文件重新加载权限成功!" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "您必须为此命令提供一个组或选项名称。" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "您必须为此命令设置一个组、选项和值。" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "此权限只能通过编辑权限文件来设置。" + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customize the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "无法删除内置组。" + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "所有者群组不可编辑。" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.\n" +"Note: The API may limit name changes to twice per hour." +msgstr "在 discord上更改机器人的用户名。\n" +"注意:API 可能限制每小时更改两次。" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "更改 MusicBot 的昵称。" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "无法更改昵称:没有权限。" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr " 设置每个服务器的命令前缀。" + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr " 清除每个服务器命令前缀。" + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "覆盖服务器上的默认命令前缀。\n" +"必须首先启用启用启用前缀权限的选项。" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "自定义表情必须来自此服务器才能用作前缀。" + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "服务器命令前缀已被清除。" + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "每个服务器的前缀未启用!\n" +"使用配置命令来更新前缀。" + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "更改 MusicBot 头像。\n" +"附加一个文件并省略URL参数也可以工作。\n" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "您必须提供一个 URL 或附加文件。" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "更改了机器人头像。" + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "强制MusicBot断开与 Discord 服务器的连接。" + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "断开一个无声音客户端的连接? [BUG]" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr " 尝试重新加载而不重启进程。默认选项。\n" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr "" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr " 完全重启,但尝试在重启前更新Pip包。\n" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr " 完全重启,但先更新 MusicBot 源代码使用 git 。\n" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr " 尝试在完全重启之前更新所有依赖关系和源代码。\n" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "给定的选项无效,请使用其中一项:软、完整、升级、上传或上传。" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "" + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "" + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "断开所有语音频道并关闭 MusicBot 进程。" + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr " 留下由名称或服务器ID指定的Discord服务器。" + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "您必须提供一个ID或名称。" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "未知的" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "用于测试的命令。它打印一个可以通过测试套装验证的命令列表。" + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pinpoint events in the MusicBot log file.\n" +msgstr "" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr " 查看 objgraphs 报告的最常见类型。\n" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr " 查看有限的 objgraph.show_growth() 输出。\n" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr " 查看最常见的泄漏对象类型。\n" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr " 查看泄漏对象的类型遗产。\n" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and arguments on objgraph.\n" +msgstr " 在objgraph上评估给定的函数和参数。\n" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "无法导入 `objgraph` ,是否安装?" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update GitHub Pages and is thus unsuitable for normal reference use." +msgstr "从代码创建“markdown”选项、权限或命令。\n" +"输出用于更新 GitHub 页面,因此不适合正常的参考使用。" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "创建默认 INI 文件。" + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "保存了请求的 INI 文件到磁盘。请检查它" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "无法找到 git 可执行文件。" + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "" + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "" + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "检查时出错,详情请查看日志。" + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "没有找到依赖关系的更新。" + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "MusicBot有可用下载的更新。" + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "MusicBot 完全是最新版本!" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "显示上次启动/重启后的音乐机器人时机。" + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "显示Discord API和所有已连接的语音客户端的延迟信息。" + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "没有语音客户端连接。\n" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "如果MusicBot 已连接,则显示 API 延迟和语音延迟。" + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "auto" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f ms` Avg.) in region `%(region)s`" +msgstr "" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "在聊天中显示 MusicBot 版本号。" + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr " 使用 cookies.txt 附件更新cookies.txt 文件。" + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr " 启用或禁用 cookies.txt 文件而不删除它。" + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "Cookie 已启用。" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "Cookie 必须上传才能启用。(正在使用 cookies 文件)" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "Cookie 已启用。" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "Cookie 已被禁用。" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "没有找到附加的上传文件,上传cookie文件时再试一次。" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "Cookie已上传并启用。" + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "您不能在私信中使用此机器人。" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "此命令要求您在语音频道中。" + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "异常错误" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "没有给出任何描述。\n" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "没有给出任何用法。" + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "" + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "提供您自己的 Spotify 客户端 ID以启用 MusicBot 与 Spotify API 交互。\n" +"MusicBot 将尝试使用Web 播放器 API (访客模式),如果这里没有设置任何内容。\n" +"使用您自己的 API 凭据给出了高于客人模式的使用限制。" + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "" + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "提供一个 Discord 用户ID 号码来设置此机器人的所有者。\n" +"单词“auto”或数字0将根据应用程序信息设置所有者。\n" +"此处只能设置一个所有者ID。通常建议设置“自动”。" + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "可以使用仅限于dev的命令的 Discord 用户ID列表。\n" +"警告:只有dev-only 命令可以允许任意远程代码执行。\n" +"使用空格分隔多个ID。\n" +"大多数用户都应该保留此设置。" + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "" + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "命令前缀是如何在 Discord 消息中启动所有 MusicBot 命令。\n" +"例如,如果您将其设置为 * 播放命令会通过*播放触发..." + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "" + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "MusicBot 应该专用于命令的文本频道ID。\n" +"可以包含多个服务器中的频道ID。\n" +"使用空格分隔多个ID。\n" +"如果没有设置,所有频道都会被使用。" + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "允许所有频道的响应,同时没有为服务器设置特定频道。\n" +"仅在 BindToChannels 缺少服务器ID时使用。" + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "" + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "MusicBot 将尝试直接向请求歌曲而不是在服务器频道发布消息的会员发送播放通知。" + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "禁用正在播放通过自动播放列表播放的歌曲。" + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "强制MusicBot 使用特定频道发送正在播放的消息。\n" +"每个服务器只能使用一个文本频道ID。" + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "MusicBot 将自动删除正在播放的消息。" + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "" + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "设置默认的速度 MusicBot 将播放歌曲。\n" +"必须是 0.5到 100.0 的一个值来使用 ffmpeg 。\n" +"值为1是正常播放速度。\n" +"注意:流媒体不支持速度调整。" + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "跳过歌曲所需频道成员票数。\n" +"在 SkipRatio 需要更多票时起码作用。" + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "此百分比的语音侦听器必须为跳过投票。\n" +"如果跳过请求低于计算值,它将被使用。\n" +"您可以将此设置为 0 到 1, 或 0% 到 100%。" + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "允许 MusicBot 保存下载的媒体,或立即删除。" + +#. TRANSLATORS: SaveVideos is not translated. +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "如果启用了保存视频,请设定存储空间的限制。" + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "如果SaveVideos已启用,设置保存文件的时间限制。" + +#. TRANSLATORS: SaveVideos should not be translated. +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "如果启用SaveVideos,就永远不会从缓存中清除自动播放列表歌曲,不管限制多少。" + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "提到播放时添加歌曲的用户。" + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "如果机器人启动时他们在一个可访问的语音频道中,自动加入所有人。" + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "启用 MusicBot 在队列为空时自动播放播放列表中的音乐。" + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "播放前随机播放列表曲目。" + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "当用户播放新歌曲时,自动跳过自动播放列表歌曲。\n" +"这只适用于当前播放的歌曲,如果它是由自动播放列表添加的。" + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song block list." +msgstr "从自动播放列表中删除歌曲,如果在歌曲块列表中找到这些歌曲。" + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "允许 MusicBot 在延迟后自动删除它发送的消息。\n" +"延迟时间由DeleteDelayShort 和 DeleteDelayLong控制。" + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "延迟后自动删除有效的命令。" + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "设置删除消息之前的短秒时间。\n" +"此时间段用于无需进一步互动的消息。" + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "设置删除消息之前的长时间延迟。\n" +"此时间段用于交互或长时间的消息,如搜索和帮助。" + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "允许 MusicBot 保存歌曲队列,所以队列中的歌曲将继续重启。" + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "在播放歌曲时启用 MusicBot 下载队列中的下一首歌曲。\n" +"目前此选项不适用于自动播放列表或添加到空队列的歌曲。" + +#: musicbot/config.py:550 +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track URL for the currently playing track." +msgstr "" + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "如果启用,状态信息将报告暂停玩家的信息。" + +#. TRANSLATORS: [Server ID] is a descriptive placeholder and may be translated. +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "如果启用,MusicBot 将保存曲目标题到:data/[Server ID]/current.txt" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "允许请求歌曲的会员跳过它,绕过投票。" + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "尝试使用 ffmpeg 获取音量正常化选项以供播放使用。\n" +"此选项可能会导致播放歌曲之间的延迟,因为整个歌曲必须处理。" + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format its messages as embeds." +msgstr "允许 MusicBot 将其消息格式化为嵌入板块。" + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "使用 q 命令列出队列时每页显示的条目数。" + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from the auto playlist." +msgstr "启用 MusicBot 自动从自动播放列表中删除不可播放的条目。" + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "启动时在日志中显示 MusicBot 配置设置。" + +#. TRANSLATORS: InstaSkip should not be translated. +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "启用 InstaSkip 权限的用户跳过投票并强制跳过操作。" + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "如果启用,MusicBot将离开服务器,如果所有者不在其会员列表中。" + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "如果启用,MusicBot将允许命令使用多个名字:config/aliases.json" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "" + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "完全移除嵌套页脚。" + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "当进入语音频道时,MusicBot 将自动自失效。" + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "如果启用,MusicBot将在没有用户正在聆听时离开语音频道,\n" +"等待在LeaveInactiveVCTimeOut 选项中设置的时间段。\n" +"监听器是频道成员,但不包括机器人,他们没有耳聋。" + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "设置等待时间间隔,然后离开静止的语音频道。\n" +"您可以将其设置为几秒或短语如:4小时" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "如果启用,MusicBot 将在歌曲队列为空时立即离开频道。" + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "当暂停或不再玩时,等待这么长的时间,然后留下声音。\n" +"您可以设置这个短语为几秒钟,比如:15分钟\n" +"设置为0来禁用这种离开方式。" + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "如果启用,用户必须通过发送消息而不是使用响应来表示搜索结果选择。" + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "设置在没有指定号码的情况下使用搜索命令获取搜索结果的默认数。" + +#. TRANSLATORS: setprefix should not be translated. +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "允许 MusicBot 保存每个服务器的命令前缀,并启用 setprefix 命令。" + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "如果启用,多个成员正在添加歌曲,MusicBot将为每个成员组织播放一首歌曲。" + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "允许 MusicBot 使用定时pings 检测网络停电和可用性。\n" +"如果您保持机器人加入频道或播放音乐24/7,这可能是有用的。\n" +"MusicBot 必须重启才能启用网络测试。\n" +"默认情况下已禁用。" + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "" + +#. TRANSLATORS: [Server ID] is a descriptive placeholder, and can be translated. +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "" + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "允许 MusicBot 在使用播放命令时自动取消暂停。" + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "" + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "在yt-dlp中设置静态用户代理头的实验选项。\n" +"通常不是由yt-dlp推荐更改UA字符串。\n" +"您可以在此处放置的示例,请检查以下两个链接:\n" +" https://developer。 ozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"留空则使用动态生成的 UA 字符串。" + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "" + +#: musicbot/config.py:920 +msgid "Optional YouTube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible YouTube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "" + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "切换用户块列表功能,同时不清空块列表。" + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "列出Discord用户ID的文本文件的可选文件路径,每行一个。" + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "启用歌曲方块列表功能,同时不清空方块列表。" + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "一个可选的文件路径,用于列出每行的 URL、单词或短语。\n" +"任何包含列表中任何行的歌曲标题或URL将被屏蔽。" + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "包含自动播放列表文件的目录可选路径。\n" +"每个文件应该包含一个可播放的 URL 或条款列表、每行一个曲目。" + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "一个可选的目录路径,MusicBot 将存储长时间和短期的缓存来播放。" + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "" + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "配置 LogsMaxKept 启用时使用的日志文件日期格式。\n" +"如果留空,将记录一个警告,默认值将被替换。\n" +"从表格和数据中了解更多的时间格式代码:\n" +" https://docs.python.org/3/library/datetime.html#strftimestrptimebehaviour" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config options file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching 'OwnerID' automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the 'OwnerID' config option or try again later." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The 'OwnerID' config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the 'OwnerID' field." +msgstr "验证配置选项时出错。\n\n" +"问题:\n" +" “所有者ID”配置与您的 Bot / App ID相同。\n\n" +"解决方案:\n" +" 不要在“所有者ID”字段中使用机器人或App ID。" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "定位配置时出错。\n\n" +"问题:\n" +" 由于错误无法找到或创建配置文件:\n" +" %(raw_error)s\n\n" +"解决方案:\n" +" 验证配置文件夹和文件存在并且可以通过 MusicBot 读取。" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "HEAD 似乎没有信头..." + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "歌曲信息提取没有返回数据。" + +#: musicbot/downloader.py:447 +msgid "Cannot continue extraction, event loop is closed." +msgstr "无法继续提取,事件循环已关闭。" + +#: musicbot/downloader.py:456 +msgid "Spotify URL is invalid or not supported." +msgstr "Spotify URL 无效或不支持。" + +#: musicbot/downloader.py:489 musicbot/downloader.py:510 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:506 +msgid "Cannot stream an invalid URL." +msgstr "无法生成无效的 URL。" + +#: musicbot/downloader.py:580 +msgid "The local media file could not be found." +msgstr "找不到本地媒体文件。" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download Spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "为请求的媒体提取数据失败。" + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "拒绝使用的命令名列表,用空格分隔。如果设置了 CommandWhitelist 的话,\n" +"将无法工作!" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "" + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "" + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "在此组中被授予权限的Discord成员ID列表。\n" +"此选项覆盖GrantToRoles。" + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "允许用户排队的最大歌曲数量。\n" +"值为0表示无限制。" + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "歌曲的最大长度以秒为单位。值为0表示无限制。\n" +"如果歌曲持续时间不可用,此权限可能无法执行。" + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "播放列表在队列时允许拥有的最大歌曲数量。\n" +"值为0表示无限制。" + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "可以在搜索中返回的项目的最大数量。" + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "允许用户同时排队播放列表或多首歌曲。" + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "如果启用了 LegacySkip 配置选项,允许用户不经投票而跳过。" + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "允许用户跳过循环播放的歌曲。" + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "允许用户从队列中删除任何歌曲。\n" +"不删除或跳过当前播放的歌曲。" + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "跳过播放歌曲时没有声音的用户添加的歌曲。" + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "允许用户在启用Karaoke模式时添加歌曲到队列。" + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "使用播放命令时自动召唤用户语音频道,如果机器人已经没有语音的话。\n" +"此群组仍然必须允许召唤命令!" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable Spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "无法提取信息" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "这是一个播放列表。" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "无持续时间数据" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "当前条目中没有持续数据" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "响应 JSON 没有解码到一个口令!" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client ID and client secret" +msgstr "无法从 Spotify 获取访客令牌,请尝试指定客户端 ID 和客户端密钥" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "从 Spotify 请求一个令牌,最终没有得到一个" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/utils.py:174 +msgid "Only the owner can use this command." +msgstr "只有所有者可以使用此命令。" + +#: musicbot/utils.py:194 +msgid "Only dev users can use this command." +msgstr "只有dev 用户可以使用此命令。" + diff --git a/i18n/zh_TW/LC_MESSAGES/musicbot_logs.mo b/i18n/zh_TW/LC_MESSAGES/musicbot_logs.mo new file mode 100644 index 0000000000000000000000000000000000000000..a98ff23be58a00dfb0ee949fd10e2775c60e8012 GIT binary patch literal 524 zcmZWm$!@|h5T#O2IriLx4?T9kh7=+rE@hFBKt(8BZpb7ixC(Y;JKg@HzsI+90;QC8 zq|tahZ?-qvi}TMK${Fe<>Q&{ST<^`!ZZQazKeOgpCLYEqJV@)5(VS@GH>Fd_()eI5 z3u8S@U8YjFEi(tP;Ut*d#n87>cuatS@RE}zZHB-Y(2&rGvm2lhr3i$%d{I^5zqmGG zA#br@BAkcV3hi>?jm7E{p|etC5@IPfob=a9OD73pQdM;n`45DXkM$yc45s7h@VEi1 z)1Ys(ml`X-7dV}lZ@y9FLg_9^*1|gJd-w4Oq9d-FU?nXKbz)MbGftwV^1&=Gt;k_y z?8YHC#m;p-)+PIAk9LD6B*VO75{y)i-5M()8;V7`aUgP$o6OY %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:122 +#, python-format +msgid "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s" +msgstr "" + +#: musicbot/aliases.py:132 +#, python-format +msgid "Alias `%(alias)s` skipped as already exists on command: %(command)s" +msgstr "" + +#: musicbot/autoplaylist.py:76 +#, python-format +msgid "Error loading auto playlist file: %s" +msgstr "" + +#: musicbot/autoplaylist.py:121 +#, python-format +msgid "Removing unplayable song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:126 +#, python-format +msgid "Removing song from playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/autoplaylist.py:151 +msgid "Could not log information about the playlist URL removal." +msgstr "" + +#: musicbot/autoplaylist.py:155 +msgid "Updating playlist file..." +msgstr "" + +#: musicbot/autoplaylist.py:171 musicbot/autoplaylist.py:208 +#, python-format +msgid "Failed to save playlist file: %s" +msgstr "" + +#: musicbot/autoplaylist.py:180 +#, python-format +msgid "URL already in playlist %s, ignoring" +msgstr "" + +#: musicbot/autoplaylist.py:187 +#, python-format +msgid "Adding new URL to playlist, %(playlist)s: %(track)s" +msgstr "" + +#: musicbot/bot.py:163 +#, python-format +msgid "Initializing MusicBot %s" +msgstr "" + +#: musicbot/bot.py:243 +#, python-format +msgid "Loop is closed, cannot create task for: %r" +msgstr "" + +#: musicbot/bot.py:259 +#, python-format +msgid "Unhandled exception for task: %r" +msgstr "" + +#: musicbot/bot.py:263 +#, python-format +msgid "Unhandled exception for task: %(task)r -- %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:308 musicbot/bot.py:330 +msgid "Spotify did not provide us with a token. Disabling." +msgstr "" + +#: musicbot/bot.py:312 +msgid "Authenticated with Spotify successfully using client ID and secret." +msgstr "" + +#: musicbot/bot.py:316 +#, python-format +msgid "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds..." +msgstr "" + +#: musicbot/bot.py:324 +msgid "The config did not have Spotify app credentials, attempting to use guest mode." +msgstr "" + +#: musicbot/bot.py:334 +msgid "Authenticated with Spotify successfully using guest mode." +msgstr "" + +#: musicbot/bot.py:339 +#, python-format +msgid "Could not start Spotify client using guest mode. Details: %s." +msgstr "" + +#: musicbot/bot.py:347 +msgid "Experimental Yt-dlp OAuth2 plugin is enabled. This might break at any point!" +msgstr "" + +#: musicbot/bot.py:354 +msgid "Initialized, now connecting to discord." +msgstr "" + +#: musicbot/bot.py:365 +msgid "Network ping test is disabled via config." +msgstr "" + +#: musicbot/bot.py:369 +msgid "Network ping test is closing down." +msgstr "" + +#: musicbot/bot.py:380 +msgid "Could not resolve ping target." +msgstr "" + +#: musicbot/bot.py:410 +msgid "Network ping test cancelled." +msgstr "" + +#: musicbot/bot.py:424 +msgid "Network testing via HTTP does not have a session to borrow." +msgstr "" + +#: musicbot/bot.py:449 +msgid "Could not locate `ping` executable in your environment." +msgstr "" + +#: musicbot/bot.py:475 +#, python-format +msgid "MusicBot could not locate a `ping` command path. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:485 +#, python-format +msgid "MusicBot was denied permission to execute the `ping` command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:495 +#, python-format +msgid "Your environment may not allow the `ping` system command. Will attempt to use HTTP ping instead.\n" +"MusicBot tried the following command: %s\n" +"You should enable ping in your system or container environment for best results.\n" +"Alternatively disable network checking via config." +msgstr "" + +#: musicbot/bot.py:510 +msgid "MusicBot detected network is available again." +msgstr "" + +#: musicbot/bot.py:515 +msgid "VoiceClient is not connected, waiting to resume MusicPlayer..." +msgstr "" + +#: musicbot/bot.py:519 +#, python-format +msgid "Resuming playback of player: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:530 +msgid "MusicBot detected a network outage." +msgstr "" + +#: musicbot/bot.py:534 +#, python-format +msgid "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r" +msgstr "" + +#: musicbot/bot.py:555 +#, python-format +msgid "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s" +msgstr "" + +#: musicbot/bot.py:569 +msgid "Checking for channels to auto-join or resume..." +msgstr "" + +#: musicbot/bot.py:581 +#, python-format +msgid "Guild not available, cannot auto join: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:589 +#, python-format +msgid "Found resumable voice channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:602 +#, python-format +msgid "Will try resuming voice session instead of Auto-Joining channel: %s" +msgstr "" + +#: musicbot/bot.py:619 +#, python-format +msgid "Found owner in voice channel: %s" +msgstr "" + +#: musicbot/bot.py:624 +#, python-format +msgid "Ignoring resumable channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:629 +#, python-format +msgid "Ignoring Auto-Join channel, AutoSummon to owner in channel: %s" +msgstr "" + +#: musicbot/bot.py:641 +#, python-format +msgid "Already connected to channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:650 +#, python-format +msgid "Attempting to join channel: %(channel)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:657 +msgid "Discarding MusicPlayer and making a new one..." +msgstr "" + +#: musicbot/bot.py:677 +msgid "MusicBot will make a new MusicPlayer now..." +msgstr "" + +#: musicbot/bot.py:698 +#, python-format +msgid "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel." +msgstr "" + +#: musicbot/bot.py:701 +msgid "Finished joining configured channels." +msgstr "" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "" + +#: musicbot/bot.py:735 +msgid "Getting bot Application Info." +msgstr "" + +#: musicbot/bot.py:760 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: %s" +msgstr "" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:769 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: %s" +msgstr "" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:783 +#, python-format +msgid "Reusing bots VoiceClient from guild: %s" +msgstr "" + +#: musicbot/bot.py:788 +#, python-format +msgid "Forcing disconnect on stale VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:794 +msgid "Disconnect failed or was cancelled?" +msgstr "" + +#: musicbot/bot.py:802 +#, python-format +msgid "MusicBot is unable to connect to the channel right now: %(channel)s" +msgstr "" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:817 +msgid "MusicBot has a VoiceClient now..." +msgstr "" + +#: musicbot/bot.py:822 +#, python-format +msgid "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s" +msgstr "" + +#: musicbot/bot.py:827 +msgid "MusicBot VoiceClient connection attempt was cancelled. No retry." +msgstr "" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" + +#: musicbot/bot.py:840 musicbot/bot.py:8386 +msgid "MusicBot does not have permission to speak." +msgstr "" + +#: musicbot/bot.py:844 musicbot/bot.py:8388 +msgid "MusicBot could not request to speak." +msgstr "" + +#: musicbot/bot.py:857 +#, python-format +msgid "Disconnecting a MusicPlayer in guild: %s" +msgstr "" + +#: musicbot/bot.py:869 +msgid "Disconnecting VoiceClient before we kill the MusicPlayer." +msgstr "" + +#: musicbot/bot.py:877 musicbot/bot.py:896 musicbot/bot.py:908 +#: musicbot/bot.py:931 +msgid "The disconnect failed or was cancelled." +msgstr "" + +#: musicbot/bot.py:887 +msgid "MusicBot has a VoiceProtocol that is not a VoiceClient. Disconnecting anyway..." +msgstr "" + +#: musicbot/bot.py:900 +#, python-format +msgid "Disconnecting a rogue VoiceClient in guild: %s" +msgstr "" + +#: musicbot/bot.py:924 +msgid "Disconnecting a non-guild VoiceClient..." +msgstr "" + +#: musicbot/bot.py:934 +#, python-format +msgid "MusicBot.voice_clients list contains a non-VoiceClient object?\n" +"The object is actually of type: %s" +msgstr "" + +#: musicbot/bot.py:944 +#, python-format +msgid "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r" +msgstr "" + +#: musicbot/bot.py:957 +#, python-format +msgid "Guild (%(guild)s) wants a player, optional: %(player)r" +msgstr "" + +#: musicbot/bot.py:964 +msgid "[BUG] MusicPlayer is missing a VoiceClient some how. You should probably restart the bot." +msgstr "" + +#: musicbot/bot.py:969 +msgid "MusicPlayer has a VoiceClient that is not connected." +msgstr "" + +#: musicbot/bot.py:970 +#, python-format +msgid "MusicPlayer obj: %r" +msgstr "" + +#: musicbot/bot.py:971 +#, python-format +msgid "VoiceClient obj: %r" +msgstr "" + +#: musicbot/bot.py:991 +#, python-format +msgid "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s" +msgstr "" + +#: musicbot/bot.py:1007 +#, python-format +msgid "Created player via deserialization for guild %(guild_id)s with %(number)s entries" +msgstr "" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "" + +#: musicbot/bot.py:1061 +msgid "Running on_player_play" +msgstr "" + +#: musicbot/bot.py:1136 +#, python-format +msgid "Setting URL history guild %(guild_id)s == %(url)s" +msgstr "" + +#: musicbot/bot.py:1172 musicbot/bot.py:4806 +#, python-format +msgid "No thumbnail set for entry with url: %s" +msgstr "" + +#: musicbot/bot.py:1184 +msgid "no channel to put now playing message into" +msgstr "" + +#: musicbot/bot.py:1196 +msgid "ignored now-playing message as it was already posted." +msgstr "" + +#: musicbot/bot.py:1220 +msgid "Running on_player_resume" +msgstr "" + +#: musicbot/bot.py:1233 +msgid "Running on_player_pause" +msgstr "" + +#: musicbot/bot.py:1249 +msgid "Running on_player_stop" +msgstr "" + +#: musicbot/bot.py:1259 +msgid "Running on_player_finished_playing" +msgstr "" + +#: musicbot/bot.py:1261 musicbot/bot.py:1307 musicbot/bot.py:1378 +msgid "Event loop is closed, nothing else to do here." +msgstr "" + +#: musicbot/bot.py:1265 musicbot/bot.py:1311 musicbot/bot.py:1382 +msgid "Logout under way, ignoring this event." +msgstr "" + +#: musicbot/bot.py:1282 +msgid "VoiceClient says it is not connected, nothing else we can do here." +msgstr "" + +#: musicbot/bot.py:1289 +msgid "Player finished and queue is empty, leaving voice channel..." +msgstr "" + +#: musicbot/bot.py:1303 +msgid "Looping over queue to expunge songs with missing author..." +msgstr "" + +#: musicbot/bot.py:1342 +#, python-format +msgid "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s" +msgstr "" + +#: musicbot/bot.py:1361 +msgid "No playable songs in the Guild autoplaylist, disabling." +msgstr "" + +#: musicbot/bot.py:1366 +msgid "No content in current autoplaylist. Filling with new music..." +msgstr "" + +#: musicbot/bot.py:1374 +msgid "Looping over player autoplaylist..." +msgstr "" + +#: musicbot/bot.py:1415 +#, python-format +msgid "Error while processing song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1426 +#, python-format +msgid "Error extracting song \"%(url)s\": %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:1441 +msgid "MusicBot needs to stop the autoplaylist extraction and bail." +msgstr "" + +#: musicbot/bot.py:1446 +msgid "MusicBot got an unhandled exception in player finished event." +msgstr "" + +#: musicbot/bot.py:1452 +#, python-format +msgid "Expanding auto playlist with entries extracted from: %s" +msgstr "" + +#: musicbot/bot.py:1476 +#, python-format +msgid "Error adding song from autoplaylist: %s" +msgstr "" + +#: musicbot/bot.py:1479 +msgid "Exception data for above error:" +msgstr "" + +#: musicbot/bot.py:1485 +msgid "No playable songs in the autoplaylist, disabling." +msgstr "" + +#: musicbot/bot.py:1505 +msgid "Running on_player_entry_added" +msgstr "" + +#: musicbot/bot.py:1515 +msgid "Automatically skipping auto-playlist entry for queued entry." +msgstr "" + +#: musicbot/bot.py:1535 +#, python-format +msgid "MusicPlayer exception for entry: %r" +msgstr "" + +#: musicbot/bot.py:1541 +msgid "MusicPlayer exception." +msgstr "" + +#: musicbot/bot.py:1565 +#, python-format +msgid "Auto playlist track could not be played: %r" +msgstr "" + +#: musicbot/bot.py:1604 +msgid "Logout under way, ignoring status update event." +msgstr "" + +#: musicbot/bot.py:1705 +#, python-format +msgid "Update bot status: %(status)s -- %(activity)r" +msgstr "" + +#: musicbot/bot.py:1733 +#, python-format +msgid "Serializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1759 +#, python-format +msgid "Deserializing queue for %s" +msgstr "" + +#: musicbot/bot.py:1777 +#, python-format +msgid "Writing current song for %s" +msgstr "" + +#: musicbot/bot.py:1802 +#, python-format +msgid "Cannot send non-reponse object: %r" +msgstr "" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "" + +#: musicbot/bot.py:1835 +#, python-format +msgid "sending embed to: %s" +msgstr "" + +#: musicbot/bot.py:1838 +#, python-format +msgid "sending text to: %s" +msgstr "" + +#: musicbot/bot.py:1843 +#, python-format +msgid "Cannot send message to \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1850 +#, python-format +msgid "Cannot send message to \"%s\", invalid or deleted channel" +msgstr "" + +#: musicbot/bot.py:1858 +#, python-format +msgid "Message is over the message size limit (%s)" +msgstr "" + +#: musicbot/bot.py:1866 +msgid "Could not send private message, sending in fallback channel instead." +msgstr "" + +#: musicbot/bot.py:1884 +#, python-format +msgid "Rate limited send message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1890 +#, python-format +msgid "Cancelled message retry for: %s" +msgstr "" + +#: musicbot/bot.py:1895 +msgid "Rate limited send message, but cannot retry!" +msgstr "" + +#: musicbot/bot.py:1901 +msgid "Failed to send message in fallback channel." +msgstr "" + +#: musicbot/bot.py:1906 musicbot/bot.py:1970 musicbot/bot.py:2040 +msgid "Failed to send due to an HTTP error." +msgstr "" + +#: musicbot/bot.py:1932 +#, python-format +msgid "Cannot delete message \"%s\", no permission" +msgstr "" + +#: musicbot/bot.py:1937 +#, python-format +msgid "Cannot delete message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:1955 +#, python-format +msgid "Rate limited message delete, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:1960 +msgid "Rate limited message delete, but cannot retry!" +msgstr "" + +#: musicbot/bot.py:1963 +msgid "Failed to delete message" +msgstr "" + +#: musicbot/bot.py:1965 +#, python-format +msgid "Got HTTPException trying to delete message: %s" +msgstr "" + +#: musicbot/bot.py:2000 +#, python-format +msgid "Cannot edit message \"%s\", message not found" +msgstr "" + +#: musicbot/bot.py:2004 +msgid "Sending message instead" +msgstr "" + +#: musicbot/bot.py:2021 +#, python-format +msgid "Rate limited edit message, retrying in %s seconds." +msgstr "" + +#: musicbot/bot.py:2027 +#, python-format +msgid "Cancelled message edit for: %s" +msgstr "" + +#: musicbot/bot.py:2033 +msgid "Failed to edit message" +msgstr "" + +#: musicbot/bot.py:2035 +#, python-format +msgid "Got HTTPException trying to edit message %s to: %s" +msgstr "" + +#: musicbot/bot.py:2057 +#, python-format +msgid "Cancelled delete for message (ID: %(id)s): %(content)s" +msgstr "" + +#: musicbot/bot.py:2119 +#, python-format +msgid "Caught a signal from the OS: %s" +msgstr "" + +#: musicbot/bot.py:2123 +msgid "Disconnecting and closing down MusicBot..." +msgstr "" + +#: musicbot/bot.py:2126 +msgid "Exception thrown while handling interrupt signal!" +msgstr "" + +#: musicbot/bot.py:2140 +msgid "MusicBot is now doing shutdown steps..." +msgstr "" + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2161 +msgid "Waiting for download threads to finish up..." +msgstr "" + +#: musicbot/bot.py:2187 +#, python-format +msgid "Will wait for task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2194 +#, python-format +msgid "Will try to cancel task: %(name)s (%(func)s)" +msgstr "" + +#: musicbot/bot.py:2202 +msgid "Awaiting pending tasks..." +msgstr "" + +#: musicbot/bot.py:2208 +msgid "Closing HTTP Connector." +msgstr "" + +#: musicbot/bot.py:2214 +msgid "Closing aiohttp session." +msgstr "" + +#: musicbot/bot.py:2226 +msgid "Logout has been called." +msgstr "" + +#: musicbot/bot.py:2238 +#, python-format +msgid "Exception in %(event)s:\n" +"%(error)s" +msgstr "" + +#: musicbot/bot.py:2254 +#, python-format +msgid "Exception in %s" +msgstr "" + +#: musicbot/bot.py:2261 +msgid "MusicBot resumed a session with discord." +msgstr "" + +#: musicbot/bot.py:2278 +msgid "Finish on_ready" +msgstr "" + +#: musicbot/bot.py:2285 +msgid "Logged in, now getting MusicBot ready..." +msgstr "" + +#: musicbot/bot.py:2288 +msgid "ClientUser is somehow none, we gotta bail..." +msgstr "" + +#: musicbot/bot.py:2297 +#, python-format +msgid "MusicBot: %(id)s/%(name)s#%(desc)s" +msgstr "" + +#: musicbot/bot.py:2308 +#, python-format +msgid "Owner: %(id)s/%(name)s#%(desc)s\n" +msgstr "" + +#: musicbot/bot.py:2316 musicbot/bot.py:2343 +msgid "Guild List:" +msgstr "" + +#: musicbot/bot.py:2320 musicbot/bot.py:2346 musicbot/bot.py:8572 +#, python-format +msgid " - %s" +msgstr "" + +#: musicbot/bot.py:2329 +#, python-format +msgid "Left %s due to bot owner not found" +msgstr "" + +#: musicbot/bot.py:2334 +#, python-format +msgid "Not proceeding with checks in %s servers due to unavailability" +msgstr "" + +#: musicbot/bot.py:2340 +#, python-format +msgid "Owner could not be found on any guild (id: %s)\n" +msgstr "" + +#: musicbot/bot.py:2349 +msgid "Owner unknown, bot is not on any guilds." +msgstr "" + +#: musicbot/bot.py:2353 +#, python-format +msgid "To make the bot join a guild, paste this link in your browser. \n" +"Note: You should be logged into your main account and have \n" +"manage server permissions on the guild you want the bot to join.\n" +" %s" +msgstr "" + +#: musicbot/bot.py:2370 +#, python-format +msgid "Got None for bound channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2376 +#, python-format +msgid "Cannot bind to non-messagable channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2390 +msgid "Bound to text channels:" +msgstr "" + +#: musicbot/bot.py:2404 musicbot/bot.py:2454 +#, python-format +msgid " - %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:2408 musicbot/bot.py:2410 +msgid "Not bound to any text channels" +msgstr "" + +#: musicbot/bot.py:2421 +#, python-format +msgid "Got None for autojoin channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2427 +#, python-format +msgid "Cannot autojoin a Private/Non-Guild channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2435 +#, python-format +msgid "Cannot autojoin to non-connectable channel with ID: %d" +msgstr "" + +#: musicbot/bot.py:2451 +msgid "Autojoining voice channels:" +msgstr "" + +#: musicbot/bot.py:2459 musicbot/bot.py:2462 +msgid "Not autojoining any voice channels" +msgstr "" + +#: musicbot/bot.py:2475 +#, python-format +msgid "Detected missing config options!\n\n" +"Problem:\n" +" You config options file is missing some options.\n" +" Default settings will be used for these options.\n" +" Here is a list of options we didn't find:\n" +" %(missing)s\n\n" +"Solution:\n" +" Copy new options from the example options file.\n" +" Or use the config command to set and save them.\n\n" +msgstr "" + +#: musicbot/bot.py:2504 +#, python-format +msgid "Event on_ready has fired %s times" +msgstr "" + +#: musicbot/bot.py:2520 +msgid "Getting application info." +msgstr "" + +#: musicbot/bot.py:2538 +msgid "Ensuring data folders exist" +msgstr "" + +#: musicbot/bot.py:2553 +msgid "Validating config" +msgstr "" + +#: musicbot/bot.py:2556 +msgid "Validating permissions config" +msgstr "" + +#: musicbot/bot.py:2566 +msgid "Disabled" +msgstr "" + +#: musicbot/bot.py:2566 +msgid "Enabled" +msgstr "" + +#: musicbot/bot.py:2569 +msgid "Options:" +msgstr "" + +#: musicbot/bot.py:2571 +#, python-format +msgid " Command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2572 +#, python-format +msgid " Default volume: %d%%" +msgstr "" + +#: musicbot/bot.py:2574 +#, python-format +msgid " Skip threshold: %(num)d votes or %(percent).0f%%" +msgstr "" + +#: musicbot/bot.py:2581 +#, python-format +msgid " Now Playing @mentions: %s" +msgstr "" + +#: musicbot/bot.py:2584 +#, python-format +msgid " Auto-Summon: %s" +msgstr "" + +#: musicbot/bot.py:2586 +#, python-format +msgid " Auto-Playlist: %(status)s (order: %(order)s)" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "random" +msgstr "" + +#: musicbot/bot.py:2589 +msgid "sequential" +msgstr "" + +#: musicbot/bot.py:2594 +#, python-format +msgid " Auto-Pause: %s" +msgstr "" + +#: musicbot/bot.py:2596 +#, python-format +msgid " Delete Messages: %s" +msgstr "" + +#: musicbot/bot.py:2601 +#, python-format +msgid " Delete Invoking: %s" +msgstr "" + +#: musicbot/bot.py:2605 +#, python-format +msgid " Delete Nowplaying: %s" +msgstr "" + +#: musicbot/bot.py:2608 +#, python-format +msgid " Debug Mode: %s" +msgstr "" + +#: musicbot/bot.py:2610 +#, python-format +msgid " Downloaded songs will be %s" +msgstr "" + +#: musicbot/bot.py:2614 +#, python-format +msgid " Delete if unused for %d days" +msgstr "" + +#: musicbot/bot.py:2617 +#, python-format +msgid " Delete if size exceeds %s" +msgstr "" + +#: musicbot/bot.py:2620 +#, python-format +msgid " Status message: %s" +msgstr "" + +#: musicbot/bot.py:2622 +#, python-format +msgid " Write current songs to file: %s" +msgstr "" + +#: musicbot/bot.py:2626 +#, python-format +msgid " Author insta-skip: %s" +msgstr "" + +#: musicbot/bot.py:2629 +#, python-format +msgid " Embeds: %s" +msgstr "" + +#: musicbot/bot.py:2631 +#, python-format +msgid " Spotify integration: %s" +msgstr "" + +#: musicbot/bot.py:2634 +#, python-format +msgid " Legacy skip: %s" +msgstr "" + +#: musicbot/bot.py:2636 +#, python-format +msgid " Leave non owners: %s" +msgstr "" + +#: musicbot/bot.py:2640 +#, python-format +msgid " Leave inactive VC: %s" +msgstr "" + +#: musicbot/bot.py:2645 +#, python-format +msgid " Timeout: %s seconds" +msgstr "" + +#: musicbot/bot.py:2649 +#, python-format +msgid " Leave at song end/empty queue: %s" +msgstr "" + +#: musicbot/bot.py:2653 +#, python-format +msgid " Leave when player idles: %s" +msgstr "" + +#: musicbot/bot.py:2657 +#, python-format +msgid " Timeout: %d seconds" +msgstr "" + +#: musicbot/bot.py:2658 +#, python-format +msgid " Self Deafen: %s" +msgstr "" + +#: musicbot/bot.py:2660 +#, python-format +msgid " Per-server command prefix: %s" +msgstr "" + +#: musicbot/bot.py:2663 +#, python-format +msgid " Search List: %s" +msgstr "" + +#: musicbot/bot.py:2665 +#, python-format +msgid " Round Robin Queue: %s" +msgstr "" + +#: musicbot/bot.py:2695 +#, python-brace-format +msgid "The requested song `{subject}` is blocked by the song blocklist." +msgstr "" + +#: musicbot/bot.py:2706 +msgid "Attempted to handle Voice Channel inactivity, but Bot is not in voice..." +msgstr "" + +#: musicbot/bot.py:2713 +#, python-format +msgid "Channel activity already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2723 +#, python-format +msgid "Channel activity waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2738 +#, python-format +msgid "Channel activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2744 +#, python-format +msgid "Channel activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2772 +#, python-format +msgid "Ignoring player inactivity in auto-joined channel: %s" +msgstr "" + +#: musicbot/bot.py:2779 +#, python-format +msgid "Player activity timer already waiting in guild: %s" +msgstr "" + +#: musicbot/bot.py:2787 +#, python-format +msgid "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:2799 +#, python-format +msgid "Player activity timer for %s has expired. Disconnecting." +msgstr "" + +#: musicbot/bot.py:2805 musicbot/bot.py:2810 +#, python-format +msgid "Player activity timer canceled for: %(channel)s in %(guild)s" +msgstr "" + +#: musicbot/bot.py:2827 +msgid "Player activity timer is being reset." +msgstr "" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "" + +#: musicbot/bot.py:3043 +#, python-format +msgid "Not adding user to block list, already blocked: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3052 +#, python-format +msgid "Not removing user from blocklist, not listed: %(id)s/%(name)s" +msgstr "" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "" + +#: musicbot/bot.py:3152 +msgid "Ivalid sub-command given. Use `help blocksong` for usage examples." +msgstr "" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3471 +msgid "Ignoring auto-pause due to network outage." +msgstr "" + +#: musicbot/bot.py:3476 +msgid "MusicPlayer has no VoiceClient or has no channel data, cannot process auto-pause." +msgstr "" + +#: musicbot/bot.py:3487 +msgid "Already processing auto-pause, ignoring this event." +msgstr "" + +#: musicbot/bot.py:3495 +#, python-format +msgid "%sVoiceClient not connected, waiting %s seconds to handle auto-pause in guild: %s" +msgstr "" + +#: musicbot/bot.py:3503 +msgid "Auto-pause waiting was cancelled." +msgstr "" + +#: musicbot/bot.py:3510 +msgid "A new MusicPlayer is being connected, ignoring old auto-pause event." +msgstr "" + +#: musicbot/bot.py:3526 +#, python-format +msgid "Playing in an empty voice channel, running auto pause for guild: %s" +msgstr "" + +#: musicbot/bot.py:3533 +#, python-format +msgid "Previously auto paused player is unpausing for guild: %s" +msgstr "" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "" + +#: musicbot/bot.py:4025 +msgid "Could not prompt for playlist playback, no message to add reactions to." +msgstr "" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "" + +#: musicbot/bot.py:4159 +msgid "Detected a spotify URL, but spotify is not enabled." +msgstr "" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "" + +#: musicbot/bot.py:4187 +msgid "Issue with extract_info(): " +msgstr "" + +#: musicbot/bot.py:4191 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "" + +#: musicbot/bot.py:4208 +#, python-format +msgid "Youtube search returned no results for: %(url)s" +msgstr "" + +#: musicbot/bot.py:4238 +#, python-format +msgid "Processed %(number)d of %(total)d songs in %(time).3f seconds at %(time_per).2f s/song" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" + +#: musicbot/bot.py:4265 +msgid "Extracted an entry with youtube:playlist as extractor key" +msgstr "" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "" + +#: musicbot/bot.py:4295 +#, python-format +msgid "Added song(s) at position %s" +msgstr "" + +#: musicbot/bot.py:4332 +#, python-format +msgid "Cannot estimate time until playing for position: %d" +msgstr "" + +#: musicbot/bot.py:4393 +#, python-format +msgid "Failed to get info from the stream request: %s" +msgstr "" + +#: musicbot/bot.py:4396 +#, python-format +msgid "Failed to exctract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4834 +#, python-format +msgid "Waiting for summon lock: %s" +msgstr "" + +#: musicbot/bot.py:4837 +#, python-format +msgid "Summon lock acquired for: %s" +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "" + +#: musicbot/bot.py:4866 +#, python-format +msgid "Joining %(guild)s/%(channel)s" +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "" + +#: musicbot/bot.py:5413 +msgid "The speed you proivded is invalid. Use a number between 0.5 and 100." +msgstr "" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "" + +#: musicbot/bot.py:5810 +#, python-format +msgid "Doing set with on %(config)s == %(value)s" +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5845 +#, python-format +msgid "Resetting %(config)s to default %(value)s" +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "" + +#: musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6056 +msgid "Skipped the current playlist entry." +msgstr "" + +#: musicbot/bot.py:6099 +msgid "Not enough entries to paginate the queue." +msgstr "" + +#: musicbot/bot.py:6103 +msgid "Could not post queue message, no message to add reactions to." +msgstr "" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double check the ID and try again." +msgstr "" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an errror:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6736 +#, python-format +msgid "Doing set on %(option)s with value: %(value)s" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6940 +#, python-format +msgid "MusicBot found a %s with no guild! This could be a problem." +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7172 +#, python-format +msgid "Activating debug breakpoint ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "" + +#: musicbot/bot.py:7287 +msgid "Debug code ran with eval()." +msgstr "" + +#: musicbot/bot.py:7297 +msgid "Debug code ran with exec()." +msgstr "" + +#: musicbot/bot.py:7300 +msgid "Debug code failed to execute." +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "" + +#: musicbot/bot.py:7483 +msgid "Failed while checking for updates via git command." +msgstr "" + +#: musicbot/bot.py:7512 +msgid "Package missing meta in pip report." +msgstr "" + +#: musicbot/bot.py:7526 +msgid "Failed to get pip update status due to some error." +msgstr "" + +#: musicbot/bot.py:7586 +msgid "Got a strange voice client entry." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "" + +#: musicbot/bot.py:7740 +#, python-format +msgid "Could not remove old, disabled cookies file: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7772 +#, python-format +msgid "Got a message with no channel, somehow: %s" +msgstr "" + +#: musicbot/bot.py:7800 +#, python-format +msgid "Ignoring command from myself (%s)" +msgstr "" + +#: musicbot/bot.py:7808 +#, python-format +msgid "Ignoring command from other bot (%s)" +msgstr "" + +#: musicbot/bot.py:7816 +#, python-format +msgid "Ignoring command from channel of type: %s" +msgstr "" + +#: musicbot/bot.py:7900 +#, python-format +msgid "User in block list: %(id)s/%(name)s tried command: %(command)s" +msgstr "" + +#: musicbot/bot.py:7907 +#, python-format +msgid "Message from %(id)s/%(name)s: %(message)s" +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "" + +#: musicbot/bot.py:8060 +#, python-format +msgid "Invalid command usage, missing values for params: %(params)r" +msgstr "" + +#: musicbot/bot.py:8102 +#, python-format +msgid "Error in %(command)s: %(err_name)s: %(err_text)s" +msgstr "" + +#: musicbot/bot.py:8126 +#, python-format +msgid "Exception while handling command: %(command)s" +msgstr "" + +#: musicbot/bot.py:8158 +#, python-format +msgid "Cannot generate help for missing command: %s" +msgstr "" + +#: musicbot/bot.py:8162 +#, python-format +msgid "Missing help data for command: %s" +msgstr "" + +#: musicbot/bot.py:8279 +#, python-format +msgid "Leaving voice channel %s in %s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8288 +msgid "MusicBot has become connected." +msgstr "" + +#: musicbot/bot.py:8292 +msgid "MusicBot has become disconnected." +msgstr "" + +#: musicbot/bot.py:8297 +#, python-format +msgid "Got a Socket Event: %s" +msgstr "" + +#: musicbot/bot.py:8313 +msgid "VoiceState updated before on_ready finished" +msgstr "" + +#: musicbot/bot.py:8326 +#, python-format +msgid "Ignoring %s in %s as it is a bound voice channel." +msgstr "" + +#: musicbot/bot.py:8335 +#, python-format +msgid "%s has been detected as empty. Handling timeouts." +msgstr "" + +#: musicbot/bot.py:8346 +#, python-format +msgid "A user joined %s, cancelling timer." +msgstr "" + +#: musicbot/bot.py:8359 +#, python-format +msgid "The bot got moved and the voice channel %s is empty. Handling timeouts." +msgstr "" + +#: musicbot/bot.py:8368 +#, python-format +msgid "The bot got moved and the voice channel %s is not empty." +msgstr "" + +#: musicbot/bot.py:8402 +#, python-format +msgid "No longer following user %s" +msgstr "" + +#: musicbot/bot.py:8424 +#, python-format +msgid "Following user `%(user)s` to channel: %(channel)s" +msgstr "" + +#: musicbot/bot.py:8444 +msgid "VoiceState disconnect before.channel is None." +msgstr "" + +#: musicbot/bot.py:8471 +#, python-format +msgid "Disconnected from voice by Discord API in: %(guild)s/%(channel)s (Code: %(code)s) [S:%(state)s]" +msgstr "" + +#: musicbot/bot.py:8493 +#, python-format +msgid "Cannot use auto-join channel with type: %(type)s in guild: %(guild)s" +msgstr "" + +#: musicbot/bot.py:8500 +#, python-format +msgid "Cannot find the auto-joined channel, was it deleted? Guild: %s" +msgstr "" + +#: musicbot/bot.py:8506 +#, python-format +msgid "Reconnecting to auto-joined guild on channel: %s" +msgstr "" + +#: musicbot/bot.py:8519 +#, python-format +msgid "Cannot auto join channel: %s" +msgstr "" + +#: musicbot/bot.py:8535 +#, python-format +msgid "Bot has been added to guild: %s" +msgstr "" + +#: musicbot/bot.py:8547 +#, python-format +msgid "Left guild '%s' due to bot owner not found." +msgstr "" + +#: musicbot/bot.py:8561 +#, python-format +msgid "Creating data folder for guild %s" +msgstr "" + +#: musicbot/bot.py:8569 +#, python-format +msgid "Bot has been removed from guild: %s" +msgstr "" + +#: musicbot/bot.py:8570 +msgid "Updated guild list:" +msgstr "" + +#: musicbot/bot.py:8585 +#, python-format +msgid "Guild \"%s\" has become available." +msgstr "" + +#: musicbot/bot.py:8591 +#, python-format +msgid "Resuming player in \"%s\" due to availability." +msgstr "" + +#: musicbot/bot.py:8608 +#, python-format +msgid "Guild \"%s\" has become unavailable." +msgstr "" + +#: musicbot/bot.py:8614 +#, python-format +msgid "Pausing player in \"%s\" due to unavailability." +msgstr "" + +#: musicbot/bot.py:8630 +#, python-format +msgid "Guild update for: %s" +msgstr "" + +#: musicbot/bot.py:8636 +#, python-brace-format +msgid "Guild attribute {name} is now: {a_val} -- Was: {b_val}" +msgstr "" + +#: musicbot/bot.py:8667 +#, python-format +msgid "Channel update for: %(channel)s -- %(changes)s" +msgstr "" + +#: musicbot/config.py:86 +#, python-format +msgid "Creating %s" +msgstr "" + +#: musicbot/config.py:107 +#, python-format +msgid "Loading config from: %s" +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config optoins file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1113 +#, python-format +msgid "Cannot store more than %s log files. Option LogsMaxKept will be limited instead." +msgstr "" + +#: musicbot/config.py:1121 +msgid "Config option LogsDateFormat is empty and this will break log file rotation. Using default instead." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1149 +msgid "An exception was thrown while validating AudioCachePath." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1165 +#, python-format +msgid "Audio Cache will be stored in: %s" +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1197 +msgid "StatusMessage config option is too long, it will be limited to 128 characters." +msgstr "" + +#: musicbot/config.py:1206 +#, python-format +msgid "The default playback speed must be between 0.5 and 100.0. The option value of %.3f will be limited instead." +msgstr "" + +#: musicbot/config.py:1216 +msgid "Cookies TXT file detected. MusicBot will pass them to yt-dlp.\n" +"Cookies are not recommended, may not be supported, and may totally break.\n" +"Copying cookies from your web-browser risks exposing personal data and \n" +"in the best case can result in your accounts being banned!\n\n" +"You have been warned! Good Luck! \\U0001F596\n" +msgstr "" + +#: musicbot/config.py:1234 +msgid "Validating options with service data..." +msgstr "" + +#: musicbot/config.py:1240 +msgid "Acquired owner id via API" +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching OwnerID automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the OwnerID config option or try again later." +msgstr "" + +#: musicbot/config.py:1256 +msgid "MusicBot does not have a user instance, cannot proceed." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The OwnerID config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the OwnerID field." +msgstr "" + +#: musicbot/config.py:1286 +msgid "Config options file not found. Checking for alternatives..." +msgstr "" + +#: musicbot/config.py:1298 +#, python-format +msgid "Renaming %(ini_file)s to %(option_file)s, you should probably turn file extensions on." +msgstr "" + +#: musicbot/config.py:1306 +#, python-format +msgid "Copying existing example options file: %(example_file)s" +msgstr "" + +#: musicbot/config.py:1315 +#, python-format +msgid "Generated a new %(example_file)s and copied it to %(option_file)s" +msgstr "" + +#: musicbot/config.py:1323 +msgid "Something went wrong while trying to find a config option file." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:1369 +msgid "Dev Bug! Config option has getter that is not available." +msgstr "" + +#: musicbot/config.py:1374 +msgid "Dev Bug! Config option has invalid type, getter and default must be the same type." +msgstr "" + +#: musicbot/config.py:1394 +msgid "Option was missing previously." +msgstr "" + +#: musicbot/config.py:1409 +#, python-format +msgid "Config section not in parsed config! Missing: %s" +msgstr "" + +#: musicbot/config.py:1414 +#, python-format +msgid "Saved config option: %(config)s = %(value)s" +msgstr "" + +#: musicbot/config.py:1427 +#, python-format +msgid "Failed to save config: %s" +msgstr "" + +#: musicbot/config.py:1932 +msgid "Option names are not unique between INI sections! Resolver is disabled." +msgstr "" + +#: musicbot/config.py:2094 musicbot/permissions.py:859 +#, python-format +msgid "Failed to save default INI file at: %s" +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/config.py:2283 +#, python-format +msgid "Invalid DebugLevel option \"%(value)s\" given, falling back to level: %(fallback)s" +msgstr "" + +#: musicbot/config.py:2304 +#, python-format +msgid "Option [%(section)s] > %(option)s has invalid config value '%(value)s' using default instead." +msgstr "" + +#: musicbot/config.py:2353 +#, python-format +msgid "Option [%(section)s] > %(option)s has a value greater than 100 %% (%(value)s) and will be set to %(fallback)s instead." +msgstr "" + +#: musicbot/config.py:2437 +#, python-format +msgid "Renaming INI file entry [%(old_s)s] > %(old_o)s to [%(new_s)s] > %(new_o)s" +msgstr "" + +#: musicbot/config.py:2493 +msgid "Upgrading config file with renamed options..." +msgstr "" + +#: musicbot/config.py:2510 +msgid "Failed to upgrade config. You'll need to upgrade it manually." +msgstr "" + +#: musicbot/config.py:2551 +#, python-format +msgid "Blocklist file not found: %s" +msgstr "" + +#: musicbot/config.py:2572 +#, python-format +msgid "Could not load block list from file: %s" +msgstr "" + +#: musicbot/config.py:2610 musicbot/config.py:2643 +#, python-format +msgid "Could not update the blocklist file: %s" +msgstr "" + +#: musicbot/config.py:2670 +#, python-format +msgid "Loaded User Blocklist with %s entires." +msgstr "" + +#: musicbot/config.py:2681 +#, python-format +msgid "We found a legacy blacklist file, it will be renamed to: %s" +msgstr "" + +#: musicbot/config.py:2727 +#, python-format +msgid "Loaded a Song Blocklist with %s entries." +msgstr "" + +#: musicbot/constructs.py:221 +msgid "Cannot load data for guild with ID 0. This is likely a bug in the code!" +msgstr "" + +#: musicbot/constructs.py:230 +#, python-format +msgid "No file for guild %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:239 +#, python-format +msgid "Loading guild data for guild with ID: %(id)s/%(name)s" +msgstr "" + +#: musicbot/constructs.py:246 +#, python-format +msgid "An OS error prevented reading guild data file: %s" +msgstr "" + +#: musicbot/constructs.py:255 +#, python-format +msgid "Guild %(id)s/%(name)s has custom command prefix: %(prefix)s" +msgstr "" + +#: musicbot/constructs.py:275 +msgid "Cannot save data for guild with ID 0. This is likely a bug in the code!" +msgstr "" + +#: musicbot/constructs.py:298 +msgid "Could not save guild specific data due to OS Error." +msgstr "" + +#: musicbot/constructs.py:301 +msgid "Failed to serialize guild specific data due to invalid data." +msgstr "" + +#: musicbot/downloader.py:94 +#, python-format +msgid "Forcing YTDLP to use User Agent: %s" +msgstr "" + +#: musicbot/downloader.py:105 +#, python-format +msgid "MusicBot will use cookies for yt-dlp from: %s" +msgstr "" + +#: musicbot/downloader.py:111 +msgid "Yt-dlp will use your configured proxy server." +msgstr "" + +#: musicbot/downloader.py:134 +msgid "Original OAuth2 plugin is installed and will be used instead.\n" +"This may cause MusicBot to not close completely, or hang pending authorization!\n" +"To close MusicBot, you must manually Kill the MusicBot process!\n" +"Yt-dlp is being set to show warnings and other log messages, to show the Auth code.\n" +"Uninstall the yt-dlp-youtube-oauth2 package to use integrated OAuth2 features instead." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "" + +#: musicbot/downloader.py:243 +msgid "Checking media headers failed due to timeout." +msgstr "" + +#: musicbot/downloader.py:246 +#, python-format +msgid "Failed HEAD request for: %s" +msgstr "" + +#: musicbot/downloader.py:247 +msgid "HEAD Request exception: " +msgstr "" + +#: musicbot/downloader.py:315 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON):\n" +"%s" +msgstr "" + +#: musicbot/downloader.py:317 +#, python-format +msgid "Sanitized YTDL Extraction Info (not JSON): %s" +msgstr "" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "" + +#: musicbot/downloader.py:436 +#, python-brace-format +msgid "Called extract_info with: '{song_subject}', {args}, {kwargs}" +msgstr "" + +#: musicbot/downloader.py:442 +msgid "Cannot run extraction, loop is closed. (This is normal on shutdowns.)" +msgstr "" + +#: musicbot/downloader.py:444 +msgid "Cannot continue extraction, event loop is closed." +msgstr "" + +#: musicbot/downloader.py:453 +msgid "Spotify URL is invalid or not supported." +msgstr "" + +#: musicbot/downloader.py:486 musicbot/downloader.py:507 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:490 +msgid "Download Error with stream URL" +msgstr "" + +#: musicbot/downloader.py:495 +msgid "Assuming content is a direct stream" +msgstr "" + +#: musicbot/downloader.py:503 +msgid "Cannot stream an invalid URL." +msgstr "" + +#: musicbot/downloader.py:514 +msgid "Caught NoSupportingHandlers, trying again after replacing colon with space." +msgstr "" + +#: musicbot/downloader.py:541 +msgid "Extractor youtube:search returned single-entry result, replacing base info with entry info." +msgstr "" + +#: musicbot/downloader.py:557 +#, python-format +msgid "Called safe_extract_info with: %(args)s, %(kws)s" +msgstr "" + +#: musicbot/downloader.py:577 +msgid "The local media file could not be found." +msgstr "" + +#: musicbot/downloader.py:615 +msgid "Missing __input_subject from YtdlpResponseDict" +msgstr "" + +#: musicbot/downloader.py:620 +msgid "Entries is not a list in YtdlpResponseDict, set process=True to avoid this." +msgstr "" + +#: musicbot/downloader.py:849 +#, python-format +msgid "Warning, duration error for: %(url)s" +msgstr "" + +#: musicbot/entry.py:45 +msgid "module 'pymediainfo' not found, will fall back to ffprobe." +msgstr "" + +#: musicbot/entry.py:135 +#, python-format +msgid "Created future for %r" +msgstr "" + +#: musicbot/entry.py:147 +#, python-format +msgid "Completed futures for %(entry)r with %(callback)r" +msgstr "" + +#: musicbot/entry.py:157 +msgid "Unhandled exception in _for_each_future callback." +msgstr "" + +#: musicbot/entry.py:188 +#, python-format +msgid "Starting asyncio subprocess (%(process)s) with command: %(run)s" +msgstr "" + +#: musicbot/entry.py:223 +#, python-format +msgid "Extraction did not provide a duration for this entry.\n" +"MusicBot cannot estimate queue times until it is downloaded.\n" +"Entry name: %s" +msgstr "" + +#: musicbot/entry.py:339 musicbot/entry.py:850 musicbot/entry.py:1069 +msgid "Entry data is missing version number, cannot deserialize." +msgstr "" + +#: musicbot/entry.py:342 musicbot/entry.py:853 musicbot/entry.py:1072 +msgid "Entry data has the wrong version number, cannot deserialize." +msgstr "" + +#: musicbot/entry.py:358 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:374 +#, python-format +msgid "Deserialized URLPlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:396 +#, python-format +msgid "Deserialized URLPlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:402 +msgid "Deserialized URLPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:412 musicbot/entry.py:919 musicbot/entry.py:1142 +#, python-format +msgid "Could not load %s" +msgstr "" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:461 musicbot/entry.py:924 musicbot/entry.py:1175 +#, python-format +msgid "Getting ready for entry: %r" +msgstr "" + +#: musicbot/entry.py:478 +msgid "Download cached with different extension..." +msgstr "" + +#: musicbot/entry.py:487 +msgid "Local size different from remote size. Re-downloading..." +msgstr "" + +#: musicbot/entry.py:491 +#, python-format +msgid "Download already cached at: %s" +msgstr "" + +#: musicbot/entry.py:511 musicbot/entry.py:1191 +#, python-format +msgid "MusicBot could not get duration data for this entry.\n" +"Queue time estimation may be unavailable until this track is cleared.\n" +"Entry file: %s" +msgstr "" + +#: musicbot/entry.py:518 +#, python-format +msgid "Got duration of %(time)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/entry.py:529 musicbot/entry.py:1209 +msgid "There as a problem with working out EQ, likely caused by a strange installation of FFmpeg. This has not impacted the ability for the bot to work, but will mean your tracks will not be equalised." +msgstr "" + +#: musicbot/entry.py:541 musicbot/entry.py:1222 +msgid "Exception while checking entry data." +msgstr "" + +#: musicbot/entry.py:552 musicbot/entry.py:1233 +#, python-format +msgid "Trying to get duration via pymediainfo for: %s" +msgstr "" + +#: musicbot/entry.py:558 musicbot/entry.py:1239 +msgid "Failed to get duration via pymediainfo." +msgstr "" + +#: musicbot/entry.py:565 musicbot/entry.py:1246 +#, python-format +msgid "Trying to get duration via ffprobe for: %s" +msgstr "" + +#: musicbot/entry.py:568 musicbot/entry.py:1249 +msgid "Could not locate ffprobe in your path!" +msgstr "" + +#: musicbot/entry.py:589 musicbot/entry.py:1270 +msgid "ffprobe returned something that could not be used." +msgstr "" + +#: musicbot/entry.py:592 musicbot/entry.py:1273 +msgid "ffprobe could not be executed for some reason." +msgstr "" + +#: musicbot/entry.py:602 musicbot/entry.py:1283 +#, python-format +msgid "Calculating mean volume of: %s" +msgstr "" + +#: musicbot/entry.py:605 musicbot/entry.py:1286 +msgid "Could not locate ffmpeg on your path!" +msgstr "" + +#: musicbot/entry.py:631 musicbot/entry.py:1312 +msgid "Could not parse I in normalise json." +msgstr "" + +#: musicbot/entry.py:639 musicbot/entry.py:1320 +msgid "Could not parse LRA in normalise json." +msgstr "" + +#: musicbot/entry.py:647 musicbot/entry.py:1328 +msgid "Could not parse TP in normalise json." +msgstr "" + +#: musicbot/entry.py:655 musicbot/entry.py:1336 +msgid "Could not parse thresh in normalise json." +msgstr "" + +#: musicbot/entry.py:663 musicbot/entry.py:1344 +msgid "Could not parse offset in normalise json." +msgstr "" + +#: musicbot/entry.py:680 +#, python-format +msgid "Download started: %r" +msgstr "" + +#: musicbot/entry.py:685 +#, python-format +msgid "Download attempt %s of 3..." +msgstr "" + +#: musicbot/entry.py:697 +#, python-format +msgid "Download incomplete, retrying in %(time).1f seconds. Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:705 +#, python-format +msgid "Download failed, not retrying! Reason: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:722 +msgid "Extraction encountered an unhandled exception." +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:731 +#, python-format +msgid "Download failed: %r" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "" + +#: musicbot/entry.py:734 +#, python-format +msgid "Download complete: %r" +msgstr "" + +#: musicbot/entry.py:866 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:882 +#, python-format +msgid "Deserialized StreamPlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:904 +#, python-format +msgid "Deserialized StreamPlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:910 +msgid "Deserialized StreamPlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:1088 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find channel with id: %s" +msgstr "" + +#: musicbot/entry.py:1104 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry has the wrong channel type: %s" +msgstr "" + +#: musicbot/entry.py:1126 +#, python-format +msgid "Deserialized LocalFilePlaylistEntry cannot find author with id: %s" +msgstr "" + +#: musicbot/entry.py:1132 +msgid "Deserialized LocalFilePlaylistEntry has an author ID but no channel for lookup!" +msgstr "" + +#: musicbot/entry.py:1198 +#, python-format +msgid "Got duration of %(seconds)s seconds for file: %(file)s" +msgstr "" + +#: musicbot/filecache.py:118 +#, python-format +msgid "Failed to delete cache file: %s" +msgstr "" + +#: musicbot/filecache.py:129 +msgid "Audio cache directory has been removed." +msgstr "" + +#: musicbot/filecache.py:136 +msgid "Audio cache directory could not be removed or renamed." +msgstr "" + +#: musicbot/filecache.py:143 +msgid "Audio cache directory could not be removed." +msgstr "" + +#: musicbot/filecache.py:152 +msgid "Audio cache has no limits set, nothing to delete." +msgstr "" + +#: musicbot/filecache.py:215 +#, python-format +msgid "Audio cache deleted %(number)s file(s), total of %(size)s removed." +msgstr "" + +#: musicbot/filecache.py:223 +#, python-format +msgid "Audio cached retained %(number)s file(s) from autoplaylist, total of %(size)s retained." +msgstr "" + +#: musicbot/filecache.py:232 +#, python-format +msgid "Audio cache is now %(size)s over %(number)s file(s)." +msgstr "" + +#: musicbot/filecache.py:248 +msgid "Audio cache directory is missing, nothing to delete." +msgstr "" + +#: musicbot/filecache.py:267 +msgid "Audio cache file is from autoplaylist but marked as busted, ignoring it." +msgstr "" + +#: musicbot/filecache.py:278 +#, python-format +msgid "Cache level requires cleanup. %s" +msgstr "" + +#: musicbot/filecache.py:302 +msgid "Autoplaylist has no cache map, moving on." +msgstr "" + +#: musicbot/filecache.py:310 +#, python-format +msgid "Loaded autoplaylist cache map with %s entries." +msgstr "" + +#: musicbot/filecache.py:314 +msgid "Failed to load autoplaylist cache map." +msgstr "" + +#: musicbot/filecache.py:333 +#, python-format +msgid "Saved autoplaylist cache map with %s entries." +msgstr "" + +#: musicbot/filecache.py:337 +msgid "Failed to save autoplaylist cache map." +msgstr "" + +#: musicbot/filecache.py:355 +#, python-format +msgid "Autoplaylist cache map conflict on Key: %(file)s Old: %(old)s New: %(new)s" +msgstr "" + +#: musicbot/i18n.py:229 +#, python-format +msgid "Lang Args Error: %s" +msgstr "" + +#: musicbot/i18n.py:290 +#, python-format +msgid "Failed to load log translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/i18n.py:333 +#, python-format +msgid "Failed to load discord translations for any of: [%s] in: %s" +msgstr "" + +#: musicbot/json.py:14 +#, python-format +msgid "Init JSON obj from file: %s" +msgstr "" + +#: musicbot/json.py:27 +#, python-format +msgid "Error parsing %s as JSON" +msgstr "" + +#: musicbot/json.py:36 +#, python-format +msgid "Could not grab data from JSON key: %s" +msgstr "" + +#: musicbot/logs.py:158 +msgid "Skipping logger setup, already set up" +msgstr "" + +#: musicbot/logs.py:314 +#, python-format +msgid "Log level was previously set via override to: %s" +msgstr "" + +#: musicbot/logs.py:323 +#, python-format +msgid "Changing log level to: %s" +msgstr "" + +#: musicbot/logs.py:352 +msgid "MusicBot loggers have been called to shutdown." +msgstr "" + +#: musicbot/permissions.py:118 +#, python-format +msgid "Permissions file not found, copying from: %s" +msgstr "" + +#: musicbot/permissions.py:128 +#, python-format +msgid "Error copying example permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:165 +msgid "OwnerID is set auto, will set correctly later." +msgstr "" + +#: musicbot/permissions.py:182 +msgid "Validating permissions..." +msgstr "" + +#: musicbot/permissions.py:184 +msgid "Setting auto OwnerID for owner permissions group." +msgstr "" + +#: musicbot/permissions.py:238 +#, python-format +msgid "Updating group in permssions file: %s" +msgstr "" + +#: musicbot/permissions.py:244 +#, python-format +msgid "Deleting group from permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:249 +#, python-format +msgid "Adding new group to permissions file: %s" +msgstr "" + +#: musicbot/permissions.py:264 +msgid "Saving permissions file now." +msgstr "" + +#: musicbot/permissions.py:270 +msgid "ConfigUpdater could not parse the permissions file!" +msgstr "" + +#: musicbot/permissions.py:272 +msgid "You have a duplicate section, fix your Permissions file!" +msgstr "" + +#: musicbot/permissions.py:274 +#, python-format +msgid "Failed to save permissions group: %s" +msgstr "" + +#: musicbot/permissions.py:289 +msgid "Dev Bug! Permission has getter that is not available." +msgstr "" + +#: musicbot/permissions.py:294 +msgid "Dev Bug! Permission has invalid type, getter and default must be the same type." +msgstr "" + +#: musicbot/permissions.py:535 +msgid "Max search items can't be larger than 100. Setting to 100." +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/player.py:85 +#, python-format +msgid "Cleanup got called on the audio source: %r" +msgstr "" + +#: musicbot/player.py:190 +#, python-format +msgid "MusicPlayer.skip() is called: %s" +msgstr "" + +#: musicbot/player.py:200 +#, python-format +msgid "MusicPlayer.stop() is called: %s" +msgstr "" + +#: musicbot/player.py:215 +msgid "Guild or network unavailable, cannot resume playback." +msgstr "" + +#: musicbot/player.py:219 +#, python-format +msgid "MusicPlayer.resume() is called: %s" +msgstr "" + +#: musicbot/player.py:239 +#, python-format +msgid "MusicPlayer.pause() is called: %s" +msgstr "" + +#: musicbot/player.py:261 +#, python-format +msgid "MusicPlayer.kill() is called: %s" +msgstr "" + +#: musicbot/player.py:287 +msgid "Playback finished, but _current_entry is None." +msgstr "" + +#: musicbot/player.py:342 +msgid "Possible Warning from kill_current_player()" +msgstr "" + +#: musicbot/player.py:361 +#, python-format +msgid "MusicPlayer.play() is called: %s" +msgstr "" + +#: musicbot/player.py:371 +msgid "MusicPlayer is dead, cannot play." +msgstr "" + +#: musicbot/player.py:376 +msgid "Guild or network unavailable, cannot start playback." +msgstr "" + +#: musicbot/player.py:381 +msgid "MusicPlayer was previously paused, resuming current player." +msgstr "" + +#: musicbot/player.py:387 +msgid "MusicPlayer already locked for playback, this call is ignored." +msgstr "" + +#: musicbot/player.py:398 +msgid "Failed to get next entry." +msgstr "" + +#: musicbot/player.py:402 +msgid "Failed to process entry for playback." +msgstr "" + +#: musicbot/player.py:453 +#, python-format +msgid "Creating player with options: ffmpeg %(before)s -i %(input)s %(after)s" +msgstr "" + +#: musicbot/player.py:457 +#, python-format +msgid "Playing %(source)r using %(client)r" +msgstr "" + +#: musicbot/player.py:488 +#, python-format +msgid "Skipping deletion of '%s', found song in queue" +msgstr "" + +#: musicbot/player.py:492 +#, python-format +msgid "Deleting file: %s" +msgstr "" + +#: musicbot/player.py:497 +#, python-format +msgid "File deleted: %s" +msgstr "" + +#: musicbot/player.py:501 +msgid "Cannot delete file, it is currently in use." +msgstr "" + +#: musicbot/player.py:504 +msgid "Cannot delete file due to a permissions error." +msgstr "" + +#: musicbot/player.py:509 +msgid "Cannot delete file, it was not found." +msgstr "" + +#: musicbot/player.py:515 +msgid "Error while trying to delete file." +msgstr "" + +#: musicbot/player.py:521 +msgid "[Config:SaveVideos] Could not delete file, giving up and moving on" +msgstr "" + +#: musicbot/player.py:583 +#, python-format +msgid "Deserialize returned a non-MusicPlayer: %s" +msgstr "" + +#: musicbot/player.py:588 +msgid "Failed to deserialize player" +msgstr "" + +#: musicbot/player.py:650 +#, python-format +msgid "Data from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:660 +#, python-format +msgid "Error from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:668 +#, python-format +msgid "Warning from ffmpeg: %s" +msgstr "" + +#: musicbot/player.py:697 +msgid "Unknown error decoding message from ffmpeg" +msgstr "" + +#: musicbot/player.py:701 +#, python-format +msgid "Decoded data from ffmpeg: %s" +msgstr "" + +#: musicbot/playlist.py:121 +#, python-format +msgid "Adding stream entry for URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "" + +#: musicbot/playlist.py:177 +msgid "Entry info appears to be a stream, adding stream entry..." +msgstr "" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:203 +msgid "Got text/html for content-type, this might be a stream." +msgstr "" + +#: musicbot/playlist.py:210 +#, python-format +msgid "Questionable content-type \"%(type)s\" for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:215 +#, python-format +msgid "Adding URLPlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:235 +#, python-format +msgid "Adding LocalFilePlaylistEntry for: %(subject)s" +msgstr "" + +#: musicbot/playlist.py:280 +#, python-format +msgid "Ignored video from compound playlist link with ID: %s" +msgstr "" + +#: musicbot/playlist.py:292 +#, python-format +msgid "Not allowing entry that is in song block list: %(title)s URL: %(url)s" +msgstr "" + +#: musicbot/playlist.py:305 +#, python-format +msgid "Ignoring song in entries by '%s', duration longer than permitted maximum." +msgstr "" + +#: musicbot/playlist.py:317 +#, python-format +msgid "Not adding youtube video because it is marked private or deleted: %s" +msgstr "" + +#: musicbot/playlist.py:342 +msgid "Could not add item" +msgstr "" + +#: musicbot/playlist.py:343 +#, python-format +msgid "Item: %s" +msgstr "" + +#: musicbot/playlist.py:346 +#, python-format +msgid "Skipped %s bad entries" +msgstr "" + +#: musicbot/playlist.py:387 +msgid "Reorder looping over entries." +msgstr "" + +#: musicbot/playlist.py:469 +#, python-format +msgid "Pre-downloading next track: %r" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:301 +#, python-format +msgid "Ignored non-track entry in playlist with type: %s" +msgstr "" + +#: musicbot/spotify.py:487 +#, python-format +msgid "Spotify Album total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:492 +#, python-format +msgid "Getting Spofity Album Next URL: %s" +msgstr "" + +#: musicbot/spotify.py:503 +#, python-format +msgid "Spotify Album Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:507 +msgid "Spotify Album has more tracks than initial total." +msgstr "" + +#: musicbot/spotify.py:530 +#, python-format +msgid "Spotify Playlist total tacks: %(total)s Next URL: %(url)s" +msgstr "" + +#: musicbot/spotify.py:535 +#, python-format +msgid "Getting Spofity Playlist Next URL: %s" +msgstr "" + +#: musicbot/spotify.py:546 +#, python-format +msgid "Spotify Playlist Object may not be complete, expected %(total)s tracks but got %(number)s" +msgstr "" + +#: musicbot/spotify.py:550 +msgid "Spotify Playlist has more tracks than initial total." +msgstr "" + +#: musicbot/spotify.py:555 +#, python-format +msgid "Spotify Playlist contained %s usable tracks." +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "" + +#: musicbot/spotify.py:596 +#, python-format +msgid "Failed making GET request to url: %s" +msgstr "" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:632 +#, python-format +msgid "Failed making POST request to url: %s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client id and client secret" +msgstr "" + +#: musicbot/spotify.py:679 +msgid "Created a new Guest Mode access token." +msgstr "" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "" + +#: musicbot/spotify.py:700 +msgid "Created a new Client Mode access token." +msgstr "" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:743 +msgid "Failed to get Spotify Guest Token." +msgstr "" + +#: musicbot/spotify.py:750 +#, python-format +msgid "Failed to get Guest Token due to: %(raw_error)s" +msgstr "" + +#: musicbot/utils.py:175 +msgid "Only the owner can use this command." +msgstr "" + +#: musicbot/utils.py:195 +msgid "Only dev users can use this command." +msgstr "" + +#: musicbot/utils.py:281 musicbot/utils.py:323 +msgid "Cannot count members when voice_channel is None." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:84 +#, python-format +msgid "Failed to save ytdlp oauth2 token data due to: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:91 +msgid "Loading Youtube TV OAuth2 token data." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:101 +#, python-format +msgid "Failed to load ytdlp oauth2 token data due to: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:109 +msgid "Storing Youtube TV OAuth2 token data" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:127 +msgid "validate ytdlp token..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:137 +msgid "init oauth for ytdlp" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:141 +msgid "Invalid cached OAuth2 token data." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:156 +msgid "Access token expired, refreshing" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:167 +msgid "handling oauth2" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:178 +msgid "Youtube cookies have been provided, but OAuth2 is being used. If you encounter problems, stop providing Youtube cookies to yt-dlp." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:196 +msgid "refreshing oauth2 token" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:214 +#, python-format +msgid "Failed to refresh OAuth2 access token due to: %s\n" +"Restarting authorization flow..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:232 +msgid "Starting oauth2 flow..." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:251 +#, python-format +msgid "\n" +"NOTICE:\n" +"To give yt-dlp access to your account, visit:\n" +" %s\n" +"Then enter this authorization code: %s\n" +"You have %s seconds to complete authorization.\n" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:260 +msgid "The application may hang until authorization time out if closed at this point. This is normal." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:266 +msgid "Timed out while waiting for OAuth2 token." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:294 +msgid "The device code has expired, restarting authorization flow for yt-dlp." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:300 +msgid "Yt-dlp OAuth2 authorization successful." +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:330 +#, python-format +msgid "Adding OAuth2 Plugin to Yt-dlp IE: %s" +msgstr "" + +#: musicbot/ytdlp_oauth2_plugin.py:352 +#, python-format +msgid "Default Yt-dlp Clients: %s" +msgstr "" + +#: run.py:99 +msgid "Could not find git executable." +msgstr "" + +#: run.py:148 +msgid "Attempting to upgrade with `git pull` on current path." +msgstr "" + +#: run.py:155 +#, python-format +msgid "Result of git pull: %s" +msgstr "" + +#: run.py:163 +msgid "Upgrade failed, you need to run `git pull` manually." +msgstr "" + +#: run.py:173 +msgid "Cannot execute pip." +msgstr "" + +#: run.py:180 +msgid "Error using -m method" +msgstr "" + +#: run.py:226 +msgid "PIP failed while calling sub-process." +msgstr "" + +#: run.py:229 +msgid "PIP failed due to Permissions Error." +msgstr "" + +#: run.py:233 +#, python-format +msgid "PIP failed due to missing Python executable? (%s)" +msgstr "" + +#: run.py:238 +msgid "PIP failed due to OSError." +msgstr "" + +#: run.py:259 +msgid "Could not decode pip update report JSON." +msgstr "" + +#: run.py:281 +msgid "Cannot locate or execute python -m pip" +msgstr "" + +#: run.py:284 +#, python-format +msgid "Attempting to upgrade with `%s` on current path..." +msgstr "" + +#: run.py:302 +#, python-format +msgid "Result of pip upgrade:\n" +"%s" +msgstr "" + +#: run.py:307 +#, python-format +msgid "Result exit code from pip upgrade: %s" +msgstr "" + +#: run.py:322 +msgid "Upgrade failed to execute or we could not understand the output" +msgstr "" + +#: run.py:325 +#, python-format +msgid "You may need to run `%s` manually." +msgstr "" + +#: run.py:334 +msgid "Press enter to continue . . ." +msgstr "" + +#: run.py:347 +msgid "Starting sanity checks" +msgstr "" + +#: run.py:361 +msgid "Required checks passed." +msgstr "" + +#: run.py:374 +msgid "Skipped checking for updates." +msgstr "" + +#: run.py:376 +msgid "Optional checks passed." +msgstr "" + +#: run.py:384 +msgid "Checking for Python 3.8+" +msgstr "" + +#: run.py:388 +#, python-format +msgid "Python 3.8+ is required. This version is %s" +msgstr "" + +#: run.py:390 +msgid "Attempting to locate Python 3.8..." +msgstr "" + +#: run.py:398 +msgid "Could not locate py.exe" +msgstr "" + +#: run.py:409 +msgid "Could not execute `py.exe -3.8` " +msgstr "" + +#: run.py:413 +msgid "Python 3 found. Launching bot..." +msgstr "" + +#: run.py:418 +msgid "Trying \"python3.8\"" +msgstr "" + +#: run.py:421 +msgid "Could not locate python3.8 on path." +msgstr "" + +#: run.py:435 +#, python-format +msgid "\n" +"Python 3.8 found. Re-launching bot using: %s run.py\n" +msgstr "" + +#: run.py:440 +msgid "Could not find Python 3.8 or higher. Please run the bot using Python 3.8" +msgstr "" + +#: run.py:473 +msgid "Ensuring we're in the right environment" +msgstr "" + +#: run.py:498 +#, python-format +msgid "Failed environment check, %s" +msgstr "" + +#: run.py:509 +msgid "Current working directory does not seem to be writable" +msgstr "" + +#: run.py:510 +msgid "Please move the bot to a folder that is writable" +msgstr "" + +#: run.py:519 +#, python-format +msgid "Detected FFmpeg is installed at: %s" +msgstr "" + +#: run.py:521 +msgid "Adding local bins/ folder environment PATH for bundled ffmpeg..." +msgstr "" + +#: run.py:530 +msgid "MusicBot could not locate FFmpeg binary in your environment.\n" +"Please install FFmpeg so it is available in your environment PATH variable." +msgstr "" + +#: run.py:535 +msgid "On Windows, you can add a pre-compiled EXE to the MusicBot `bin` folder,\n" +"or you can install FFmpeg system-wide using WinGet or by running the install.bat file." +msgstr "" + +#: run.py:540 +msgid "On MacOS, you may be able to install FFmpeg via homebrew.\n" +"Otherwise, check the official FFmpeg site for build or install steps." +msgstr "" + +#: run.py:545 +msgid "On Linux, many distros make FFmpeg available via system package managers.\n" +"Check for ffmpeg with your system package manager or build from sources." +msgstr "" + +#: run.py:558 +#, python-format +msgid "Less than %sMB of free space remains on this device" +msgstr "" + +#: run.py:567 +msgid "\n" +"Checking for updates to MusicBot or dependencies..." +msgstr "" + +#: run.py:584 +msgid "No MusicBot updates available via `git` command." +msgstr "" + +#: run.py:587 +msgid "Could not check for updates using `git` commands. You should check manually." +msgstr "" + +#: run.py:594 +msgid "The following packages can be updated:\n" +msgstr "" + +#: run.py:600 +#, python-format +msgid " %s to version: %s\n" +msgstr "" + +#: run.py:611 +msgid "No dependency updates available via `pip` command." +msgstr "" + +#: run.py:614 +msgid "Could not check for updates using `pip` commands. You should check manually." +msgstr "" + +#: run.py:618 +#, python-format +msgid "You can run a guided update by using the command:\n" +" %s ./update.py" +msgstr "" + +#: run.py:636 +msgid "Value is above the maximum limit." +msgstr "" + +#: run.py:638 +msgid "Value must not be negative." +msgstr "" + +#: run.py:642 +#, python-format +msgid "Value for Max Logs Kept must be a number from 0 to %s" +msgstr "" + +#: run.py:652 +#, python-format +msgid "Log level '%s' is not available." +msgstr "" + +#: run.py:656 +#, python-format +msgid "Log Level must be one of: %s" +msgstr "" + +#: run.py:666 +msgid "Launch a music playing discord bot built using discord.py, youtubeDL, and ffmpeg." +msgstr "" + +#: run.py:669 +msgid "Available via Github:" +msgstr "" + +#: run.py:673 +msgid "For more help and support with this bot, join our discord:" +msgstr "" + +#: run.py:675 +msgid "This software is provided under the MIT License." +msgstr "" + +#: run.py:677 +msgid "See the `LICENSE` text file for complete details." +msgstr "" + +#: run.py:689 +msgid "Override the default / system detected language for all text in MusicBot." +msgstr "" + +#: run.py:698 +msgid "Use this language for all server-side log messages from MusicBot." +msgstr "" + +#: run.py:707 +msgid "Use this language for all messages sent to discord from MusicBot.\n" +"This does not prevent per-guild language selection." +msgstr "" + +#: run.py:718 +msgid "Print the MusicBot version information and exit." +msgstr "" + +#: run.py:726 +msgid "Skip all optional startup checks, including the update check." +msgstr "" + +#: run.py:734 +msgid "Skip only the disk space check at startup." +msgstr "" + +#: run.py:742 +msgid "Skip only the update check at startup." +msgstr "" + +#: run.py:751 +msgid "Disable MusicBot from trying to install dependencies when it cannot import them." +msgstr "" + +#: run.py:762 +#, python-format +msgid "Specify how many log files to keep, between 0 and %s inclusive. (Default: %s)" +msgstr "" + +#: run.py:772 +#, python-format +msgid "Override the log level settings set in config. Must be one of: %s" +msgstr "" + +#: run.py:783 +#, python-format +msgid "Override the default date format used when rotating log files. This should contain values compatible with strftime(). (Default: '%s')" +msgstr "" + +#: run.py:798 +#, python-format +msgid "Version: %s" +msgstr "" + +#: run.py:873 +msgid "Opened a new MusicBot instance. This terminal can be safely closed!" +msgstr "" + +#: run.py:944 +#, python-format +msgid "Loading MusicBot version: %s" +msgstr "" + +#: run.py:945 +#, python-format +msgid "Log opened: %s" +msgstr "" + +#: run.py:946 +#, python-format +msgid "Python version: %s" +msgstr "" + +#: run.py:955 +#, python-format +msgid "Changing working directory to: %s" +msgstr "" + +#: run.py:959 +msgid "Cannot start the bot! You started `run.py` in the wrong directory and we could not locate `musicbot` and `.git` folders to verify a new directory location." +msgstr "" + +#: run.py:964 +msgid "For best results, start `run.py` from the same folder you cloned MusicBot into.\n" +"If you did not use git to clone the repository, you are strongly urged to." +msgstr "" + +#: run.py:1018 +msgid "Certificate error is not a verification error, not trying certifi and exiting." +msgstr "" + +#: run.py:1020 +msgid "Here is the exact error, it could be a bug." +msgstr "" + +#: run.py:1036 +msgid "To easily add a certificate to Windows trust store, \n" +"you can open the failing site in Microsoft Edge or IE...\n" +msgstr "" + +#: run.py:1042 +msgid "Could not get Issuer Certificate from default trust store, trying certifi instead." +msgstr "" + +#: run.py:1051 +msgid "Syntax error (modification detected, did you edit the code?)" +msgstr "" + +#: run.py:1054 +msgid "Syntax error (this is a bug, not your fault)" +msgstr "" + +#: run.py:1066 +msgid "Cannot start MusicBot due to an error!\n\n" +"Problem:\n" +" There was an error importing MusicBot or a dependency package.\n\n" +"Solution:\n" +" You need to manually install pip packages for MusicBot\n" +" or launch without `--no-install-deps` and MusicBot will try to install them for you." +msgstr "" + +#: run.py:1099 +msgid "Attempting to install MusicBot dependency packages automatically...\n" +msgstr "" + +#: run.py:1108 +#, python-format +msgid "MusicBot dependencies may not be installed!\n\n" +"Problem:\n" +" The pip install process ended with a possible error.\n" +" Some or all of the the dependencies may be missing.\n\n" +"Solution:\n" +" You must manually install dependency packages.\n" +" Open a CMD prompt / terminal to the MusicBot directory.\n" +" You can try using the update scripts install packages.\n" +" Or try this manual command:\n" +" %(py_bin)s -m pip install -U -r ./requirements.txt\n\n" +"You can also ask for help in MusicBot's support discord:\n" +" https://discord.gg/bots" +msgstr "" + +#: run.py:1129 +msgid "OK, lets hope installing dependencies worked!" +msgstr "" + +#: run.py:1141 +msgid "MusicBot got an ImportError after trying to install packages. MusicBot must exit..." +msgstr "" + +#: run.py:1143 +msgid "The exception which caused the above error: " +msgstr "" + +#: run.py:1159 +msgid "MusicBot is doing a soft restart..." +msgstr "" + +#: run.py:1163 +msgid "MusicBot is doing a full process restart..." +msgstr "" + +#: run.py:1169 +msgid "Error starting bot" +msgstr "" + +#: run.py:1174 +msgid "Closing event loop." +msgstr "" + +#: run.py:1179 +#, python-format +msgid "Restarting in %s seconds..." +msgstr "" + +#: run.py:1183 +msgid "All done." +msgstr "" + +#: run.py:1212 +msgid "OK, we're closing!" +msgstr "" + diff --git a/i18n/zh_TW/LC_MESSAGES/musicbot_messages.mo b/i18n/zh_TW/LC_MESSAGES/musicbot_messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..341fbcd0495f05115b66b4a66aa92dec130f2e24 GIT binary patch literal 528 zcmZWmOHTqZ5XQvQ9zA>L!K1^ruWrbiR3g^Ko+g-at7*Jw-jM9hCE}+1O7ELhVnjd6cP#Q3iL?I%PB`+W2zqRJt%e zn90gm4-=QG46fI?gT!zWOm7nCSt&dwKwo&tNsG23U<_zPXw2CK(3nyL!c0D?y6|7z zC1DY7vtTTohr|l)3gL~#>SLkvwa6tTQk0zZR!U1J31Tu;cNE1Bgp;?`Jh=}hqsd^u z0c+BrXSA0ZE5BAaotG~@tO}uYhomcEo%G$?WC-ydS5L5%76v*snbJ8Y@k04vTCA-o zU}$XVkeh1bx-RRG?Xyce!2^+neb!kda$?TE6gpz#HAyP{M8 literal 0 HcmV?d00001 diff --git a/i18n/zh_TW/LC_MESSAGES/musicbot_messages.po b/i18n/zh_TW/LC_MESSAGES/musicbot_messages.po new file mode 100644 index 000000000..736c37d0a --- /dev/null +++ b/i18n/zh_TW/LC_MESSAGES/musicbot_messages.po @@ -0,0 +1,2868 @@ +msgid "" +msgstr "" +"Project-Id-Version: notmusicbot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-04 08:15-0800\n" +"PO-Revision-Date: 2024-11-06 14:31\n" +"Last-Translator: \n" +"Language-Team: Chinese Traditional\n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: notmusicbot\n" +"X-Crowdin-Project-ID: 734017\n" +"X-Crowdin-Language: zh-TW\n" +"X-Crowdin-File: /fae/i18n/musicbot_messages.pot\n" +"X-Crowdin-File-ID: 28\n" + +#: musicbot/aliases.py:56 +msgid "Error while loading alises.\n\n" +"Problem:\n" +" Your aliases files (aliases.json & example_aliases.json) are missing.\n\n" +"Solution:\n" +" Replace the alias config file(s) or copy them from:\n" +" https://github.com/Just-Some-Bots/MusicBot/" +msgstr "" + +#: musicbot/bot.py:713 +msgid "Member is not voice-enabled and cannot use this command." +msgstr "" + +#: musicbot/bot.py:721 +msgid "You cannot use this command when not in the voice channel." +msgstr "" + +#: musicbot/bot.py:764 +#, python-format +msgid "MusicBot does not have permission to Connect in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:773 +#, python-format +msgid "MusicBot does not have permission to Speak in channel: `%(name)s`" +msgstr "" + +#: musicbot/bot.py:806 +msgid "MusicBot could not connect to the channel.\n" +"Try again later, or restart the bot if this continues." +msgstr "" + +#: musicbot/bot.py:830 +msgid "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" +msgstr "" + +#: musicbot/bot.py:840 +msgid "MusicBot does not have permission to speak." +msgstr "" + +#: musicbot/bot.py:844 +msgid "MusicBot could not request to speak." +msgstr "" + +#: musicbot/bot.py:1016 +msgid "The bot is not in a voice channel.\n" +"Use the summon command to bring the bot to your voice channel." +msgstr "" + +#: musicbot/bot.py:1028 +msgid "Something is wrong, we didn't get the VoiceClient." +msgstr "" + +#: musicbot/bot.py:1084 +#, python-format +msgid "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!" +msgstr "" + +#: musicbot/bot.py:1102 +#, python-format +msgid "%(mention)s - your song `%(title)s` is now playing in %(channel)s!" +msgstr "" + +#: musicbot/bot.py:1111 +#, python-format +msgid "Now playing in %(channel)s: `%(title)s` added by %(author)s!" +msgstr "" + +#: musicbot/bot.py:1122 +#, python-format +msgid "Now playing automatically added entry `%(title)s` in %(channel)s!" +msgstr "" + +#: musicbot/bot.py:1333 +#, python-format +msgid "Skipping songs added by %(user)s as they are not in voice!" +msgstr "" + +#: musicbot/bot.py:1555 +#, python-format +msgid "Playback failed for song `%(song)s` due to an error:\n" +"```\n" +"%(error)s```" +msgstr "" + +#: musicbot/bot.py:1807 +msgid "[Dev Bug] Tried sending an invalid response object." +msgstr "" + +#: musicbot/bot.py:2147 +msgid "Failed Discord API Login!\n\n" +"Problem:\n" +" MusicBot could not log into Discord API.\n" +" Your Token may be incorrect or there may be an API outage.\n\n" +"Solution:\n" +" Make sure you have the correct Token set in your config.\n" +" Check API status at the official site: discordstatus.com" +msgstr "" + +#: musicbot/bot.py:2695 +#, python-brace-format +msgid "The requested song `{subject}` is blocked by the song blocklist." +msgstr "" + +#: musicbot/bot.py:2831 +msgid "Reset the auto playlist queue by copying it back into player memory.\n" +"This command will be removed in a future version, replaced by the autoplaylist command(s)." +msgstr "" + +#: musicbot/bot.py:2846 +msgid "\\N{OK HAND SIGN}" +msgstr "" + +#: musicbot/bot.py:2853 +msgid "Show usage and description of a command, or list all available commands.\n" +msgstr "" + +#: musicbot/bot.py:2888 +msgid "**Aliases for this command:**\n" +msgstr "" + +#: musicbot/bot.py:2891 +#, python-format +msgid "`%(alias)s` alias of `%(command)s %(args)s`\n" +msgstr "" + +#: musicbot/bot.py:2924 +#, python-format +msgid "**Alias of command:**\n" +" `%(command)s`\n" +msgstr "" + +#. TRANSLATORS: template string for command-specific help output. +#: musicbot/bot.py:2931 +#, python-format +msgid "%(is_alias)s\n" +"%(docs)s\n" +"%(alias_list)s" +msgstr "" + +#: musicbot/bot.py:2940 +msgid "No such command" +msgstr "" + +#: musicbot/bot.py:2959 +#, python-format +msgid "The list above shows only commands permitted for your use.\n" +"For a list of all commands, run: %(example_all)s\n" +msgstr "" + +#: musicbot/bot.py:2965 +#, python-format +msgid "**Commands by name:** *(without prefix)*\n" +"```\n" +"%(command_list)s\n" +"```\n" +"**Command Prefix:** %(prefix)s\n\n" +"For help with a particular command, run: %(example_command)s\n" +"%(all_note)s" +msgstr "" + +#: musicbot/bot.py:2984 +msgid " Block a mentioned user." +msgstr "" + +#: musicbot/bot.py:2987 +msgid " Unblock a mentioned user." +msgstr "" + +#: musicbot/bot.py:2990 +msgid " Show the block status of a mentioned user." +msgstr "" + +#: musicbot/bot.py:2994 +msgid "Manage the users in the user block list.\n" +"Blocked users are forbidden from using all bot commands.\n" +msgstr "" + +#: musicbot/bot.py:3016 +msgid "You must mention a user or provide their ID number." +msgstr "" + +#: musicbot/bot.py:3021 +msgid "Invalid sub-command given. Use `help blockuser` for usage examples." +msgstr "" + +#: musicbot/bot.py:3032 +msgid "MusicBot could not find the user(s) you specified." +msgstr "" + +#: musicbot/bot.py:3039 +msgid "The owner cannot be added to the block list." +msgstr "" + +#: musicbot/bot.py:3059 +msgid "User block list is currently enabled." +msgstr "" + +#: musicbot/bot.py:3061 +msgid "User block list is currently disabled." +msgstr "" + +#: musicbot/bot.py:3069 +msgid "Cannot add the users you listed, they are already added." +msgstr "" + +#: musicbot/bot.py:3078 +#, python-format +msgid "%(number)s user(s) have been added to the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3089 +msgid "None of those users are in the blacklist." +msgstr "" + +#: musicbot/bot.py:3094 +#, python-format +msgid "User: `%(user)s` is not blocked.\n" +msgstr "" + +#: musicbot/bot.py:3096 +#, python-format +msgid "User: `%(user)s` is blocked.\n" +msgstr "" + +#: musicbot/bot.py:3099 +#, python-format +msgid "**Block list status:**\n" +"%(status)s\n" +"%(users)s" +msgstr "" + +#: musicbot/bot.py:3109 +#, python-format +msgid "%(number)s user(s) have been removed from the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3118 +msgid "Manage a block list applied to song requests and extracted song data.\n" +"A subject may be a song URL or a word or phrase found in the track title.\n" +"If subject is omitted, any currently playing track URL will be added instead.\n\n" +"The song block list matches loosely, but is case-sensitive.\n" +"This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" +msgstr "" + +#: musicbot/bot.py:3146 +msgid "You must provide a song subject if no song is currently playing." +msgstr "" + +#: musicbot/bot.py:3152 +msgid "Ivalid sub-command given. Use `help blocksong` for usage examples." +msgstr "" + +#: musicbot/bot.py:3164 +#, python-format +msgid "Subject `%(subject)s` is already in the song block list." +msgstr "" + +#: musicbot/bot.py:3187 +#, python-format +msgid "Added subject `%(subject)s` to the song block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3196 +msgid "The subject is not in the song block list and cannot be removed." +msgstr "" + +#: musicbot/bot.py:3204 +#, python-format +msgid "Subject `%(subject)s` has been removed from the block list.\n" +"%(status)s" +msgstr "" + +#: musicbot/bot.py:3214 +msgid " Adds or removes the specified song or currently playing song to/from the current playlist.\n" +msgstr "" + +#: musicbot/bot.py:3217 +msgid " Adds the entire queue to the guilds playlist.\n" +msgstr "" + +#: musicbot/bot.py:3220 +msgid " Show a list of existing playlist files.\n" +msgstr "" + +#: musicbot/bot.py:3223 +msgid " Reset the auto playlist queue, restarting at the first track unless randomized.\n" +msgstr "" + +#: musicbot/bot.py:3226 +msgid " Set a playlist as default for this guild and reloads the guild auto playlist.\n" +msgstr "" + +#: musicbot/bot.py:3229 +msgid "Manage auto playlist files and per-guild settings." +msgstr "" + +#: musicbot/bot.py:3249 +msgid "Invalid sub-command given. Use `help autoplaylist` for usage examples." +msgstr "" + +#: musicbot/bot.py:3256 +msgid "The supplied song link is invalid" +msgstr "" + +#: musicbot/bot.py:3262 +msgid "The queue is empty. Add some songs with a play command!" +msgstr "" + +#: musicbot/bot.py:3273 +msgid "All songs in the queue are already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3277 +#, python-format +msgid "Added %(number)d songs to the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3287 +#, python-format +msgid "Added `%(url)s` to the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3290 +msgid "This song is already in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3304 +#, python-format +msgid "Removed `%(url)s` from the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3307 +msgid "This song is not yet in the autoplaylist." +msgstr "" + +#: musicbot/bot.py:3316 +#, python-format +msgid "Loaded a fresh copy of the playlist: `%(file)s`" +msgstr "" + +#: musicbot/bot.py:3327 +#, python-format +msgid "**Available Playlists:**\n" +"%(names)s" +msgstr "" + +#: musicbot/bot.py:3337 +msgid "You must provide a playlist filename." +msgstr "" + +#: musicbot/bot.py:3357 +msgid "\n" +"This playlist is new, you must add songs to save it to disk!" +msgstr "" + +#: musicbot/bot.py:3362 +#, python-format +msgid "The playlist for this server has been updated to: `%(name)s`%(note)s" +msgstr "" + +#: musicbot/bot.py:3373 +msgid "Generate an invite link that can be used to add this bot to another server." +msgstr "" + +#: musicbot/bot.py:3385 +#, python-format +msgid "Click here to add me to a discord server:\n" +"%(url)s" +msgstr "" + +#: musicbot/bot.py:3391 +msgid "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" +"Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" +msgstr "" + +#: musicbot/bot.py:3403 +msgid "\\N{OK HAND SIGN} Karaoke mode is now enabled." +msgstr "" + +#: musicbot/bot.py:3405 +msgid "\\N{OK HAND SIGN} Karaoke mode is now disabled." +msgstr "" + +#: musicbot/bot.py:3428 +msgid "You are not allowed to request playlists" +msgstr "" + +#: musicbot/bot.py:3436 +#, python-format +msgid "Playlist has too many entries (%(songs)s but max is %(max)s)" +msgstr "" + +#: musicbot/bot.py:3447 +#, python-format +msgid "The playlist entries will exceed your queue limit.\n" +"There are %(songs)s in the list, and %(queued)s already in queue.\n" +"The limit is %(max)s for your group." +msgstr "" + +#: musicbot/bot.py:3580 +msgid "Bot was previously paused, resuming playback now." +msgstr "" + +#: musicbot/bot.py:3589 +msgid "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n\n" +"You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" +"Playlist links will be extracted into multiple links and added to the queue.\n" +"If you enter a non-URL, the input will be used as search criteria on youtube and the first result played.\n" +"MusicBot also supports Spotify URIs and URLs, but audio is fetched from youtube regardless.\n" +msgstr "" + +#: musicbot/bot.py:3628 +msgid "Play command that shuffles playlist entries before adding them to the queue.\n" +msgstr "" + +#: musicbot/bot.py:3665 +#, python-format +msgid "Shuffled playlist items into the queue from `%(request)s`" +msgstr "" + +#: musicbot/bot.py:3672 +msgid "A play command that adds the song as the next to play rather than last.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" + +#: musicbot/bot.py:3707 +msgid "A play command which skips any current song and plays immediately.\n" +"Read help for the play command for information on supported inputs.\n" +msgstr "" + +#: musicbot/bot.py:3744 +msgid "Restarts the current song at the given time.\n" +"If time starts with + or - seek will be relative to current playback time.\n" +"Time should be given in seconds, fractional seconds are accepted.\n" +"Due to codec specifics in ffmpeg, this may not be accurate.\n" +msgstr "" + +#: musicbot/bot.py:3764 +msgid "Cannot use seek if there is nothing playing." +msgstr "" + +#: musicbot/bot.py:3769 +msgid "Cannot use seek on current track, it has an unknown duration." +msgstr "" + +#: musicbot/bot.py:3775 +msgid "Seeking is not supported for streams." +msgstr "" + +#: musicbot/bot.py:3785 +msgid "Cannot use seek without a time to position playback." +msgstr "" + +#: musicbot/bot.py:3803 +#, python-format +msgid "Could not convert `%(input)s` to a valid time in seconds." +msgstr "" + +#: musicbot/bot.py:3816 +#, python-format +msgid "Cannot seek to `%(input)s` (`%(seconds)s` seconds) in the current track with a length of `%(progress)s / %(total)s`" +msgstr "" + +#: musicbot/bot.py:3840 +#, python-format +msgid "Seeking to time `%(input)s` (`%(seconds).2f` seconds) in the current song." +msgstr "" + +#: musicbot/bot.py:3852 +msgid "Toggles playlist or song looping.\n" +"If no option is provided the current song will be repeated.\n" +"If no option is provided and the song is already repeating, repeating will be turned off.\n" +msgstr "" + +#: musicbot/bot.py:3870 +msgid "No songs are currently playing. Play something with a play command." +msgstr "" + +#: musicbot/bot.py:3877 +msgid "Invalid sub-command. Use the command `help repeat` for usage examples." +msgstr "" + +#: musicbot/bot.py:3883 musicbot/bot.py:3920 +msgid "Playlist is now repeating." +msgstr "" + +#: musicbot/bot.py:3886 musicbot/bot.py:3913 musicbot/bot.py:3924 +msgid "Playlist is no longer repeating." +msgstr "" + +#: musicbot/bot.py:3892 musicbot/bot.py:3901 +msgid "Player will now loop the current song." +msgstr "" + +#: musicbot/bot.py:3894 musicbot/bot.py:3908 +msgid "Player will no longer loop the current song." +msgstr "" + +#: musicbot/bot.py:3898 +msgid "Player is already looping a song!" +msgstr "" + +#: musicbot/bot.py:3915 +msgid "The player is not currently looping." +msgstr "" + +#: musicbot/bot.py:3926 +msgid "Song is no longer repeating." +msgstr "" + +#: musicbot/bot.py:3930 +msgid "Song is now repeating." +msgstr "" + +#: musicbot/bot.py:3938 +msgid " Move song at position FROM to position TO.\n" +msgstr "" + +#: musicbot/bot.py:3942 +msgid "Swap existing songs in the queue using their position numbers.\n" +"Use the queue command to find track position numbers.\n" +msgstr "" + +#: musicbot/bot.py:3961 +msgid "There are no songs queued. Play something with a play command." +msgstr "" + +#: musicbot/bot.py:3971 +msgid "Song positions must be integers!" +msgstr "" + +#: musicbot/bot.py:3976 +msgid "You gave a position outside the playlist size!" +msgstr "" + +#: musicbot/bot.py:3984 +#, python-format +msgid "Successfully moved song from positon %(from)s in queue to position %(to)s!" +msgstr "" + +#: musicbot/bot.py:4072 +#, python-format +msgid "This link contains a Playlist ID:\n" +"`%(url)s`\n\n" +"Do you want to queue the playlist too?" +msgstr "" + +#: musicbot/bot.py:4114 +msgid "Local media playback is not enabled." +msgstr "" + +#: musicbot/bot.py:4155 +msgid "Spotify URL is invalid or not currently supported." +msgstr "" + +#: musicbot/bot.py:4159 +msgid "Detected a spotify URL, but spotify is not enabled." +msgstr "" + +#: musicbot/bot.py:4169 musicbot/bot.py:4374 +#, python-format +msgid "You have reached your enqueued song limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4175 musicbot/bot.py:4380 musicbot/bot.py:4474 +msgid "Karaoke mode is enabled, please try again when its disabled!" +msgstr "" + +#: musicbot/bot.py:4191 +#, python-format +msgid "Failed to extract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4197 +msgid "That video cannot be played. Try using the stream command." +msgstr "" + +#: musicbot/bot.py:4208 +#, python-format +msgid "Youtube search returned no results for: %(url)s" +msgstr "" + +#: musicbot/bot.py:4249 +#, python-format +msgid "No songs were added, all songs were over max duration (%(max)s seconds)" +msgstr "" + +#: musicbot/bot.py:4254 +#, python-format +msgid "Enqueued **%(number)s** songs to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4277 +#, python-format +msgid "Song duration exceeds limit (%(length)s > %(max)s)" +msgstr "" + +#: musicbot/bot.py:4289 +#, python-format +msgid "Enqueued `%(track)s` to be played.\n" +"Position in queue: %(position)s" +msgstr "" + +#: musicbot/bot.py:4297 musicbot/bot.py:4312 +msgid "Playing next!" +msgstr "" + +#: musicbot/bot.py:4320 +#, python-format +msgid "%(position)s - estimated time until playing: `%(eta)s`" +msgstr "" + +#: musicbot/bot.py:4328 +#, python-format +msgid "%(position)s - cannot estimate time until playing." +msgstr "" + +#: musicbot/bot.py:4346 +msgid "Add a media URL to the queue as a Stream.\n" +"The URL may be actual streaming media, like Twitch, Youtube, or a shoutcast like service.\n" +"You can also use non-streamed media to play it without downloading it.\n" +"Note: FFmpeg may drop the stream randomly or if connection hiccups happen.\n" +msgstr "" + +#: musicbot/bot.py:4396 +#, python-format +msgid "Failed to exctract info due to error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:4402 +msgid "Streaming playlists is not yet supported." +msgstr "" + +#: musicbot/bot.py:4419 +#, python-format +msgid "Now streaming track `%(track)s`" +msgstr "" + +#: musicbot/bot.py:4428 +msgid " Search with service for a number of results with the search query.\n" +msgstr "" + +#: musicbot/bot.py:4432 +msgid " Search youtube for query but get a custom number of results.\n" +" Note: the double-quotes are required in this case.\n" +msgstr "" + +#: musicbot/bot.py:4438 +msgid "Search a supported service and select from results to add to queue.\n" +"Service and number arguments can be omitted, default number is 3 results.\n" +"Select from these services:\n" +"- yt, youtube (default)\n" +"- sc, soundcloud\n" +"- yh, yahoo\n" +msgstr "" + +#: musicbot/bot.py:4468 +#, python-format +msgid "You have reached your playlist item limit (%(max)s)" +msgstr "" + +#: musicbot/bot.py:4480 +msgid "Please specify a search query. Use `help search` for more information." +msgstr "" + +#: musicbot/bot.py:4509 +#, python-format +msgid "You cannot search for more than %(max)s videos" +msgstr "" + +#: musicbot/bot.py:4532 +msgid "Searching for videos..." +msgstr "" + +#: musicbot/bot.py:4554 +#, python-format +msgid "Search failed due to an error: %(error)s" +msgstr "" + +#: musicbot/bot.py:4566 +msgid "No videos found." +msgstr "" + +#: musicbot/bot.py:4575 +msgid "To select a song, type the corresponding number." +msgstr "" + +#: musicbot/bot.py:4576 +#, python-format +msgid "Search results from %(service)s:" +msgstr "" + +#: musicbot/bot.py:4585 +#, python-format +msgid "**%(index)s**. **%(track)s** | %(length)s" +msgstr "" + +#: musicbot/bot.py:4594 +msgid "\n" +"**0**. Cancel" +msgstr "" + +#: musicbot/bot.py:4598 +msgid "Pick a song" +msgstr "" + +#: musicbot/bot.py:4649 +#, python-format +msgid "Added song [%(track)s](%(url)s) to the queue." +msgstr "" + +#: musicbot/bot.py:4663 +#, python-format +msgid "Result %(number)s of %(total)s: %(url)s" +msgstr "" + +#: musicbot/bot.py:4713 +msgid "Alright, coming right up!" +msgstr "" + +#: musicbot/bot.py:4725 +msgid "Show information on what is currently playing." +msgstr "" + +#: musicbot/bot.py:4777 musicbot/bot.py:6027 musicbot/bot.py:6059 +msgid "[autoplaylist]" +msgstr "" + +#: musicbot/bot.py:4781 +msgid "Now playing" +msgstr "" + +#: musicbot/bot.py:4784 +msgid "Currently streaming:" +msgstr "" + +#: musicbot/bot.py:4786 +msgid "Currently playing:" +msgstr "" + +#: musicbot/bot.py:4792 +msgid "Added By:" +msgstr "" + +#: musicbot/bot.py:4793 +#, python-format +msgid "`%(user)s`" +msgstr "" + +#: musicbot/bot.py:4797 +msgid "Progress:" +msgstr "" + +#: musicbot/bot.py:4815 musicbot/bot.py:6004 +msgid "There are no songs queued! Queue something with a play command." +msgstr "" + +#: musicbot/bot.py:4818 +msgid "Tell MusicBot to join the channel you're in." +msgstr "" + +#: musicbot/bot.py:4841 +msgid "You are not connected to voice. Try joining a voice channel!" +msgstr "" + +#: musicbot/bot.py:4876 +#, python-format +msgid "Connected to `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4882 +msgid "Makes MusicBot follow a user when they change channels in a server.\n" +msgstr "" + +#: musicbot/bot.py:4905 +#, python-format +msgid "No longer following user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:4915 +#, python-format +msgid "Now following user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4928 +msgid "MusicBot cannot follow a user that is not a member of the server." +msgstr "" + +#: musicbot/bot.py:4935 +#, python-format +msgid "Will follow user `%(user)s` between voice channels." +msgstr "" + +#: musicbot/bot.py:4941 +msgid "Pause playback if a track is currently playing." +msgstr "" + +#: musicbot/bot.py:4952 +#, python-format +msgid "Paused music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4956 +msgid "Player is not playing." +msgstr "" + +#: musicbot/bot.py:4958 +msgid "Resumes playback if the player was previously paused." +msgstr "" + +#: musicbot/bot.py:4969 +#, python-format +msgid "Resumed music in `%(channel)s`" +msgstr "" + +#: musicbot/bot.py:4975 +msgid "Resumed music queue" +msgstr "" + +#: musicbot/bot.py:4977 +msgid "Player is not paused." +msgstr "" + +#: musicbot/bot.py:4979 +msgid "Shuffle all current tracks in the queue." +msgstr "" + +#: musicbot/bot.py:5014 +msgid "Shuffled all songs in the queue." +msgstr "" + +#: musicbot/bot.py:5016 +msgid "Removes all songs currently in the queue." +msgstr "" + +#: musicbot/bot.py:5028 +msgid "Cleared all songs from the queue." +msgstr "" + +#: musicbot/bot.py:5033 +msgid "Remove a song from the queue, optionally at the given queue position.\n" +"If the position is omitted, the song at the end of the queue is removed.\n" +"Use the queue command to find position number of your track.\n" +"However, positions of all songs are changed when a new song starts playing.\n" +msgstr "" + +#: musicbot/bot.py:5053 +msgid "Nothing in the queue to remove!" +msgstr "" + +#: musicbot/bot.py:5068 +#, python-format +msgid "Removed `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5074 +#, python-format +msgid "Nothing found in the queue from user `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5079 musicbot/bot.py:5114 +msgid "You do not have the permission to remove that entry from the queue.\n" +"You must be the one who queued it or have instant skip permissions." +msgstr "" + +#: musicbot/bot.py:5090 musicbot/bot.py:5095 +msgid "Invalid entry number. Use the queue command to find queue positions." +msgstr "" + +#: musicbot/bot.py:5105 +#, python-format +msgid "Removed entry `%(track)s` added by `%(user)s`" +msgstr "" + +#: musicbot/bot.py:5110 +#, python-format +msgid "Removed entry `%(track)s`" +msgstr "" + +#: musicbot/bot.py:5121 +msgid "Skip or vote to skip the current playing song.\n" +"Members with InstaSkip permission may use force parameter to bypass voting.\n" +"If LegacySkip option is enabled, the force parameter can be ignored.\n" +msgstr "" + +#: musicbot/bot.py:5145 +msgid "Can't skip! The player is not playing!" +msgstr "" + +#: musicbot/bot.py:5153 +#, python-format +msgid "The next song `%(track)s` is downloading, please wait." +msgstr "" + +#: musicbot/bot.py:5161 +msgid "The next song will be played shortly. Please wait." +msgstr "" + +#: musicbot/bot.py:5166 +msgid "Something odd is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5173 +msgid "Something strange is happening.\n" +"You might want to restart the bot if it doesn't start working." +msgstr "" + +#: musicbot/bot.py:5197 +msgid "You do not have permission to force skip a looped song." +msgstr "" + +#: musicbot/bot.py:5211 +#, python-format +msgid "Force skipped `%(track)s`." +msgstr "" + +#: musicbot/bot.py:5216 +msgid "You do not have permission to force skip." +msgstr "" + +#: musicbot/bot.py:5253 musicbot/bot.py:5286 +msgid "You do not have permission to skip a looped song." +msgstr "" + +#: musicbot/bot.py:5269 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"The vote to skip has been passed.%(next_up)s" +msgstr "" + +#: musicbot/bot.py:5276 +msgid " Next song coming up!" +msgstr "" + +#: musicbot/bot.py:5293 +#, python-format +msgid "Your skip for `%(track)s` was acknowledged.\n" +"Need **%(votes)s** more vote(s) to skip this song." +msgstr "" + +#: musicbot/bot.py:5306 +msgid "Set the output volume level of MusicBot from 1 to 100.\n" +"Volume parameter allows a leading + or - for relative adjustments.\n" +"The volume setting is retained until MusicBot is restarted.\n" +msgstr "" + +#: musicbot/bot.py:5323 +#, python-format +msgid "Current volume: `%(volume)s%%`" +msgstr "" + +#: musicbot/bot.py:5336 +#, python-format +msgid "`%(new_volume)s` is not a valid number" +msgstr "" + +#: musicbot/bot.py:5351 +#, python-format +msgid "Updated volume from **%(old)d** to **%(new)d**" +msgstr "" + +#: musicbot/bot.py:5357 +#, python-format +msgid "Unreasonable volume change provided: %(old_volume)s%(adjustment)s is %(new_volume)s.\n" +"Volume can only be set from 1 to 100." +msgstr "" + +#: musicbot/bot.py:5367 +#, python-format +msgid "Unreasonable volume provided: %(volume)s. Provide a value between 1 and 100." +msgstr "" + +#: musicbot/bot.py:5374 +msgid "Change the playback speed of the currently playing track only.\n" +"The rate must be between 0.5 and 100.0 due to ffmpeg limits.\n" +"Streaming playback does not support speed adjustments.\n" +msgstr "" + +#: musicbot/bot.py:5391 +msgid "No track is playing, cannot set speed.\n" +"Use the config command to set a default playback speed." +msgstr "" + +#: musicbot/bot.py:5399 +msgid "Speed cannot be applied to streamed media." +msgstr "" + +#: musicbot/bot.py:5404 +msgid "You must provide a speed to set." +msgstr "" + +#: musicbot/bot.py:5413 +msgid "The speed you proivded is invalid. Use a number between 0.5 and 100." +msgstr "" + +#: musicbot/bot.py:5432 +#, python-format +msgid "Setting playback speed to `%(speed).3f` for current track." +msgstr "" + +#: musicbot/bot.py:5441 +msgid " Add an new alias with optional arguments.\n" +msgstr "" + +#: musicbot/bot.py:5444 +msgid " Remove an alias with the given name." +msgstr "" + +#: musicbot/bot.py:5447 +msgid " Reload or save aliases from/to the config file." +msgstr "" + +#: musicbot/bot.py:5451 +msgid "Allows management of aliases from discord. To see aliases use the help command." +msgstr "" + +#: musicbot/bot.py:5471 musicbot/bot.py:5587 musicbot/bot.py:6519 +#, python-format +msgid "Invalid option for command: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5477 +msgid "Aliases reloaded from config file." +msgstr "" + +#: musicbot/bot.py:5482 +msgid "Aliases saved to config file." +msgstr "" + +#: musicbot/bot.py:5485 +#, python-format +msgid "Failed to save aliases due to error:\n" +"`%(raw_error)s`" +msgstr "" + +#: musicbot/bot.py:5492 +msgid "You must supply an alias and a command to alias" +msgstr "" + +#: musicbot/bot.py:5498 +#, python-format +msgid "New alias added. `%(alias)s` is now an alias of `%(command)s`" +msgstr "" + +#: musicbot/bot.py:5507 +msgid "You must supply an alias name to remove." +msgstr "" + +#: musicbot/bot.py:5512 +#, python-format +msgid "The alias `%(alias)s` does not exist." +msgstr "" + +#: musicbot/bot.py:5518 +#, python-format +msgid "Alias `%(alias)s` was removed." +msgstr "" + +#: musicbot/bot.py:5528 +msgid " Shows help text about any missing config options.\n" +msgstr "" + +#: musicbot/bot.py:5531 +msgid " Lists the names of options which have been changed since loading config file.\n" +msgstr "" + +#: musicbot/bot.py:5534 +msgid " List the available config options and their sections.\n" +msgstr "" + +#: musicbot/bot.py:5537 +msgid " Reload the options.ini file from disk.\n" +msgstr "" + +#: musicbot/bot.py:5540 +msgid " Shows help text for a specific option.\n" +msgstr "" + +#: musicbot/bot.py:5543 +msgid " Display the current value of the option.\n" +msgstr "" + +#: musicbot/bot.py:5546 +msgid " Saves the current current value to the options file.\n" +msgstr "" + +#: musicbot/bot.py:5549 +msgid " Validates the option and sets the config for the session, but not to file.\n" +msgstr "" + +#: musicbot/bot.py:5552 +msgid " Reset the option to it's default value.\n" +msgstr "" + +#: musicbot/bot.py:5555 +msgid "Manage options.ini configuration from within Discord." +msgstr "" + +#: musicbot/bot.py:5570 +msgid "Config cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:5596 +#, python-format +msgid "**Missing Option:** `%(config)s`\n" +"```\n" +"%(comment)s\n" +"Default is set to: %(default)s```\n" +msgstr "" + +#: musicbot/bot.py:5609 +msgid "*All config options are present and accounted for!*" +msgstr "" + +#: musicbot/bot.py:5625 +msgid "No config options appear to be changed." +msgstr "" + +#: musicbot/bot.py:5627 +#, python-format +msgid "**Changed Options:**\n" +"%(changed)s" +msgstr "" + +#: musicbot/bot.py:5647 +#, python-format +msgid "## Available Options:\n" +"**Editable Options:**\n" +"%(editable)s\n" +"**Manual Edit Only:**\n" +"%(manual)s" +msgstr "" + +#: musicbot/bot.py:5669 +msgid "Config options reloaded from file successfully!" +msgstr "" + +#: musicbot/bot.py:5673 +#, python-format +msgid "Unable to reload Config due to the following error:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:5691 +msgid "Could not resolve section name from option name. Please provide a valid section and option name." +msgstr "" + +#: musicbot/bot.py:5695 +msgid "The option given is ambiguous, please provide a section name." +msgstr "" + +#: musicbot/bot.py:5701 +msgid "You must provide a section name and option name for this command." +msgstr "" + +#: musicbot/bot.py:5717 +#, python-format +msgid "The section `%(section)s` is not available.\n" +"The available sections are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:5725 +#, python-format +msgid "The option `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:5733 +msgid "This option can only be set by editing the config file." +msgstr "" + +#: musicbot/bot.py:5737 +#, python-format +msgid "By default this option is set to: %(default)s" +msgstr "" + +#: musicbot/bot.py:5742 +#, python-format +msgid "**Option:** `%(config)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:5753 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot save to disk." +msgstr "" + +#: musicbot/bot.py:5762 +#, python-format +msgid "Failed to save the option: `%(option)s`" +msgstr "" + +#: musicbot/bot.py:5767 +#, python-format +msgid "Successfully saved the option: `%(config)s`" +msgstr "" + +#: musicbot/bot.py:5777 +#, python-format +msgid "Option `%(option)s` is not editable, value cannot be displayed." +msgstr "" + +#: musicbot/bot.py:5784 +#, python-format +msgid "**Option:** `%(config)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:5800 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot update setting." +msgstr "" + +#: musicbot/bot.py:5806 musicbot/bot.py:6732 +msgid "You must provide a section, option, and value for this sub command." +msgstr "" + +#: musicbot/bot.py:5817 +#, python-format +msgid "Option `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:5822 +#, python-format +msgid "Option `%(config)s` was updated for this session.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5833 +#, python-format +msgid "Option `%(option)s` is not editable. Cannot reset to default." +msgstr "" + +#: musicbot/bot.py:5852 +#, python-format +msgid "Option `%(option)s` was not reset to default!" +msgstr "" + +#: musicbot/bot.py:5857 +#, python-format +msgid "Option `%(config)s` was reset to its default value `%(default)s`.\n" +"To save the change use `config save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:5872 +msgid "Deprecated command, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5885 +msgid "The option command is deprecated, use the config command instead." +msgstr "" + +#: musicbot/bot.py:5892 +msgid "Display information about cache storage or clear cache according to configured limits.\n" +"Using update option will scan the cache for external changes before displaying details." +msgstr "" + +#: musicbot/bot.py:5905 +msgid "Invalid option specified, use: info, update, or clear" +msgstr "" + +#: musicbot/bot.py:5916 +msgid "Disabled" +msgstr "" + +#: musicbot/bot.py:5916 +msgid "Enabled" +msgstr "" + +#: musicbot/bot.py:5919 +#, python-format +msgid "%(time)s days" +msgstr "" + +#: musicbot/bot.py:5925 musicbot/bot.py:5928 +msgid "Unlimited" +msgstr "" + +#: musicbot/bot.py:5933 +#, python-format +msgid "**Video Cache:** *%(state)s*\n" +"**Storage Limit:** *%(size)s*\n" +"**Time Limit:** *%(time)s*\n\n" +"**Cached Now: %(used)s in %(files)s file(s)." +msgstr "" + +#: musicbot/bot.py:5956 +msgid "Cache has been cleared." +msgstr "" + +#: musicbot/bot.py:5962 +msgid "**Failed** to delete cache, check logs for more info..." +msgstr "" + +#: musicbot/bot.py:5965 +msgid "No cache found to clear." +msgstr "" + +#: musicbot/bot.py:5973 +msgid "Display information about the current player queue.\n" +"Optional page number shows later entries in the queue.\n" +msgstr "" + +#: musicbot/bot.py:5997 +msgid "Queue page argument must be a whole number." +msgstr "" + +#: musicbot/bot.py:6013 +#, python-format +msgid "Requested page number is out of bounds.\n" +"There are **%(total)s** pages." +msgstr "" + +#: musicbot/bot.py:6025 +msgid "(unknown duration)" +msgstr "" + +#: musicbot/bot.py:6034 +#, python-format +msgid "Currently playing: `%(title)s`\n" +"Added by: `%(user)s`\n" +"Progress: `[%(progress)s/%(total)s]`\n" +msgstr "" + +#: musicbot/bot.py:6064 +#, python-format +msgid "**Entry #%(index)s:**Title: `%(title)s`\n" +"Added by: `%(user)s\n\n" +msgstr "" + +#: musicbot/bot.py:6072 +#, python-format +msgid "%(progress)sThere are `%(total)s` entries in the queue.\n" +"Here are the next %(per_page)s songs, starting at song #%(start)s\n\n" +"%(tracks)s" +msgstr "" + +#: musicbot/bot.py:6085 +msgid "Songs in queue" +msgstr "" + +#: musicbot/bot.py:6105 +msgid "Try that again. MusicBot couldn't make or get a reference to the queue message.\n" +"If the issue persists, file a bug report." +msgstr "" + +#: musicbot/bot.py:6156 +msgid "Search for and remove bot messages and commands from the calling text channel.\n" +"Optionally supply a number of messages to search through, 50 by default 500 max.\n" +"This command may be slow if larger ranges are given.\n" +msgstr "" + +#: musicbot/bot.py:6180 +msgid "Invalid parameter. Please provide a number of messages to search." +msgstr "" + +#: musicbot/bot.py:6215 +msgid "Cannot use purge on private DM channel." +msgstr "" + +#: musicbot/bot.py:6222 +#, python-format +msgid "Cleaned up %(number)s message(s)." +msgstr "" + +#: musicbot/bot.py:6226 +msgid "Bot does not have permission to manage messages." +msgstr "" + +#: musicbot/bot.py:6231 +msgid "Dump the individual urls of a playlist to a file." +msgstr "" + +#: musicbot/bot.py:6247 +msgid "The given URL was not a valid URL." +msgstr "" + +#: musicbot/bot.py:6257 +#, python-format +msgid "Could not extract info from input url\n" +"%(raw_error)s\n" +msgstr "" + +#: musicbot/bot.py:6262 +msgid "This does not seem to be a playlist." +msgstr "" + +#: musicbot/bot.py:6282 +#, python-format +msgid "Here is the playlist dump for: %(url)s" +msgstr "" + +#: musicbot/bot.py:6292 +msgid "Display your Discord User ID, or the ID of a mentioned user.\n" +"This command is deprecated in favor of Developer Mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6307 +#, python-format +msgid "Your user ID is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6312 +#, python-format +msgid "The user ID for `%(username)s` is `%(id)s`" +msgstr "" + +#: musicbot/bot.py:6319 +msgid "List the Discord IDs for the selected category.\n" +"Returns all ID data by default, but one or more categories may be selected.\n" +"This command is deprecated in favor of using Developer mode in Discord clients.\n" +msgstr "" + +#: musicbot/bot.py:6341 +#, python-format +msgid "Valid categories: %(cats)s" +msgstr "" + +#: musicbot/bot.py:6388 +msgid "Here are the IDs you requested:" +msgstr "" + +#: musicbot/bot.py:6395 +msgid "Get a list of your permissions, or the permisions of the mentioned user." +msgstr "" + +#: musicbot/bot.py:6425 +msgid "Invalid user ID or server nickname, please double check the ID and try again." +msgstr "" + +#: musicbot/bot.py:6432 +msgid "Could not determine the discord User. Try again." +msgstr "" + +#: musicbot/bot.py:6439 +#, python-format +msgid "Your command permissions in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6448 +#, python-format +msgid "The command permissions for %(username)s in %(server)s are:\n" +"```\n" +"%(permissions)s\n" +"```" +msgstr "" + +#: musicbot/bot.py:6464 +msgid " Show loaded groups and list permission options.\n" +msgstr "" + +#: musicbot/bot.py:6467 +msgid " Reloads permissions from the permissions.ini file.\n" +msgstr "" + +#: musicbot/bot.py:6470 +msgid " Add new group with defaults.\n" +msgstr "" + +#: musicbot/bot.py:6473 +msgid " Remove existing group.\n" +msgstr "" + +#: musicbot/bot.py:6476 +msgid " Show help text for the permission option.\n" +msgstr "" + +#: musicbot/bot.py:6479 +msgid " Show permission value for given group and permission.\n" +msgstr "" + +#: musicbot/bot.py:6482 +msgid " Save permissions group to file.\n" +msgstr "" + +#: musicbot/bot.py:6485 +msgid " Set permission value for the group.\n" +msgstr "" + +#: musicbot/bot.py:6488 +msgid "Manage permissions.ini configuration from within discord." +msgstr "" + +#: musicbot/bot.py:6503 +msgid "Permissions cannot use channel and user mentions at the same time." +msgstr "" + +#: musicbot/bot.py:6534 +msgid "Permissions reloaded from file successfully!" +msgstr "" + +#: musicbot/bot.py:6538 +#, python-format +msgid "Unable to reload Permissions due to an errror:\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6558 +#, python-format +msgid "## Available Groups:\n" +"%(groups)s\n" +"## Available Options:\n" +"%(options)s\n" +msgstr "" + +#: musicbot/bot.py:6575 +msgid "You must provide a group or option name for this command." +msgstr "" + +#: musicbot/bot.py:6579 +msgid "You must provide a group, option, and value to set for this command." +msgstr "" + +#: musicbot/bot.py:6593 +#, python-format +msgid "The %(option)s sub-command requires a group and permission name." +msgstr "" + +#: musicbot/bot.py:6605 +#, python-format +msgid "The group `%(group)s` is not available.\n" +"The available groups are: %(sections)s" +msgstr "" + +#: musicbot/bot.py:6616 +#, python-format +msgid "The permission `%(option)s` is not available." +msgstr "" + +#: musicbot/bot.py:6624 +msgid "This permission can only be set by editing the permissions file." +msgstr "" + +#: musicbot/bot.py:6633 +#, python-format +msgid "By default this permission is set to: `%(value)s`" +msgstr "" + +#: musicbot/bot.py:6638 +#, python-format +msgid "**Permission:** `%(option)s`\n" +"%(comment)s\n\n" +"%(default)s" +msgstr "" + +#: musicbot/bot.py:6652 +#, python-format +msgid "Cannot add group `%(group)s` it already exists." +msgstr "" + +#: musicbot/bot.py:6660 +#, python-format +msgid "Successfully added new group: `%(group)s`\n" +"You can now customizse the permissions with: `setperms set %(group)s`\n" +"Make sure to save the new group with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6670 +msgid "Cannot remove built-in group." +msgstr "" + +#: musicbot/bot.py:6677 +#, python-format +msgid "Successfully removed group: `%(group)s`\n" +"Make sure to save this change with: `setperms save %(group)s`" +msgstr "" + +#: musicbot/bot.py:6688 musicbot/bot.py:6727 +msgid "The owner group is not editable." +msgstr "" + +#: musicbot/bot.py:6696 +#, python-format +msgid "Failed to save the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6700 +#, python-format +msgid "Successfully saved the group: `%(group)s`" +msgstr "" + +#: musicbot/bot.py:6711 +#, python-format +msgid "**Permission:** `%(permission)s`\n" +"Current Value: `%(loaded)s`\n" +"INI File Value: `%(ini)s`" +msgstr "" + +#: musicbot/bot.py:6743 +#, python-format +msgid "Permission `%(option)s` was not updated!" +msgstr "" + +#: musicbot/bot.py:6748 +#, python-format +msgid "Permission `%(permission)s` was updated for this session.\n" +"To save the change use `setperms save %(section)s %(option)s`" +msgstr "" + +#: musicbot/bot.py:6765 +msgid "Change the bot's username on discord.Note: The API may limit name changes to twice per hour." +msgstr "" + +#: musicbot/bot.py:6784 +msgid "Failed to change username. Did you change names too many times?\n" +"Remember name changes are limited to twice per hour.\n" +msgstr "" + +#: musicbot/bot.py:6790 +#, python-format +msgid "Failed to change username due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6795 +#, python-format +msgid "Set the bot's username to `%(name)s`" +msgstr "" + +#: musicbot/bot.py:6798 +msgid "Change the MusicBot's nickname." +msgstr "" + +#: musicbot/bot.py:6812 +msgid "Unable to change nickname: no permission." +msgstr "" + +#: musicbot/bot.py:6820 +#, python-format +msgid "Failed to set nickname due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6825 +#, python-format +msgid "Set the bot's nickname to `%(nick)s`" +msgstr "" + +#: musicbot/bot.py:6832 +msgid " Set a per-server command prefix." +msgstr "" + +#: musicbot/bot.py:6834 +msgid " Clear the per-server command prefix." +msgstr "" + +#: musicbot/bot.py:6838 +msgid "Override the default command prefix in the server.\n" +"The option EnablePrefixPerGuild must be enabled first." +msgstr "" + +#: musicbot/bot.py:6860 +msgid "Custom emoji must be from this server to use as a prefix." +msgstr "" + +#: musicbot/bot.py:6866 +msgid "Server command prefix is cleared." +msgstr "" + +#: musicbot/bot.py:6871 +#, python-format +msgid "Server command prefix is now: %(prefix)s" +msgstr "" + +#: musicbot/bot.py:6877 +msgid "Prefix per server is not enabled!\n" +"Use the config command to update the prefix instead." +msgstr "" + +#: musicbot/bot.py:6885 +msgid "Change MusicBot's avatar.\n" +"Attaching a file and omitting the url parameter also works.\n" +msgstr "" + +#: musicbot/bot.py:6905 +msgid "You must provide a URL or attach a file." +msgstr "" + +#: musicbot/bot.py:6915 +#, python-format +msgid "Unable to change avatar due to error: \n" +"%(raw_error)s" +msgstr "" + +#: musicbot/bot.py:6919 +msgid "Changed the bot's avatar." +msgstr "" + +#: musicbot/bot.py:6922 +msgid "Force MusicBot to disconnect from the discord server." +msgstr "" + +#: musicbot/bot.py:6933 +#, python-format +msgid "Disconnected from server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6948 +msgid "Disconnected a playerless voice client? [BUG]" +msgstr "" + +#: musicbot/bot.py:6952 +#, python-format +msgid "Not currently connected to server `%(guild)s`" +msgstr "" + +#: musicbot/bot.py:6960 +msgid " Attempt to reload without process restart. The default option.\n" +msgstr "" + +#: musicbot/bot.py:6962 +msgid " Attempt to restart the entire MusicBot process, reloading everything.\n" +msgstr "" + +#: musicbot/bot.py:6964 +msgid " Full restart, but attempt to update pip packages before restart.\n" +msgstr "" + +#: musicbot/bot.py:6966 +msgid " Full restart, but update MusicBot source code with git first.\n" +msgstr "" + +#: musicbot/bot.py:6968 +msgid " Attempt to update all dependency and source code before fully restarting.\n" +msgstr "" + +#: musicbot/bot.py:6972 +msgid "Attempts to restart the MusicBot in a number of different ways.\n" +"With no option supplied, a `soft` restart is implied.\n" +"It can be used to remotely update a MusicBot installation, but should be used with care.\n" +"If you have a service manager, we recommend using it instead of this command for restarts.\n" +msgstr "" + +#: musicbot/bot.py:6993 +msgid "Invalid option given, use one of: soft, full, upgrade, uppip, or upgit" +msgstr "" + +#: musicbot/bot.py:6999 +#, python-format +msgid "%(emoji)s Restarting current instance..." +msgstr "" + +#: musicbot/bot.py:7004 +#, python-format +msgid "%(emoji)s Restarting bot process..." +msgstr "" + +#: musicbot/bot.py:7009 +#, python-format +msgid "%(emoji)s Will try to upgrade required pip packages and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7014 +#, python-format +msgid "%(emoji)s Will try to update bot code with git and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7019 +#, python-format +msgid "%(emoji)s Will try to upgrade everything and restart the bot..." +msgstr "" + +#: musicbot/bot.py:7053 +msgid "Disconnect from all voice channels and close the MusicBot process." +msgstr "" + +#: musicbot/bot.py:7079 +msgid " Leave the discord server given by name or server ID." +msgstr "" + +#: musicbot/bot.py:7083 +msgid "Force MusicBot to leave the given Discord server.\n" +"Names are case-sensitive, so using an ID number is more reliable.\n" +msgstr "" + +#: musicbot/bot.py:7102 +msgid "You must provide an ID or name." +msgstr "" + +#: musicbot/bot.py:7113 +#, python-format +msgid "No guild was found with the ID or name `%(input)s`" +msgstr "" + +#: musicbot/bot.py:7121 +msgid "Unknown" +msgstr "" + +#: musicbot/bot.py:7128 +#, python-format +msgid "Left the guild: `%(name)s` (Owner: `%(owner)s`, ID: `%(id)s`)" +msgstr "" + +#: musicbot/bot.py:7138 +msgid "Command used for testing. It prints a list of commands which can be verified by a test suite." +msgstr "" + +#: musicbot/bot.py:7162 +msgid "This command issues a log at level CRITICAL, but does nothing else.\n" +"Can be used to manually pin-point events in the MusicBot log file.\n" +msgstr "" + +#: musicbot/bot.py:7173 +#, python-format +msgid "Logged breakpoint with ID: %(uuid)s" +msgstr "" + +#: musicbot/bot.py:7180 +msgid " View most common types reported by objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7183 +msgid " View limited objgraph.show_growth() output.\n" +msgstr "" + +#: musicbot/bot.py:7186 +msgid " View most common types of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7189 +msgid " View typestats of leaking objects.\n" +msgstr "" + +#: musicbot/bot.py:7192 +msgid " Evaluate the given function and args on objgraph.\n" +msgstr "" + +#: musicbot/bot.py:7196 +msgid "Interact with objgraph, if it is installed, to gain insight into memory usage.\n" +"You can pass an arbitrary method with arguments (but no spaces!) that is a member of objgraph.\n" +"Since this method evaluates arbitrary code, it is considered dangerous like the debug command.\n" +msgstr "" + +#: musicbot/bot.py:7212 +msgid "Could not import `objgraph`, is it installed?" +msgstr "" + +#: musicbot/bot.py:7249 +msgid "This command will execute arbitrary python code in the command scope.\n" +"First eval() is attempted, if exceptions are thrown exec() is tried next.\n" +"If eval is successful, it's return value is displayed.\n" +"If exec is successful, a value can be set to local variable `result` and that value will be returned.\n\n" +"Multi-line code can be executed if wrapped in code-block.\n" +"Otherwise only a single line may be executed.\n\n" +"This command may be removed in a future version, and is used by developers to debug MusicBot behaviour.\n" +"The danger of this command cannot be understated. Do not use it or give access to it if you do not understand the risks!\n" +msgstr "" + +#: musicbot/bot.py:7302 +#, python-format +msgid "Failed to execute debug code:\n" +"%(py_code)s\n" +"Exception: ```\n" +"%(ex_name)s:\n" +"%(ex_text)s```" +msgstr "" + +#: musicbot/bot.py:7320 +msgid "Create 'markdown' for options, permissions, or commands from the code.\n" +"The output is used to update github pages and is thus unsuitable for normal reference use." +msgstr "" + +#: musicbot/bot.py:7337 musicbot/bot.py:7398 +#, python-format +msgid "Sub-command must be one of: %(options)s" +msgstr "" + +#: musicbot/bot.py:7387 +msgid "Makes default INI files." +msgstr "" + +#: musicbot/bot.py:7410 +msgid "Saved the requested INI file to disk. Go check it" +msgstr "" + +#: musicbot/bot.py:7415 +msgid "Display the current bot version and check for updates to MusicBot or dependencies.\n" +msgstr "" + +#: musicbot/bot.py:7439 +msgid "Could not locate git executable." +msgstr "" + +#: musicbot/bot.py:7473 +#, python-format +msgid "No updates in branch `%(branch)s` remote." +msgstr "" + +#: musicbot/bot.py:7478 +#, python-format +msgid "New commits are available in `%(branch)s` branch remote." +msgstr "" + +#: musicbot/bot.py:7484 musicbot/bot.py:7527 +msgid "Error while checking, see logs for details." +msgstr "" + +#: musicbot/bot.py:7518 +#, python-format +msgid "Update for `%(name)s` to version: `%(version)s`\n" +msgstr "" + +#: musicbot/bot.py:7524 +msgid "No updates for dependencies found." +msgstr "" + +#: musicbot/bot.py:7530 +msgid "There are updates for MusicBot available for download." +msgstr "" + +#: musicbot/bot.py:7532 +msgid "MusicBot is totally up-to-date!" +msgstr "" + +#: musicbot/bot.py:7536 +#, python-format +msgid "%(status)s\n\n" +"**Source Code Updates:**\n" +"%(git_status)s\n\n" +"**Dependency Updates:**\n" +"%(pip_status)s" +msgstr "" + +#: musicbot/bot.py:7550 +msgid "Displays the MusicBot uptime, or time since last start / restart." +msgstr "" + +#: musicbot/bot.py:7565 +#, python-format +msgid "%(name)s has been online for `%(time)s`" +msgstr "" + +#: musicbot/bot.py:7572 +msgid "Display latency information for Discord API and all connected voice clients." +msgstr "" + +#: musicbot/bot.py:7594 +#, python-format +msgid "- `%(delay).0f ms` (`%(avg).0f ms` Avg.) in region: `%(region)s`\n" +msgstr "" + +#: musicbot/bot.py:7599 +msgid "No voice clients connected.\n" +msgstr "" + +#: musicbot/bot.py:7604 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`\n" +"**VoiceClient Latency:**\n" +"%(voices)s" +msgstr "" + +#: musicbot/bot.py:7612 +msgid "Display API latency and Voice latency if MusicBot is connected." +msgstr "" + +#. TRANSLATORS: short for automatic, displayed when voice region is not selected. +#: musicbot/bot.py:7628 +msgid "auto" +msgstr "" + +#: musicbot/bot.py:7630 +#, python-format +msgid "\n" +"**Voice Latency:** `%(delay).0f ms` (`%(average).0f} ms` Avg.) in region `%(region)s`" +msgstr "" + +#: musicbot/bot.py:7635 +#, python-format +msgid "**API Latency:** `%(delay).0f ms`%(voice)s" +msgstr "" + +#: musicbot/bot.py:7640 +msgid "Display MusicBot version number in the chat." +msgstr "" + +#: musicbot/bot.py:7648 +#, python-format +msgid "https://github.com/Just-Some-Bots/MusicBot\n" +"Current version: `%(version)s`" +msgstr "" + +#: musicbot/bot.py:7660 +msgid " Update the cookies.txt file using a cookies.txt attachment." +msgstr "" + +#: musicbot/bot.py:7663 +msgid " Enable or disable cookies.txt file without deleting it." +msgstr "" + +#: musicbot/bot.py:7667 +msgid "Allows management of the cookies feature in yt-dlp.\n" +"When updating cookies, you must upload a file named cookies.txt\n" +"If cookies are disabled, uploading will enable the feature.\n" +"Uploads will delete existing cookies, including disabled cookies file.\n\n" +"WARNING:\n" +" Copying cookies can risk exposing your personal information or accounts,\n" +" and may result in account bans or theft if you are not careful.\n" +" It is not recommended due to these risks, and you should not use this\n" +" feature if you do not understand how to avoid the risks." +msgstr "" + +#: musicbot/bot.py:7688 +msgid "Cookies already enabled." +msgstr "" + +#: musicbot/bot.py:7695 +msgid "Cookies must be uploaded to be enabled. (Missing cookies file.)" +msgstr "" + +#: musicbot/bot.py:7708 +#, python-format +msgid "Could not enable cookies due to error: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7711 +msgid "Cookies have been enabled." +msgstr "" + +#: musicbot/bot.py:7722 +#, python-format +msgid "Could not rename cookies file due to error: %(raw_error)s\n" +"Cookies temporarily disabled and will be re-enabled on next restart." +msgstr "" + +#: musicbot/bot.py:7726 +msgid "Cookies have been disabled." +msgstr "" + +#: musicbot/bot.py:7731 +msgid "No attached uploads were found, try again while uploading a cookie file." +msgstr "" + +#: musicbot/bot.py:7749 +#, python-format +msgid "Error downloading the cookies file from discord: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7754 +#, python-format +msgid "Could not save cookies to disk: %(raw_error)s" +msgstr "" + +#: musicbot/bot.py:7762 +msgid "Cookies uploaded and enabled." +msgstr "" + +#: musicbot/bot.py:7872 +msgid "You cannot use this bot in private messages." +msgstr "" + +#: musicbot/bot.py:7941 +#, python-format +msgid "This command is not allowed for your permissions group: %(group)s" +msgstr "" + +#: musicbot/bot.py:7976 +msgid "This command requires you to be in a Voice channel." +msgstr "" + +#: musicbot/bot.py:8075 +#, python-format +msgid "**Command:** %(name)s" +msgstr "" + +#: musicbot/bot.py:8134 +msgid "Exception Error" +msgstr "" + +#: musicbot/bot.py:8179 +#, python-format +msgid "**Example with prefix:**\n" +"%(prefix)s`%(command)s ...`\n" +msgstr "" + +#: musicbot/bot.py:8183 +msgid "No description given.\n" +msgstr "" + +#: musicbot/bot.py:8186 +msgid "No usage given." +msgstr "" + +#: musicbot/bot.py:8220 +#, python-format +msgid "**Example usage:**\n" +"```%(usage)s```\n" +"%(prefix_note)s**Description:**\n" +"%(desc)s" +msgstr "" + +#: musicbot/bot.py:8273 +#, python-format +msgid "Leaving voice channel %(channel)s due to inactivity." +msgstr "" + +#: musicbot/bot.py:8554 +#, python-format +msgid "Left `%(guild)s` due to bot owner not being found in it." +msgstr "" + +#: musicbot/config.py:127 +msgid "Set the log verbosity of MusicBot. Normally this should be set to INFO.\n" +"It can be set to one of the following:\n" +" CRITICAL, ERROR, WARNING, INFO, DEBUG, VOICEDEBUG, FFMPEG, NOISY, or EVERYTHING" +msgstr "" + +#: musicbot/config.py:149 +msgid "Discord bot authentication token for your Bot.\n" +"Visit Discord Developer Portal to create a bot App and generate your Token.\n" +"Never publish your bot token!" +msgstr "" + +#: musicbot/config.py:162 +msgid "Provide your own Spotify Client ID to enable MusicBot to interact with Spotify API.\n" +"MusicBot will try to use the web player API (guest mode) if nothing is set here.\n" +"Using your own API credentials grants higher usage limits than guest mode." +msgstr "" + +#: musicbot/config.py:174 +msgid "Provide your Spotify Client Secret to enable MusicBot to interact with Spotify API.\n" +"This is required if you set the Spotify_ClientID option above." +msgstr "" + +#: musicbot/config.py:188 +msgid "Provide a Discord User ID number to set the owner of this bot.\n" +"The word 'auto' or number 0 will set the owner based on App information.\n" +"Only one owner ID can be set here. Generally, setting 'auto' is recommended." +msgstr "" + +#: musicbot/config.py:201 +msgid "A list of Discord User IDs who can use the dev-only commands.\n" +"Warning: dev-only commands can allow arbitrary remote code execution.\n" +"Use spaces to separate multiple IDs.\n" +"Most users should leave this setting blank." +msgstr "" + +#: musicbot/config.py:217 +msgid "Discord Member IDs for other bots that MusicBot should not ignore.\n" +"Use spaces to separate multiple IDs.\n" +"All bots are ignored by default." +msgstr "" + +#: musicbot/config.py:230 +msgid "Command prefix is how all MusicBot commands must be started in Discord messages.\n" +"E.g., if you set this to * the play command is trigger by *play ..." +msgstr "" + +#: musicbot/config.py:242 +msgid "Enable using commands with @[YourBotNameHere]\n" +"The CommandPrefix is still available, but can be replaced with @ mention." +msgstr "" + +#: musicbot/config.py:253 +msgid "ID numbers for text channels that MusicBot should exclusively use for commands.\n" +"This can contain IDs for channels in multiple servers.\n" +"Use spaces to separate multiple IDs.\n" +"All channels are used if this is not set." +msgstr "" + +#: musicbot/config.py:267 +msgid "Allow responses in all channels while no specific channel is set for a server.\n" +"Only used when BindToChannels is missing an ID for a server." +msgstr "" + +#: musicbot/config.py:278 +msgid "A list of Voice Channel IDs that MusicBot should automatically join on start up.\n" +"Use spaces to separate multiple IDs." +msgstr "" + +#: musicbot/config.py:289 +msgid "MusicBot will try to send Now Playing notices directly to the member who requested the song instead of posting in a server channel." +msgstr "" + +#: musicbot/config.py:299 +msgid "Disable now playing messages for songs played via auto playlist." +msgstr "" + +#: musicbot/config.py:309 +msgid "Forces MusicBot to use a specific channel to send now playing messages.\n" +"Only one text channel ID can be used per server." +msgstr "" + +#: musicbot/config.py:319 +msgid "MusicBot will automatically delete Now Playing messages." +msgstr "" + +#: musicbot/config.py:329 +msgid "Sets the default volume level MusicBot will play songs at.\n" +"You can use any value from 0 to 1, or 0% to 100% volume." +msgstr "" + +#: musicbot/config.py:340 +msgid "Sets the default speed MusicBot will play songs at.\n" +"Must be a value from 0.5 to 100.0 for ffmpeg to use it.\n" +"A value of 1 is normal playback speed.\n" +"Note: Streamed media does not support speed adjustments." +msgstr "" + +#: musicbot/config.py:354 +msgid "Number of channel member votes required to skip a song.\n" +"Acts as a minimum when SkipRatio would require more votes." +msgstr "" + +#: musicbot/config.py:366 +msgid "This percent of listeners in voice must vote for skip.\n" +"If SkipsRequired is lower than the computed value, it will be used instead.\n" +"You can set this from 0 to 1, or 0% to 100%." +msgstr "" + +#: musicbot/config.py:378 +msgid "Allow MusicBot to keep downloaded media, or delete it right away." +msgstr "" + +#: musicbot/config.py:389 +msgid "If SaveVideos is enabled, set a limit on how much storage space should be used." +msgstr "" + +#: musicbot/config.py:400 +msgid "If SaveVideos is enabled, set a limit on how long files should be kept." +msgstr "" + +#: musicbot/config.py:411 +msgid "If SaveVideos is enabled, never purge auto playlist songs from the cache regardless of limits." +msgstr "" + +#: musicbot/config.py:420 +msgid "Mention the user who added the song when it is played." +msgstr "" + +#: musicbot/config.py:429 +msgid "Automatically join the owner if they are in an accessible voice channel when bot starts." +msgstr "" + +#: musicbot/config.py:439 +msgid "Enable MusicBot to automatically play music from the auto playlist when the queue is empty." +msgstr "" + +#: musicbot/config.py:448 +msgid "Shuffles the auto playlist tracks before playing them." +msgstr "" + +#: musicbot/config.py:457 +msgid "Enable automatic skip of auto playlist songs when a user plays a new song.\n" +"This only applies to the current playing song if it was added by the auto playlist." +msgstr "" + +#: musicbot/config.py:469 +msgid "Remove songs from the auto playlist if they are found in the song blocklist." +msgstr "" + +#: musicbot/config.py:488 +msgid "Allow MusicBot to automatically delete messages it sends, after a delay.\n" +"Delay period is controlled by DeleteDelayShort and DeleteDelayLong." +msgstr "" + +#: musicbot/config.py:498 +msgid "Auto delete valid commands after a delay." +msgstr "" + +#: musicbot/config.py:507 +msgid "Sets the short period of seconds before deleting messages.\n" +"This period is used by messages that require no further interaction." +msgstr "" + +#: musicbot/config.py:518 +msgid "Sets the long delay period before deleting messages.\n" +"This period is used by interactive or long-winded messages, like search and help." +msgstr "" + +#: musicbot/config.py:530 +msgid "Allow MusicBot to save the song queue, so queued songs will survive restarts." +msgstr "" + +#: musicbot/config.py:540 +msgid "Enable MusicBot to download the next song in the queue while a song is playing.\n" +"Currently this option does not apply to auto playlist or songs added to an empty queue." +msgstr "" + +#: musicbot/config.py:550 +#, python-brace-format +msgid "Specify a custom message to use as the bot's status. If left empty, the bot\n" +"will display dynamic info about music currently being played in its status instead.\n" +"Status messages may also use the following variables:\n" +" {n_playing} = Number of currently Playing music players.\n" +" {n_paused} = Number of currently Paused music players.\n" +" {n_connected} = Number of connected music players, in any player state.\n\n" +"The following variables give access to information about the player and track.\n" +"These variables may not be accurate in multi-guild bots:\n" +" {p0_length} = The total duration of the track, if available. Ex: [2:34]\n" +" {p0_title} = The track title for the currently playing track.\n" +" {p0_url} = The track url for the currently playing track." +msgstr "" + +#: musicbot/config.py:571 +msgid "If enabled, status messages will report info on paused players." +msgstr "" + +#: musicbot/config.py:582 +msgid "If enabled, MusicBot will save the track title to: data/[Server ID]/current.txt" +msgstr "" + +#: musicbot/config.py:592 +msgid "Allow the member who requested the song to skip it, bypassing votes." +msgstr "" + +#: musicbot/config.py:602 +msgid "Tries to use ffmpeg to get volume normalizing options for use in playback.\n" +"This option can cause delay between playing songs, as the whole track must be processed." +msgstr "" + +#: musicbot/config.py:612 +msgid "Allow MusicBot to format it's messages as embeds." +msgstr "" + +#: musicbot/config.py:621 +msgid "The number of entries to show per-page when using q command to list the queue." +msgstr "" + +#: musicbot/config.py:631 +msgid "Enable MusicBot to automatically remove unplayable entries from tha auto playlist." +msgstr "" + +#: musicbot/config.py:640 +msgid "Display MusicBot config settings in the logs at startup." +msgstr "" + +#: musicbot/config.py:650 +msgid "Enable users with the InstaSkip permission to bypass skip voting and force skips." +msgstr "" + +#: musicbot/config.py:660 +msgid "If enabled, MusicBot will leave servers if the owner is not in their member list." +msgstr "" + +#: musicbot/config.py:670 +msgid "If enabled, MusicBot will allow commands to have multiple names using data in: config/aliases.json" +msgstr "" + +#: musicbot/config.py:681 +msgid "Replace MusicBot name/version in embed footer with custom text.\n" +"Only applied when UseEmbeds is enabled and it is not blank." +msgstr "" + +#: musicbot/config.py:691 +msgid "Completely remove the footer from embeds." +msgstr "" + +#: musicbot/config.py:700 +msgid "MusicBot will automatically deafen itself when entering a voice channel." +msgstr "" + +#: musicbot/config.py:711 +msgid "If enabled, MusicBot will leave a voice channel when no users are listening,\n" +"after waiting for a period set in LeaveInactiveVCTimeOut option.\n" +"Listeners are channel members, excluding bots, who are not deafened." +msgstr "" + +#: musicbot/config.py:723 +msgid "Set a period of time to wait before leaving an inactive voice channel.\n" +"You can set this to a number of seconds or phrase like: 4 hours" +msgstr "" + +#: musicbot/config.py:734 +msgid "If enabled, MusicBot will leave the channel immediately when the song queue is empty." +msgstr "" + +#: musicbot/config.py:744 +msgid "When paused or no longer playing, wait for this amount of time then leave voice.\n" +"You can set this to a number of seconds of phrase like: 15 minutes\n" +"Set it to 0 to disable leaving in this way." +msgstr "" + +#: musicbot/config.py:756 +msgid "If enabled, users must indicate search result choices by sending a message instead of using reactions." +msgstr "" + +#: musicbot/config.py:766 +msgid "Sets the default number of search results to fetch when using the search command without a specific number." +msgstr "" + +#: musicbot/config.py:778 +msgid "Allow MusicBot to save a per-server command prefix, and enables the setprefix command." +msgstr "" + +#: musicbot/config.py:789 +msgid "If enabled and multiple members are adding songs, MusicBot will organize playback for one song per member." +msgstr "" + +#: musicbot/config.py:800 +msgid "Allow MusicBot to use timed pings to detect network outage and availability.\n" +"This may be useful if you keep the bot joined to a channel or playing music 24/7.\n" +"MusicBot must be restarted to enable network testing.\n" +"By default this is disabled." +msgstr "" + +#: musicbot/config.py:814 +#, python-format +msgid "Enable saving all songs played by MusicBot to a global playlist file: %(filename)s\n" +"This will contain all songs from all servers." +msgstr "" + +#: musicbot/config.py:829 +#, python-format +msgid "Enable saving songs played per-server to a playlist file: %(basename)s[Server ID]%(ext)s" +msgstr "" + +#: musicbot/config.py:845 +msgid "Enable playback of local media files using the play command.\n" +"When enabled, users can use: `play file://path/to/file.ext`\n" +"to play files from the local MediaFileDirectory path." +msgstr "" + +#: musicbot/config.py:858 +msgid "Allow MusicBot to automatically unpause when play commands are used." +msgstr "" + +#: musicbot/config.py:877 +msgid "Experimental, HTTP/HTTPS proxy settings to use with ytdlp media downloader.\n" +"The value set here is passed to `ytdlp --proxy` and aiohttp header checking.\n" +"Leave blank to disable." +msgstr "" + +#: musicbot/config.py:888 +msgid "Experimental option to set a static User-Agent header in yt-dlp.\n" +"It is not typically recommended by yt-dlp to change the UA string.\n" +"For examples of what you might put here, check the following two links:\n" +" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent \n" +" https://www.useragents.me/ \n" +"Leave blank to use default, dynamically generated UA strings." +msgstr "" + +#: musicbot/config.py:903 +#, python-format +msgid "Experimental option to enable yt-dlp to use a YouTube account via OAuth2.\n" +"When enabled, you must use the generated URL and code to authorize an account.\n" +"The authorization token is then stored in the `%(oauthfile)s` file.\n" +"This option should not be used when cookies are enabled.\n" +"Using a personal account may not be recommended.\n" +"Set yes to enable or no to disable." +msgstr "" + +#: musicbot/config.py:920 +msgid "Optional youtube video URL used at start-up for triggering OAuth2 authorization.\n" +"This starts the OAuth2 prompt early, rather than waiting for a song request.\n" +"The URL set here should be an accessible youtube video URL.\n" +"Authorization must be completed before start-up will continue when this is set." +msgstr "" + +#: musicbot/config.py:939 +msgid "Toggle the user block list feature, without emptying the block list." +msgstr "" + +#: musicbot/config.py:949 +msgid "An optional file path to a text file listing Discord User IDs, one per line." +msgstr "" + +#: musicbot/config.py:961 +msgid "Enable the song block list feature, without emptying the block list." +msgstr "" + +#: musicbot/config.py:971 +msgid "An optional file path to a text file that lists URLs, words, or phrases one per line.\n" +"Any song title or URL that contains any line in the list will be blocked." +msgstr "" + +#: musicbot/config.py:984 +msgid "An optional path to a directory containing auto playlist files.\n" +"Each file should contain a list of playable URLs or terms, one track per line." +msgstr "" + +#: musicbot/config.py:996 +#, python-format +msgid "An optional directory path where playable media files can be stored.\n" +"All files and sub-directories can then be accessed by using 'file://' as a protocol.\n" +"Example: file://some/folder/name/file.ext\n" +"Maps to: %(path)s/some/folder/name/file.ext" +msgstr "" + +#: musicbot/config.py:1015 +msgid "An optional directory path where MusicBot will store long and short-term cache for playback." +msgstr "" + +#: musicbot/config.py:1026 +#, python-format +msgid "Configure automatic log file rotation at restart, and limit the number of files kept.\n" +"When disabled, only one log is kept and its contents are replaced each run.\n" +"Set to 0 to disable. Maximum allowed number is %(max)s." +msgstr "" + +#: musicbot/config.py:1039 +msgid "Configure the log file date format used when LogsMaxKept is enabled.\n" +"If left blank, a warning is logged and the default will be used instead.\n" +"Learn more about time format codes from the tables and data here:\n" +" https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior" +msgstr "" + +#: musicbot/config.py:1053 +msgid "Potentially reduces CPU usage, but disables volume and speed controls.\n" +"This option will disable UseExperimentalEqualization option as well." +msgstr "" + +#: musicbot/config.py:1083 +#, python-format +msgid "Error while reading config.\n\n" +"Problem:\n" +" One or more required config option sections are missing.\n" +" The missing sections are:\n" +" %(sections)s\n\n" +"Solution:\n" +" Repair your config optoins file.\n" +" Each [Section] must appear only once, with no other text on the same line.\n" +" Each section must have at least one option.\n" +" Use the example options as a template or copy it from the repository." +msgstr "" + +#: musicbot/config.py:1132 +msgid "Error while validating config options.\n\n" +"Problem:\n" +" Config option AudioCachePath is not a directory.\n\n" +"Solution:\n" +" Make sure the path you configured is a path to a folder / directory." +msgstr "" + +#: musicbot/config.py:1153 +#, python-format +msgid "Error while validating config options.\n\n" +"Problem:\n" +" AudioCachePath config option could not be set due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Double check the setting is a valid, accessible directory path." +msgstr "" + +#: musicbot/config.py:1176 +#, python-format +msgid "Error while reading config options.\n\n" +"Problem:\n" +" No bot Token was specified in the config options or environment.\n\n" +"Solution:\n" +" Set the Token config option or set environment variable %(env_var)s with an App token." +msgstr "" + +#: musicbot/config.py:1244 +msgid "Error while fetching OwnerID automatically.\n\n" +"Problem:\n" +" Discord App info is not available.\n" +" This could be a temporary API outage or a bug.\n\n" +"Solution:\n" +" Manually set the OwnerID config option or try again later." +msgstr "" + +#: musicbot/config.py:1262 +msgid "Error validating config options.\n\n" +"Problem:\n" +" The OwnerID config is the same as your Bot / App ID.\n\n" +"Solution:\n" +" Do not use the Bot or App ID in the OwnerID field." +msgstr "" + +#: musicbot/config.py:1327 +#, python-format +msgid "Error locating config.\n\n" +"Problem:\n" +" Could not find or create a config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Verify the config folder and files exist and can be read by MusicBot." +msgstr "" + +#: musicbot/config.py:1345 +#, python-format +msgid "Error loading config.\n\n" +"Problem:\n" +" MusicBot could not read config file due to an error:\n" +" %(raw_error)s\n\n" +"Solution:\n" +" Make sure the file is accessible and error free.\n" +" Copy the example file from the repo if all else fails." +msgstr "" + +#: musicbot/config.py:2184 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The owner ID in [%(section)s] > %(option)s is not valid.\n\n" +"Solution:\n" +" Set %(option)s to a numerical ID or set it to `auto` or `0` for automatic owner binding." +msgstr "" + +#: musicbot/config.py:2220 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" The config option [%(section)s] > %(option)s is not a valid file location.\n\n" +"Solution:\n" +" Check the path setting and make sure the file exists and is accessible to MusicBot." +msgstr "" + +#: musicbot/config.py:2250 +#, python-format +msgid "Error loading config value.\n\n" +"Problem:\n" +" One of the IDs in option [%(section)s] > %(option)s is invalid.\n\n" +"Solution:\n" +" Ensure all IDs are numerical, and separated only by spaces or commas." +msgstr "" + +#: musicbot/downloader.py:232 +msgid "HEAD seems to have no headers..." +msgstr "" + +#: musicbot/downloader.py:381 +msgid "Song info extraction returned no data." +msgstr "" + +#: musicbot/downloader.py:444 +msgid "Cannot continue extraction, event loop is closed." +msgstr "" + +#: musicbot/downloader.py:453 +msgid "Spotify URL is invalid or not supported." +msgstr "" + +#: musicbot/downloader.py:486 musicbot/downloader.py:507 +#, python-format +msgid "Error in yt-dlp while downloading data: %(raw_error)s" +msgstr "" + +#: musicbot/downloader.py:503 +msgid "Cannot stream an invalid URL." +msgstr "" + +#: musicbot/downloader.py:577 +msgid "The local media file could not be found." +msgstr "" + +#: musicbot/entry.py:449 +#, python-format +msgid "Cannot download spotify links, processing error with type: %(type)s" +msgstr "" + +#: musicbot/entry.py:710 +#, python-format +msgid "Download did not complete due to an error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:716 +#, python-format +msgid "Download failed due to a yt-dlp error: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:726 +#, python-format +msgid "Download failed due to an unhandled exception: %(raw_error)s" +msgstr "" + +#: musicbot/entry.py:732 +msgid "Failed to extract data for the requested media." +msgstr "" + +#: musicbot/permissions.py:328 +msgid "List of command names allowed for use, separated by spaces.\n" +"Sub-command access can be controlled by adding _ and the sub-command name.\n" +"That is `config_set` grants only the `set` sub-command of the config command.\n" +"This option overrides CommandBlacklist if set.\n" +msgstr "" + +#: musicbot/permissions.py:342 +msgid "List of command names denied from use, separated by spaces.\n" +"Will not work if CommandWhitelist is set!" +msgstr "" + +#: musicbot/permissions.py:354 +msgid "When enabled, CommandBlacklist and CommandWhitelist are used together.\n" +"Only commands in the whitelist are allowed, however sub-commands may be denied by the blacklist.\n" +msgstr "" + +#: musicbot/permissions.py:365 +msgid "List of command names that can only be used while in the same voice channel as MusicBot.\n" +"Some commands will always require the user to be in voice, regardless of this list.\n" +"Command names should be separated by spaces." +msgstr "" + +#: musicbot/permissions.py:378 +msgid "List of Discord server role IDs that are granted this permission group.\n" +"This option is ignored if UserList is set." +msgstr "" + +#: musicbot/permissions.py:390 +msgid "List of Discord member IDs that are granted permissions in this group.\n" +"This option overrides GrantToRoles." +msgstr "" + +#: musicbot/permissions.py:402 +msgid "Maximum number of songs a user is allowed to queue.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:414 +msgid "Maximum length of a song in seconds. A value of 0 means unlimited.\n" +"This permission may not be enforced if song duration is not available." +msgstr "" + +#: musicbot/permissions.py:426 +msgid "Maximum number of songs a playlist is allowed to have when queued.\n" +"A value of 0 means unlimited." +msgstr "" + +#: musicbot/permissions.py:438 +msgid "The maximum number of items that can be returned in a search." +msgstr "" + +#: musicbot/permissions.py:447 +msgid "Allow users to queue playlists, or multiple songs at once." +msgstr "" + +#: musicbot/permissions.py:456 +msgid "Allow users to skip without voting, if LegacySkip config option is enabled." +msgstr "" + +#: musicbot/permissions.py:465 +msgid "Allows the user to skip a looped song." +msgstr "" + +#: musicbot/permissions.py:474 +msgid "Allows the user to remove any song from the queue.\n" +"Does not remove or skip currently playing songs." +msgstr "" + +#: musicbot/permissions.py:485 +msgid "Skip songs added by users who are not in voice when their song is played." +msgstr "" + +#: musicbot/permissions.py:495 +msgid "Allows the user to add songs to the queue when Karaoke Mode is enabled." +msgstr "" + +#: musicbot/permissions.py:505 +msgid "Auto summon to user voice channel when using play commands, if bot isn't in voice already.\n" +"The summon command must still be allowed for this group!" +msgstr "" + +#: musicbot/permissions.py:516 +#, python-format +msgid "Specify yt-dlp extractor names, separated by spaces, that are allowed to be used.\n" +"When empty, hard-coded defaults are used. The defaults are displayed above, but may change between versions.\n" +"To allow all extractors, add `%(allow_all)s` without quotes to the list.\n\n" +"Services/extractors supported by yt-dlp are listed here:\n" +" https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md \n\n" +"MusicBot also provides one custom service `spotify:musicbot` to enable or disable spotify API extraction.\n" +"NOTICE: MusicBot might not support all services available to yt-dlp!\n" +msgstr "" + +#: musicbot/permissions.py:613 +#, python-format +msgid "You do not have permission to play the requested media.\n" +"The yt-dlp extractor `%(extractor)s` is not permitted in your group." +msgstr "" + +#: musicbot/playlist.py:159 +msgid "Could not extract information" +msgstr "" + +#: musicbot/playlist.py:163 +msgid "This is a playlist." +msgstr "" + +#: musicbot/playlist.py:195 +#, python-format +msgid "Invalid content type `%(type)s` for url: %(url)s" +msgstr "" + +#: musicbot/playlist.py:495 +msgid "no duration data" +msgstr "" + +#: musicbot/playlist.py:504 +msgid "no duration data in current entry" +msgstr "" + +#: musicbot/spotify.py:119 +#, python-format +msgid "Invalid track_data, must be of type `track` got `%(type)s`" +msgstr "" + +#: musicbot/spotify.py:581 musicbot/spotify.py:617 +#, python-format +msgid "Response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/spotify.py:587 musicbot/spotify.py:623 musicbot/spotify.py:733 +msgid "Response JSON did not decode to a dict!" +msgstr "" + +#: musicbot/spotify.py:602 +#, python-format +msgid "Could not make GET to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:638 +#, python-format +msgid "Could not make POST to URL: %(url)s Reason: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:672 +msgid "Failed to get a guest token from Spotify, please try specifying client id and client secret" +msgstr "" + +#: musicbot/spotify.py:683 +#, python-format +msgid "API response did not contain the expected data. Missing key: %(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:689 +#, python-format +msgid "API response contained unexpected data.\n" +"%(raw_error)s" +msgstr "" + +#: musicbot/spotify.py:696 +msgid "Requested a token from Spotify, did not end up getting one" +msgstr "" + +#: musicbot/spotify.py:727 +#, python-format +msgid "API response status is not OK: [%(status)s] %(reason)s" +msgstr "" + +#: musicbot/utils.py:175 +msgid "Only the owner can use this command." +msgstr "" + +#: musicbot/utils.py:195 +msgid "Only dev users can use this command." +msgstr "" + diff --git a/install.ps1 b/install.ps1 index ec8b76bf0..d71c75464 100644 --- a/install.ps1 +++ b/install.ps1 @@ -106,7 +106,8 @@ Remove-Item "cert.fetch" # -----------------------------------------------------CONSTANTS------------------------------------------------------- $DEFAULT_URL_BASE = "https://discordapp.com/api" -$MB_RepoURL = "https://github.com/Just-Some-Bots/MusicBot.git" +#$MB_RepoURL = "https://github.com/Just-Some-Bots/MusicBot.git" +$MB_RepoURL = "https://github.com/itsthefae/MusicBot.git" # ----------------------------------------------INSTALLING DEPENDENCIES------------------------------------------------ $NeedsEnvReload = 0 diff --git a/install.sh b/install.sh index 512ad69d3..14941b369 100644 --- a/install.sh +++ b/install.sh @@ -7,8 +7,13 @@ # a variety of different Linux distros. # +# TODO: Venv install with pre-cloned repo needs fixed. + #-----------------------------------------------Configs-----------------------------------------------# -MusicBotGitURL="https://github.com/Just-Some-Bots/MusicBot.git" +# Original repo is here: +#MusicBotGitURL="https://github.com/Just-Some-Bots/MusicBot.git" +# This is currently required since upstream does not have the updated service file. +MusicBotGitURL="https://github.com/itsTheFae/MusicBot.git" CloneDir="MusicBot" VenvDir="MusicBotVenv" InstallDir="" @@ -127,6 +132,43 @@ function exit_err() { exit 1 } +function build_python() { + PyBuildVer="3.10.14" + PySrcDir="Python-${PyBuildVer}" + PySrcFile="${PySrcDir}.tgz" + PySrcUrl="https://www.python.org/ftp/python/${PyBuildVer}/${PySrcFile}" + + # Ask if we should build python + echo "We need to build python from source for your system." + echo "It will be installed using the altinstall target to avoid conflicts." + echo " Building Python ${PyBuildVer} from: ${PySrcUrl}" + read -rp "Would you like to continue ? [N/y]" BuildPython + if [ "${BuildPython,,}" == "y" ] || [ "${BuildPython,,}" == "yes" ] ; then + # Build python. + curl -o "$PySrcFile" "$PySrcUrl" + tar -xzf "$PySrcFile" + cd "${PySrcDir}" || exit_err "Fatal: Could not change to python source directory." + + ./configure --enable-optimizations + sudo make altinstall + + # Ensure python bin is updated with altinstall name. + find_python + RetVal=$? + if [ "$RetVal" == "0" ] ; then + # check if pip is available + $PyBin -m pip --version >/dev/null 2>&1 + if [ "$?" == "1" ] ; then + # manually install pip package for current user. + $PyBin <(curl -s https://bootstrap.pypa.io/get-pip.py) + fi + else + echo "Error: Could not find python on the PATH after installing it." + exit 1 + fi + fi +} + function find_python() { # compile a list of bin names to try for. PyBins=("python3") # We hope that python3 maps to a good version. @@ -222,11 +264,30 @@ function pull_musicbot_git() { if [ "${UsePwd,,}" == "y" ] || [ "${UsePwd,,}" == "yes" ] ; then echo "" CloneDir="${PWD}" + CloneDirName="$(basename "$PWD")" + # sort out the directory structure, we want musicbot inside its venv. + if [ "$InstalledViaVenv" == "1" ] ; then + # if the venv is inside our repo, move it out. + if [ -d "$VenvDir" ] ; then + echo "Installer needs to move your clone inside the Venv." + echo " - moving $VenvDir up one directory." + mv "./${VenvDir}" "../${VenvDir}" + echo " - moving $CloneDirName into $VenvDir" + cd .. || exit_err "Failed to leave repo directory." + mv "$CloneDir" "${VenvDir}/$CloneDirName" + cd "${VenvDir}/$CloneDirName" || exit_err "Failed to enter clone directory." + CloneDir="${PWD}" + fi + fi $PyBin -m pip install --upgrade -r requirements.txt echo "" - cp ./config/example_options.ini ./config/options.ini + if [ ! -f "./config/options.ini" ] ; then + echo "Creating default options.ini file from example_options.ini file." + echo "" + cp ./config/example_options.ini ./config/options.ini + fi return 0 fi echo "Installer will attempt to create a new directory for MusicBot." @@ -284,7 +345,7 @@ function pull_musicbot_git() { echo "" if ! [ -f ./config/options.ini ] ; then - echo "Creating empty options.ini file from example_options.ini file." + echo "Creating default options.ini file from example_options.ini file." echo "" cp ./config/example_options.ini ./config/options.ini fi @@ -877,33 +938,7 @@ case $DISTRO_NAME in libreadline-dev libsqlite3-dev libbz2-dev \ unzip curl git jq ffmpeg -y - # Ask if we should build python - echo "We need to build python from source for your system. It will be installed using altinstall target." - read -rp "Would you like to continue ? [N/y]" BuildPython - if [ "${BuildPython,,}" == "y" ] || [ "${BuildPython,,}" == "yes" ] ; then - # Build python. - PyBuildVer="3.10.14" - PySrcDir="Python-${PyBuildVer}" - PySrcFile="${PySrcDir}.tgz" - - curl -o "$PySrcFile" "https://www.python.org/ftp/python/${PyBuildVer}/${PySrcFile}" - tar -xzf "$PySrcFile" - cd "${PySrcDir}" || exit_err "Fatal: Could not change to python source directory." - - ./configure --enable-optimizations - sudo make altinstall - - # Ensure python bin is updated with altinstall name. - find_python - RetVal=$? - if [ "$RetVal" == "0" ] ; then - # manually install pip package for current user. - $PyBin <(curl -s https://bootstrap.pypa.io/get-pip.py) - else - echo "Error: Could not find python on the PATH after installing it." - exit 1 - fi - fi + build_python fi if [ "$INSTALL_BOT_BITS" == "1" ] ; then @@ -956,6 +991,25 @@ case $DISTRO_NAME in # NOTE: Raspberry Pi OS 11, i386 arch, returns Debian as distro name. *"Debian"* ) case $DISTRO_NAME in + *"Debian GNU/Linux 10"*) + if [ "$INSTALL_SYS_PKGS" == "1" ] ; then + sudo apt-get update -y + sudo apt-get upgrade -y + + sudo apt-get install -y build-essential \ + libopus-dev libffi-dev libsodium-dev libssl-dev \ + zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev \ + libreadline-dev libsqlite3-dev libbz2-dev \ + unzip curl git jq ffmpeg + + build_python + fi + + if [ "$INSTALL_BOT_BITS" == "1" ] ; then + pull_musicbot_git + fi + ;; + # Tested working: # R-Pi OS 11 @ 2024/03/29 # Debian 11.3 @ 2024/03/29 @@ -963,9 +1017,7 @@ case $DISTRO_NAME in if [ "$INSTALL_SYS_PKGS" == "1" ] ; then sudo apt-get update -y sudo apt-get upgrade -y - sudo apt-get install git libopus-dev libffi-dev libsodium-dev ffmpeg \ - build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev \ - libsqlite3-dev tk-dev libssl-dev openssl python3 python3-pip curl jq -y + sudo apt-get install -y jq git curl ffmpeg python3 python3-pip fi if [ "$INSTALL_BOT_BITS" == "1" ] ; then @@ -981,7 +1033,7 @@ case $DISTRO_NAME in if [ "$INSTALL_SYS_PKGS" == "1" ] ; then sudo apt-get update -y sudo apt-get upgrade -y - sudo apt-get install build-essential libopus-dev libffi-dev libsodium-dev \ + sudo apt-get install -y build-essential libopus-dev libffi-dev libsodium-dev \ python3-full python3-dev python3-venv python3-pip git ffmpeg curl fi @@ -1002,7 +1054,15 @@ case $DISTRO_NAME in if [ "$INSTALL_SYS_PKGS" == "1" ] ; then sudo apt-get update -y sudo apt-get upgrade -y - sudo apt install python3-pip git libopus-dev ffmpeg curl + + sudo apt-get install -y build-essential libopus-dev libffi-dev \ + libsodium-dev libssl-dev zlib1g-dev libncurses5-dev \ + libgdbm-dev libnss3-dev libreadline-dev libsqlite3-dev \ + libbz2-dev liblzma-dev lzma-dev uuid-dev \ + unzip curl git ffmpeg + + build_python + curl -o jq.tar.gz https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz tar -zxvf jq.tar.gz cd jq-1.5 || exit_err "Fatal: Could not change directory to jq-1.5" diff --git a/musicbot/aliases.py b/musicbot/aliases.py index edfbbd504..660a1309e 100644 --- a/musicbot/aliases.py +++ b/musicbot/aliases.py @@ -1,8 +1,9 @@ import json import logging import shutil +from collections import defaultdict from pathlib import Path -from typing import Any, Dict, List, Tuple +from typing import Any, DefaultDict, Dict, List, Tuple from .constants import DEFAULT_COMMAND_ALIAS_FILE, EXAMPLE_COMMAND_ALIAS_FILE from .exceptions import HelpfulError @@ -10,7 +11,10 @@ log = logging.getLogger(__name__) RawAliasJSON = Dict[str, Any] -ComplexAliases = Dict[str, Tuple[str, str]] +CommandTuple = Tuple[str, str] # (cmd, args) +AliasTuple = Tuple[str, str] # (alias, args) +AliasesDict = Dict[str, CommandTuple] # {alias: (cmd, args)} +CommandDict = DefaultDict[str, List[AliasTuple]] # {cmd: [(alias, args),]} class Aliases: @@ -21,8 +25,6 @@ class Aliases: the user to avoid configuring aliases with conflicts. """ - # TODO: add a method to query aliases a natural command has. - def __init__(self, aliases_file: Path, nat_cmds: List[str]) -> None: """ Handle locating, initializing, loading, and validation of command aliases. @@ -38,7 +40,9 @@ def __init__(self, aliases_file: Path, nat_cmds: List[str]) -> None: # "raw" dict from json file. self.aliases_seed: RawAliasJSON = AliasesDefault.aliases_seed # Simple aliases - self.aliases: ComplexAliases = AliasesDefault.complex_aliases + self.aliases: AliasesDict = AliasesDefault.complex_aliases + # Reverse lookup list generated when loading aliases. + self.cmd_aliases: CommandDict = defaultdict(list) # find aliases file if not self.aliases_file.is_file(): @@ -48,9 +52,16 @@ def __init__(self, aliases_file: Path, nat_cmds: List[str]) -> None: log.warning("Aliases file not found, copying example_aliases.json") else: raise HelpfulError( - "Your aliases files are missing. Neither aliases.json nor example_aliases.json were found.", - "Grab the files back from the archive or remake them yourself and copy paste the content " - "from the repo. Stop removing important files!", + # fmt: off + "Error while loading aliases.\n" + "\n" + "Problem:\n" + " Your aliases files (aliases.json & example_aliases.json) are missing.\n" + "\n" + "Solution:\n" + " Replace the alias config file(s) or copy them from:\n" + " https://github.com/Just-Some-Bots/MusicBot/", + # fmt: on ) # parse json @@ -100,18 +111,16 @@ def load(self) -> None: # ensure command name is valid. if cmd not in self.nat_cmds: log.error( - "Aliases skipped for non-existent command: %s -> %s", - cmd, - aliases, + "Aliases skipped for non-existent command: %(command)s -> %(aliases)s", + {"command": cmd, "aliases": aliases}, ) continue # ensure alias data uses valid types. if not isinstance(cmd, str) or not isinstance(aliases, list): log.error( - "Alias(es) skipped for invalid alias data: %s -> %s", - cmd, - aliases, + "Alias(es) skipped for invalid alias data: %(command)s -> %(aliases)s", + {"command": cmd, "aliases": aliases}, ) continue @@ -120,17 +129,30 @@ def load(self) -> None: alias = alias.lower() if alias in self.aliases: log.error( - "Alias `%s` skipped as already exists on command: %s", - alias, - self.aliases[alias], + "Alias `%(alias)s` skipped as already exists on command: %(command)s", + {"alias": alias, "command": self.aliases[alias]}, ) continue self.aliases.update({alias: (cmd, cmd_args)}) + self.cmd_aliases[cmd].append((alias, cmd_args)) + + def save(self) -> None: + """ + Save the aliases in memory to the disk. + + :raises: OSError if open for write fails. + :raises: RuntimeError if something fails to encode. + """ + try: + with self.aliases_file.open(mode="w") as f: + json.dump(self.aliases_seed, f) + except (ValueError, TypeError, RecursionError) as e: + raise RuntimeError("JSON could not be saved.") from e - def get(self, alias_name: str) -> Tuple[str, str]: + def from_alias(self, alias_name: str) -> Tuple[str, str]: """ - Get the command name the given `aliase_name` refers to. + Get the command name the given `alias_name` refers to. Returns a two-member tuple containing the command name and any args for the command alias in the case of complex aliases. """ @@ -142,8 +164,51 @@ def get(self, alias_name: str) -> Tuple[str, str]: return (cmd_name, cmd_args) + def for_command(self, cmd_name: str) -> List[Tuple[str, str]]: + """ + Get the aliases registered for a given command. + Returns a list of two-member tuples containing the alias name, and any arguments. + """ + if cmd_name in self.cmd_aliases: + return self.cmd_aliases[cmd_name] + return [] + + def exists(self, alias_name: str) -> bool: + """Test if the given alias exists.""" + if alias_name in ["--comment", "--comments"]: + return False + return alias_name in self.aliases + + def make_alias(self, alias_name: str, cmd_name: str, cmd_args: str = "") -> None: + """ + Add or update an alias with the given command and args. + """ + ct = (cmd_name, cmd_args) + self.aliases[alias_name] = ct + self.aliases_seed[alias_name] = " ".join(list(ct)).strip() + self.cmd_aliases[cmd_name].append((alias_name, cmd_args)) + + def remove_alias(self, alias_name: str) -> None: + """ + Remove an alias if it exists. Not saved to disk. + """ + if alias_name not in self.aliases: + return + + # remove from command reverse lookup. + cmd, args = self.aliases[alias_name] + cmd_alias = (alias_name, args) + if cmd in self.cmd_aliases: + if cmd_alias in self.cmd_aliases[cmd]: + self.cmd_aliases[cmd].remove(cmd_alias) + + # remove from alias seed data. + if alias_name in self.aliases_seed: + del self.aliases_seed[alias_name] + del self.aliases[alias_name] + class AliasesDefault: aliases_file: Path = Path(DEFAULT_COMMAND_ALIAS_FILE) aliases_seed: RawAliasJSON = {} - complex_aliases: ComplexAliases = {} + complex_aliases: AliasesDict = {} diff --git a/musicbot/autoplaylist.py b/musicbot/autoplaylist.py index e5d95c686..30e918749 100644 --- a/musicbot/autoplaylist.py +++ b/musicbot/autoplaylist.py @@ -13,6 +13,7 @@ OLD_BUNDLED_AUTOPLAYLIST_FILE, OLD_DEFAULT_AUTOPLAYLIST_FILE, ) +from .exceptions import MusicbotException if TYPE_CHECKING: from .bot import MusicBot @@ -28,7 +29,7 @@ class AutoPlaylist(StrUserList): def __init__(self, filename: pathlib.Path, bot: "MusicBot") -> None: super().__init__() - self._bot: "MusicBot" = bot + self._bot: MusicBot = bot self._file: pathlib.Path = filename self._removed_file = filename.with_name(f"{filename.stem}.removed.log") @@ -115,12 +116,16 @@ async def remove_track( async with self._update_lock: self.data.remove(song_subject) - log.info( - "Removing%s song from playlist, %s: %s", - " unplayable" if ex and not isinstance(ex, UserWarning) else "", - self._file.name, - song_subject, - ) + if ex and not isinstance(ex, UserWarning): + log.info( + "Removing unplayable song from playlist, %(playlist)s: %(track)s", + {"playlist": self._file.name, "track": song_subject}, + ) + else: + log.info( + "Removing song from playlist, %(playlist)s: %(track)s", + {"playlist": self._file.name, "track": song_subject}, + ) if not self._removed_file.is_file(): self._removed_file.touch(exist_ok=True) @@ -128,8 +133,12 @@ async def remove_track( try: with open(self._removed_file, "a", encoding="utf8") as f: ctime = time.ctime() + if isinstance(ex, MusicbotException): + error = ex.message % ex.fmt_args + else: + error = str(ex) # add 10 spaces to line up with # Reason: - e_str = str(ex).replace("\n", "\n#" + " " * 10) + e_str = error.replace("\n", "\n#" + " " * 10) sep = "#" * 32 f.write( f"# Entry removed {ctime}\n" @@ -175,9 +184,8 @@ async def add_track(self, song_subject: str) -> None: # Note, this does not update the player's copy of the list. self.data.append(song_subject) log.info( - "Adding new URL to playlist, %s: %s", - self._file.name, - song_subject, + "Adding new URL to playlist, %(playlist)s: %(track)s", + {"playlist": self._file.name, "track": song_subject}, ) try: @@ -207,7 +215,7 @@ def __init__(self, bot: "MusicBot") -> None: """ Initialize the manager, checking the file system for usable playlists. """ - self._bot: "MusicBot" = bot + self._bot: MusicBot = bot self._apl_dir: pathlib.Path = bot.config.auto_playlist_dir self._apl_file_default = self._apl_dir.joinpath(APL_FILE_DEFAULT) self._apl_file_history = self._apl_dir.joinpath(APL_FILE_HISTORY) diff --git a/musicbot/bot.py b/musicbot/bot.py index 0d885a88e..deed59364 100644 --- a/musicbot/bot.py +++ b/musicbot/bot.py @@ -14,9 +14,9 @@ import sys import time import traceback +import uuid from collections import defaultdict from io import BytesIO, StringIO -from textwrap import dedent from typing import TYPE_CHECKING, Any, DefaultDict, Dict, List, Optional, Set, Union import aiohttp @@ -45,17 +45,23 @@ EMOJI_IDLE_ICON, EMOJI_NEXT_ICON, EMOJI_PREV_ICON, + EMOJI_RESTART_FULL, + EMOJI_RESTART_SOFT, EMOJI_STOP_SIGN, + EMOJI_UPDATE_ALL, + EMOJI_UPDATE_GIT, + EMOJI_UPDATE_PIP, FALLBACK_PING_SLEEP, FALLBACK_PING_TIMEOUT, MUSICBOT_USER_AGENT_AIOHTTP, ) from .constants import VERSION as BOTVERSION from .constants import VOICE_CLIENT_MAX_RETRY_CONNECT, VOICE_CLIENT_RECONNECT_TIMEOUT -from .constructs import GuildSpecificData, Response +from .constructs import ErrorResponse, GuildSpecificData, MusicBotResponse, Response from .entry import LocalFilePlaylistEntry, StreamPlaylistEntry, URLPlaylistEntry from .filecache import AudioFileCache -from .json import Json +from .i18n import _D, _L, _Dd +from .logs import muffle_discord_console_log, mute_discord_console_log from .opus_loader import load_opus_lib from .permissions import PermissionGroup, Permissions, PermissionsDefaults from .player import MusicPlayer @@ -63,14 +69,13 @@ from .spotify import Spotify from .utils import ( _func_, + command_helper, count_members_in_voice, dev_only, format_size_from_bytes, format_song_duration, format_time_to_seconds, is_empty_voice_channel, - muffle_discord_console_log, - mute_discord_console_log, owner_only, slugify, ) @@ -119,11 +124,30 @@ ] UserMentions = List[Union[discord.Member, discord.User]] EntryTypes = Union[URLPlaylistEntry, StreamPlaylistEntry, LocalFilePlaylistEntry] -CommandResponse = Union[Response, None] - +CommandResponse = Union[None, MusicBotResponse, Response, ErrorResponse] log = logging.getLogger(__name__) +# Set up discord permissions needed by the bot. Used in auth/invite links. +# We could use the bitmask to save lines, but this documents which perms are needed. +# Bitmask: 4365610048 +discord_bot_perms = discord.Permissions() +discord_bot_perms.change_nickname = True +discord_bot_perms.view_channel = True +discord_bot_perms.send_messages = True +discord_bot_perms.manage_messages = True +discord_bot_perms.embed_links = True +discord_bot_perms.attach_files = True +discord_bot_perms.read_message_history = True +discord_bot_perms.use_external_emojis = True +discord_bot_perms.add_reactions = True +discord_bot_perms.connect = True +discord_bot_perms.speak = True +discord_bot_perms.request_to_speak = True + + +# TODO: autoplaylist remove all. + class MusicBot(discord.Client): def __init__( @@ -169,7 +193,6 @@ def __init__( self.permissions = Permissions(self._perms_file) # Set the owner ID in case it wasn't auto... self.permissions.set_owner_id(self.config.owner_id) - self.str = Json(self.config.i18n_file) if self.config.usealias: # get a list of natural command names. @@ -234,9 +257,8 @@ def discard_task(task: AsyncTask) -> None: ) else: log.error( - "Unhandled exception for task: %r -- %s", - task, - str(ex), + "Unhandled exception for task: %(task)r -- %(raw_error)s", + {"task": task, "raw_error": str(ex)}, ) self.task_pool.discard(task) @@ -289,7 +311,7 @@ async def setup_hook(self) -> None: except exceptions.SpotifyError as e: log.warning( "Could not start Spotify client. Is your client ID and secret correct? Details: %s. Continuing anyway in 5 seconds...", - e, + e.message % e.fmt_args, ) self.config.spotify_enabled = False time.sleep(5) # make sure they see the problem @@ -311,7 +333,8 @@ async def setup_hook(self) -> None: self.config.spotify_enabled = True except exceptions.SpotifyError as e: log.warning( - "Could not start Spotify client using guest mode. Details: %s.", e + "Could not start Spotify client using guest mode. Details: %s.", + e.message % e.fmt_args, ) self.config.spotify_enabled = False @@ -489,7 +512,10 @@ def on_network_up(self) -> None: "VoiceClient is not connected, waiting to resume MusicPlayer..." ) continue - log.info("Resuming playback of player: (%s) %s", gid, repr(player)) + log.info( + "Resuming playback of player: (%(guild_id)s) %(player)r", + {"guild_id": gid, "player": player}, + ) player.guild_or_net_unavailable = False player.resume() player.guild_or_net_unavailable = False @@ -502,9 +528,8 @@ def on_network_down(self) -> None: for gid, player in self.players.items(): if player.is_playing: log.info( - "Pausing MusicPlayer due to network availability: (%s) %s", - gid, - repr(player), + "Pausing MusicPlayer due to network availability: (%(guild_id)s) %(player)r", + {"guild_id": gid, "player": player}, ) player.pause() player.guild_or_net_unavailable = True @@ -524,10 +549,8 @@ def _get_owner_member( server.members if server else self.get_all_members(), ) log.noise( # type: ignore[attr-defined] - "Looking for owner (in guild: %s) (required voice: %s) and got: %s", - server, - voice, - owner, + "Looking for owner in guild: %(guild)s (required voice: %(required)s) and got: %(owner)s", + {"guild": server, "required": voice, "owner": owner}, ) return owner @@ -552,18 +575,19 @@ async def _auto_join_channels( if guild.unavailable: log.warning( - "Guild not available, cannot auto join: %s/%s", - guild.id, - guild.name, + "Guild not available, cannot auto join: %(id)s/%(name)s", + {"id": guild.id, "name": guild.name}, ) continue # Check for a resumable channel. if guild.me.voice and guild.me.voice.channel: log.info( - "Found resumable voice channel: %s in guild: %s", - guild.me.voice.channel.name, - guild.name, + "Found resumable voice channel: %(channel)s in guild: %(guild)s", + { + "channel": guild.me.voice.channel.name, + "guild": guild.name, + }, ) # override an existing auto-join if bot was previously in a different channel. @@ -611,9 +635,8 @@ async def _auto_join_channels( and guild.voice_client.is_connected() ): log.info( - "Already connected to channel: %s in guild: %s", - guild.voice_client.channel.name, - guild.name, + "Already connected to channel: %(channel)s in guild: %(guild)s", + {"channel": guild.voice_client.channel.name, "guild": guild.name}, ) continue @@ -621,10 +644,8 @@ async def _auto_join_channels( channel, (discord.VoiceChannel, discord.StageChannel) ): log.info( - "Attempting to join channel: %s/%s in guild: %s", - channel.guild.name, - channel.name, - channel.guild, + "Attempting to join channel: %(channel)s in guild: %(guild)s", + {"channel": channel.name, "guild": channel.guild}, ) player = self.get_player_in(guild) @@ -671,34 +692,11 @@ async def _auto_join_channels( channel, (discord.VoiceChannel, discord.StageChannel) ): log.warning( - "Not joining %s/%s, it isn't a supported voice channel.", - channel.guild.name, - channel.name, + "Not joining %(guild)s/%(channel)s, it isn't a supported voice channel.", + {"guild": channel.guild.name, "channel": channel.name}, ) log.info("Finished joining configured channels.") - async def _wait_delete_msg( - self, message: discord.Message, after: Union[int, float] - ) -> None: - """ - Uses asyncio.sleep to delay a call to safe_delete_message but - does not check if the bot can delete a message or if it has - already been deleted before trying to delete it anyway. - """ - try: - await asyncio.sleep(after) - except asyncio.CancelledError: - log.warning( - "Cancelled delete for message (ID: %s): %s", - message.id, - message.content, - ) - return - - if not self.is_closed(): - - await self.safe_delete_message(message, quiet=True) - async def _check_ignore_non_voice(self, msg: discord.Message) -> bool: """Check used by on_message to determine if caller is in a VoiceChannel.""" if msg.guild and msg.guild.me.voice: @@ -710,7 +708,6 @@ async def _check_ignore_non_voice(self, msg: discord.Message) -> bool: if isinstance(msg.author, discord.User): raise exceptions.CommandError( "Member is not voice-enabled and cannot use this command.", - expire_in=30, ) # If we've connected to a voice chat and we're in the same voice channel @@ -718,14 +715,13 @@ async def _check_ignore_non_voice(self, msg: discord.Message) -> bool: return True raise exceptions.PermissionsError( - f"you cannot use this command when not in the voice channel ({vc.name})", - expire_in=30, + "You cannot use this command when not in the voice channel.", ) async def generate_invite_link( self, *, - permissions: discord.Permissions = discord.Permissions(70380544), + permissions: discord.Permissions = discord_bot_perms, guild: discord.Guild = discord.utils.MISSING, ) -> str: """ @@ -752,7 +748,7 @@ async def get_voice_client(self, channel: VoiceableChannel) -> discord.VoiceClie If MusicBot does not have permissions required to join or speak in the `channel`. """ if not isinstance(channel, (discord.VoiceChannel, discord.StageChannel)): - raise TypeError("Channel passed must be a voice channel") + raise TypeError("[BUG] Channel passed must be a voice channel") # Check if MusicBot has required permissions to join in channel. chperms = channel.permissions_for(channel.guild.me) @@ -762,8 +758,8 @@ async def get_voice_client(self, channel: VoiceableChannel) -> discord.VoiceClie channel.name, ) raise exceptions.PermissionsError( - f"MusicBot does not have permission to Connect in channel: `{channel.name}`", - expire_in=30, + "MusicBot does not have permission to Connect in channel: `%(name)s`", + fmt_args={"name": channel.name}, ) if not chperms.speak: log.error( @@ -771,8 +767,8 @@ async def get_voice_client(self, channel: VoiceableChannel) -> discord.VoiceClie channel.name, ) raise exceptions.PermissionsError( - f"MusicBot does not have permission to Speak in channel: `{channel.name}`", - expire_in=30, + "MusicBot does not have permission to Speak in channel: `%(name)s`", + fmt_args={"name": channel.name}, ) # check for and return bots VoiceClient if we already have one. @@ -800,11 +796,12 @@ async def get_voice_client(self, channel: VoiceableChannel) -> discord.VoiceClie timeout = attempt * VOICE_CLIENT_RECONNECT_TIMEOUT if timeout > max_timeout: log.critical( - "MusicBot is unable to connect to the channel right now: %s", - channel, + "MusicBot is unable to connect to the channel right now: %(channel)s", + {"channel": channel}, ) raise exceptions.CommandError( - "MusicBot could not connect to the channel. Try again later, or restart the bot if this continues." + "MusicBot could not connect to the channel.\n" + "Try again later, or restart the bot if this continues." ) try: @@ -819,9 +816,8 @@ async def get_voice_client(self, channel: VoiceableChannel) -> discord.VoiceClie break except asyncio.exceptions.TimeoutError: log.warning( - "Retrying connection after a timeout error (%s) while trying to connect to: %s", - attempt, - channel, + "Retrying connection after a timeout error (%(attempt)s) while trying to connect to: %(channel)s", + {"attempt": attempt, "channel": channel}, ) except asyncio.exceptions.CancelledError as e: log.exception( @@ -831,10 +827,19 @@ async def get_voice_client(self, channel: VoiceableChannel) -> discord.VoiceClie "MusicBot connection to voice was cancelled. This is odd. Maybe restart?" ) from e - # Moving the bot does not grant it permissions to speak automatically, - # however stage mods can invite it to speak + # request speaker automatically in stage channels. if isinstance(channel, discord.StageChannel): - await self._handle_stage_channels(channel) + try: + # this has the same effect as edit(suppress=False) + await channel.guild.me.request_to_speak() + except discord.Forbidden as e: + raise exceptions.PermissionsError( + "MusicBot does not have permission to speak." + ) from e + except (discord.HTTPException, discord.ClientException) as e: + raise exceptions.MusicbotException( + "MusicBot could not request to speak." + ) from e return client @@ -933,9 +938,8 @@ async def disconnect_all_voice_clients(self) -> None: for gid in player_gids: player = self.players[gid] log.warning( - "We still have a MusicPlayer ref in guild (%s): %s", - gid, - repr(player), + "We still have a MusicPlayer ref in guild (%(guild_id)s): %(player)r", + {"guild_id": gid, "player": player}, ) del self.players[gid] @@ -947,13 +951,14 @@ def get_player_in(self, guild: discord.Guild) -> Optional[MusicPlayer]: p = self.players.get(guild.id) if log.getEffectiveLevel() <= logging.EVERYTHING: # type: ignore[attr-defined] log.voicedebug( # type: ignore[attr-defined] - "Guild (%s) wants a player, optional: %s", guild, repr(p) + "Guild (%(guild)s) wants a player, optional: %(player)r", + {"guild": guild, "player": p}, ) if log.getEffectiveLevel() <= logging.VOICEDEBUG: # type: ignore[attr-defined] if p and not p.voice_client: log.error( - "[BUG] MusicPlayer is missing a VoiceClient some how. You should probably restart the bot." + "[BUG] MusicPlayer is missing a VoiceClient somehow. You should probably restart the bot." ) if p and p.voice_client and not p.voice_client.is_connected(): # This is normal if the bot is still connecting to voice, or @@ -967,7 +972,6 @@ async def get_player( self, channel: VoiceableChannel, create: bool = False, - *, deserialize: bool = False, ) -> MusicPlayer: """ @@ -981,11 +985,13 @@ async def get_player( guild = channel.guild log.voicedebug( # type: ignore[attr-defined] - "Getting a MusicPlayer for guild: %s In Channel: %s Will Create: %s Deserialize: %s", - guild, - channel, - create, - deserialize, + "Getting a MusicPlayer for guild: %(guild)s In Channel: %(channel)s Create: %(create)s Deserialize: %(serial)s", + { + "guild": guild, + "channel": channel, + "create": create, + "serial": deserialize, + }, ) async with self.aiolocks[_func_() + ":" + str(guild.id)]: @@ -995,19 +1001,17 @@ async def get_player( if player: log.voicedebug( # type: ignore[attr-defined] - "Created player via deserialization for guild %s with %s entries", - guild.id, - len(player.playlist), + "Created player via deserialization for guild %(guild_id)s with %(number)s entries", + {"guild_id": guild.id, "number": len(player.playlist)}, ) # Since deserializing only happens when the bot starts, I should never need to reconnect return self._init_player(player, guild=guild) if guild.id not in self.players: if not create: - prefix = self.server_data[channel.guild.id].command_prefix raise exceptions.CommandError( - "The bot is not in a voice channel. " - f"Use {prefix}summon to summon it to your voice channel." + "The bot is not in a voice channel.\n" + "Use the summon command to bring the bot to your voice channel." ) voice_client = await self.get_voice_client(channel) @@ -1017,7 +1021,7 @@ async def get_player( player = MusicPlayer(self, voice_client, playlist) self._init_player(player, guild=guild) else: - raise RuntimeError( + raise exceptions.MusicbotException( "Something is wrong, we didn't get the VoiceClient." ) @@ -1052,6 +1056,7 @@ async def on_player_play(self, player: MusicPlayer, entry: EntryTypes) -> None: Event called by MusicPlayer when playback of an entry is started. """ log.debug("Running on_player_play") + ssd_ = self.server_data[player.voice_client.channel.guild.id] await self._handle_guild_auto_pause(player) await self.reset_player_inactivity(player) await self.update_now_playing_status() @@ -1072,14 +1077,13 @@ async def on_player_play(self, player: MusicPlayer, entry: EntryTypes) -> None: entry.author not in player.voice_client.channel.members and author_perms.skip_when_absent ): - newmsg = self.str.get( - "on_player_play-onChannel_authorNotInChannel_skipWhenAbsent", - "Skipping next song in {channel}: {title} added by {author} as queuer not in voice!", - ).format( - channel=player.voice_client.channel.name, - title=entry.title, - author=entry.author.name, - ) + newmsg = _D( + "Skipping next song `%(title)s` as requester `%(user)s` is not in voice!", + ssd_, + ) % { + "title": entry.title, + "author": entry.author.name, + } # handle history playlist updates. guild = player.voice_client.guild @@ -1091,30 +1095,33 @@ async def on_player_play(self, player: MusicPlayer, entry: EntryTypes) -> None: player.skip() elif self.config.now_playing_mentions: - newmsg = self.str.get( - "on_player_play-onChannel_playingMention", - "{author} - your song {title} is now playing in {channel}!", - ).format( - author=entry.author.mention, - title=entry.title, - channel=player.voice_client.channel.name, - ) + newmsg = _D( + "%(mention)s - your song `%(title)s` is now playing in %(channel)s!", + ssd_, + ) % { + "mention": entry.author.mention, + "title": entry.title, + "channel": player.voice_client.channel.name, + } else: - newmsg = self.str.get( - "on_player_play-onChannel", - "Now playing in {channel}: {title} added by {author}!", - ).format( - channel=player.voice_client.channel.name, - title=entry.title, - author=entry.author.name, - ) + newmsg = _D( + "Now playing in %(channel)s: `%(title)s` added by %(author)s!", + ssd_, + ) % { + "channel": player.voice_client.channel.name, + "title": entry.title, + "author": entry.author.name, + } else: # no author (and channel), it's an auto playlist entry. - newmsg = self.str.get( - "on_player_play-onChannel_noAuthor_autoplaylist", - "Now playing automatically added entry {title} in {channel}!", - ).format(title=entry.title, channel=player.voice_client.channel.name) + newmsg = _D( + "Now playing automatically added entry `%(title)s` in %(channel)s!", + ssd_, + ) % { + "title": entry.title, + "channel": player.voice_client.channel.name, + } # handle history playlist updates. guild = player.voice_client.guild @@ -1122,14 +1129,17 @@ async def on_player_play(self, player: MusicPlayer, entry: EntryTypes) -> None: self.config.enable_queue_history_global or self.config.enable_queue_history_guilds ) and not entry.from_auto_playlist: - log.debug("Setting URL history guild %s == %s", guild.id, entry.url) + log.debug( + "Setting URL history guild %(guild_id)s == %(url)s", + {"guild_id": guild.id, "url": entry.url}, + ) self.server_data[guild.id].current_playing_url = entry.url last_np_msg = self.server_data[guild.id].last_np_msg np_channel: Optional[MessageableChannel] = None if newmsg: if self.config.dm_nowplaying and entry.author: - await self.safe_send_message(entry.author, newmsg) + await self.safe_send_message(entry.author, Response(newmsg)) return if self.config.no_nowplaying_auto and entry.from_auto_playlist: @@ -1151,21 +1161,20 @@ async def on_player_play(self, player: MusicPlayer, entry: EntryTypes) -> None: if not np_channel and last_np_msg: np_channel = last_np_msg.channel - content = self._gen_embed() - if self.config.embeds: - if entry.thumbnail_url: - content.set_image(url=entry.thumbnail_url) - else: - log.warning( - "No thumbnail set for entry with url: %s", - entry.url, - ) + content = Response("") + if entry.thumbnail_url: + content.set_image(url=entry.thumbnail_url) + else: + log.warning( + "No thumbnail set for entry with URL: %s", + entry.url, + ) - if self.config.now_playing_mentions: - content.title = None - content.add_field(name="\n", value=newmsg, inline=True) - else: - content.title = newmsg + if self.config.now_playing_mentions: + content.title = None + content.add_field(name="\n", value=newmsg, inline=True) + else: + content.title = newmsg # send it in specified channel if not np_channel: @@ -1191,8 +1200,7 @@ async def on_player_play(self, player: MusicPlayer, entry: EntryTypes) -> None: self.server_data[guild.id].last_np_msg = await self.safe_send_message( np_channel, - content if self.config.embeds else newmsg, - expire_in=30 if self.config.delete_nowplaying else 0, + content, ) # TODO: Check channel voice state? @@ -1317,18 +1325,19 @@ async def on_player_finished_playing(self, player: MusicPlayer, **_: Any) -> Non and author_perms.skip_when_absent ): if not notice_sent: - await self.safe_send_message( - channel, - # TODO: i18n UI stuff. - f"Skipping songs added by {author.name} as they are not in voice!", - expire_in=60, + res = Response( + _D( + "Skipping songs added by %(user)s as they are not in voice!", + self.server_data[guild.id], + ) + % {"user": author.name}, ) + await self.safe_send_message(channel, res) notice_sent = True deleted_entry = player.playlist.delete_entry_at_index(0) log.noise( # type: ignore[attr-defined] - "Author `%s` absent, skipped (deleted) entry from queue: %s", - author.name, - deleted_entry.title, + "Author `%(user)s` absent, skipped (deleted) entry from queue: %(song)s", + {"user": author.name, "song": deleted_entry.title}, ) else: break @@ -1395,11 +1404,13 @@ async def on_player_finished_playing(self, player: MusicPlayer, **_: Any) -> Non song_url, download=False, process=True ) - except youtube_dl.utils.DownloadError as e: + except ( + youtube_dl.utils.DownloadError, + youtube_dl.utils.YoutubeDLError, + ) as e: log.error( - 'Error while processing song "%s": %s', - song_url, - e, + 'Error while processing song "%(url)s": %(raw_error)s', + {"url": song_url, "raw_error": e}, ) await self.server_data[guild.id].autoplaylist.remove_track( @@ -1407,14 +1418,13 @@ async def on_player_finished_playing(self, player: MusicPlayer, **_: Any) -> Non ) continue - except ( - exceptions.ExtractionError, - youtube_dl.utils.YoutubeDLError, - ) as e: + except exceptions.ExtractionError as e: log.error( - 'Error extracting song "%s": %s', - song_url, - e, + 'Error extracting song "%(url)s": %(raw_error)s', + { + "url": song_url, + "raw_error": _L(e.message) % e.fmt_args, + }, exc_info=True, ) @@ -1425,7 +1435,7 @@ async def on_player_finished_playing(self, player: MusicPlayer, **_: Any) -> Non except exceptions.MusicbotException: log.exception( - "MusicBot needs to stop the autoplaylist extraction and bail." + "MusicBot needs to stop the auto playlist extraction and bail." ) return except Exception: # pylint: disable=broad-exception-caught @@ -1455,12 +1465,13 @@ async def on_player_finished_playing(self, player: MusicPlayer, **_: Any) -> Non head=False, ) except ( + # TODO: find usages of these and make sure they get translated. exceptions.ExtractionError, exceptions.WrongEntryTypeError, ) as e: log.error( "Error adding song from autoplaylist: %s", - str(e), + _L(e.message) % e.fmt_args, ) log.debug("Exception data for above error:", exc_info=True) continue @@ -1531,12 +1542,20 @@ async def on_player_error( # Send a message to the calling channel if we can. if entry and entry.channel: song = entry.title or entry.url - await self.safe_send_message( - entry.channel, - # TODO: i18n / UI stuff - f"Playback failed for song: `{song}` due to error:\n```\n{ex}\n```", - expire_in=90, + ssd = self.server_data[player.voice_client.guild.id] + if isinstance(ex, exceptions.MusicbotException): + error = _D(ex.message, ssd) % ex.fmt_args + else: + error = str(ex) + res = ErrorResponse( + _D( + "Playback failed for song `%(song)s` due to an error:\n```\n%(error)s```", + ssd, + ) + % {"song": song, "error": error}, + delete_after=self.config.delete_delay_long, ) + await self.safe_send_message(entry.channel, res) # Take care of auto-playlist related issues. if entry and entry.from_auto_playlist: @@ -1680,7 +1699,8 @@ def format_status_msg(player: Optional[MusicPlayer]) -> str: async with self.aiolocks[_func_()]: if activity != self.last_status: log.noise( # type: ignore[attr-defined] - f"Update Bot Status: {status} -- {repr(activity)}" + "Update bot status: %(status)s -- %(activity)r", + {"status": status, "activity": activity}, ) await self.change_presence(status=status, activity=activity) self.last_status = activity @@ -1761,8 +1781,7 @@ async def write_current_song(self, guild: discord.Guild, entry: EntryTypes) -> N async def safe_send_message( self, dest: discord.abc.Messageable, - content: Union[str, discord.Embed], - **kwargs: Any, + content: MusicBotResponse, ) -> Optional[discord.Message]: """ Safely send a message with given `content` to the message-able @@ -1770,56 +1789,82 @@ async def safe_send_message( This method should handle all raised exceptions so callers will not need to handle them locally. - :param: tts: set the Text-to-Speech flag on the message. - :param: quiet: Toggle using log.debug or log.warning. - :param: expire_in: time in seconds to wait before auto deleting this message - :param: allow_none: Allow sending a message with empty `content` - :param: also_delete: Optional discord.Message to delete when `expire_in` is set. + :param: dest: A channel, user, or other discord.abc.Messageable object. + :param: content: A MusicBotMessage such as Response or ErrorResponse. :returns: May return a discord.Message object if a message was sent. """ - tts = kwargs.pop("tts", False) - quiet = kwargs.pop("quiet", False) - expire_in = int(kwargs.pop("expire_in", 0)) - allow_none = kwargs.pop("allow_none", True) - also_delete = kwargs.pop("also_delete", None) - fallback_channel = kwargs.pop("fallback_channel", None) + if not isinstance(content, MusicBotResponse): + log.error( + "Cannot send non-response object: %r", + content, + exc_info=self.config.debug_mode, + ) + raise exceptions.MusicbotException( + "[Dev Bug] Tried sending an invalid response object." + ) + + fallback_channel = content.sent_from + delete_after = content.delete_after + reply_to = content.reply_to + + # set the default delete delay to configured short delay. + if delete_after is None: + delete_after = self.config.delete_delay_short msg = None retry_after = 0.0 - lfunc = log.debug if quiet else log.warning - if log.getEffectiveLevel() <= logging.NOISY: # type: ignore[attr-defined] - lfunc = log.exception + send_kws: Dict[str, Any] = {} ch_name = "DM-Channel" if hasattr(dest, "name"): ch_name = str(dest.name) + if reply_to and reply_to.channel == dest: + send_kws["reference"] = reply_to.to_reference(fail_if_not_exists=False) + send_kws["mention_author"] = True + + if content.files: + send_kws["files"] = content.files + try: - if content is not None or allow_none: - if isinstance(content, discord.Embed): - msg = await dest.send(embed=content) - else: - msg = await dest.send(content, tts=tts) + if self.config.embeds and not content.force_text: + log.debug("sending embed to: %s", dest) + msg = await dest.send(embed=content, **send_kws) + else: + log.debug("sending text to: %s", dest) + msg = await dest.send(content.to_markdown(), **send_kws) except discord.Forbidden: - lfunc('Cannot send message to "%s", no permission', ch_name) + log.error( + 'Cannot send message to "%s", no permission', + ch_name, + exc_info=self.config.debug_mode, + ) except discord.NotFound: - lfunc('Cannot send message to "%s", invalid channel?', ch_name) + log.error( + 'Cannot send message to "%s", invalid or deleted channel', + ch_name, + exc_info=self.config.debug_mode, + ) except discord.HTTPException as e: if len(content) > DISCORD_MSG_CHAR_LIMIT: - lfunc( + log.error( "Message is over the message size limit (%s)", DISCORD_MSG_CHAR_LIMIT, + exc_info=self.config.debug_mode, ) # if `dest` is a user with strict privacy or a bot, direct message can fail. elif e.code == 50007 and fallback_channel: - log.debug("DM failed, sending in fallback channel instead.") - await self.safe_send_message(fallback_channel, content, **kwargs) + log.debug( + "Could not send private message, sending in fallback channel instead." + ) + await self.safe_send_message(fallback_channel, content) + # If we got rate-limited, retry using the retry-after api header. elif e.status == 429: # Note: `e.response` could be either type: aiohttp.ClientResponse OR requests.Response # thankfully both share a similar enough `response.headers` member CI Dict. @@ -1841,32 +1886,31 @@ async def safe_send_message( except asyncio.CancelledError: log.warning("Cancelled message retry for: %s", content) return msg - return await self.safe_send_message(dest, content, **kwargs) + return await self.safe_send_message(dest, content) - log.error("Rate limited send message, but cannot retry!") + log.error( + "Rate limited send message, but cannot retry!", + exc_info=self.config.debug_mode, + ) else: - lfunc("Failed to send message") - log.noise( # type: ignore[attr-defined] - "Got HTTPException trying to send message to %s: %s", dest, content + log.error( + "Failed to send message in fallback channel.", + exc_info=self.config.debug_mode, ) except aiohttp.client_exceptions.ClientError: - lfunc("Failed to send due to an HTTP error.") + log.error("Failed to send due to an HTTP error.") finally: - if not retry_after and self.config.delete_messages: - if msg and expire_in: - self.create_task(self._wait_delete_msg(msg, expire_in)) - - if not retry_after and self.config.delete_invoking: - if also_delete and isinstance(also_delete, discord.Message): - self.create_task(self._wait_delete_msg(also_delete, expire_in)) + if not retry_after and self.config.delete_messages and msg and delete_after: + self.create_task(self._wait_delete_msg(msg, delete_after)) return msg async def safe_delete_message( - self, message: discord.Message, *, quiet: bool = False + self, + message: discord.Message, ) -> None: """ Safely delete the given `message` from discord. @@ -1876,16 +1920,17 @@ async def safe_delete_message( :param: quiet: Toggle using log.debug or log.warning """ # TODO: this could use a queue and some other handling. - lfunc = log.debug if quiet else log.warning try: await message.delete() except discord.Forbidden: - lfunc('Cannot delete message "%s", no permission', message.clean_content) + log.warning( + 'Cannot delete message "%s", no permission', message.clean_content + ) except discord.NotFound: - lfunc( + log.warning( 'Cannot delete message "%s", message not found', message.clean_content, ) @@ -1912,23 +1957,24 @@ async def safe_delete_message( log.error("Rate limited message delete, but cannot retry!") else: - lfunc("Failed to delete message") + log.warning("Failed to delete message") log.noise( # type: ignore[attr-defined] "Got HTTPException trying to delete message: %s", message ) except aiohttp.client_exceptions.ClientError: - lfunc("Failed to send due to an HTTP error.") + log.error( + "Failed to send due to an HTTP error.", exc_info=self.config.debug_mode + ) return None async def safe_edit_message( self, message: discord.Message, - new: Union[str, discord.Embed], + new: MusicBotResponse, *, send_if_fail: bool = False, - quiet: bool = False, ) -> Optional[discord.Message]: """ Safely update the given `message` with the `new` content. @@ -1940,8 +1986,6 @@ async def safe_edit_message( :returns: May return a discord.Message object if edit/send did not fail. """ - lfunc = log.debug if quiet else log.warning - try: if isinstance(new, discord.Embed): return await message.edit(embed=new) @@ -1949,12 +1993,12 @@ async def safe_edit_message( return await message.edit(content=new) except discord.NotFound: - lfunc( + log.warning( 'Cannot edit message "%s", message not found', message.clean_content, ) if send_if_fail: - lfunc("Sending message instead") + log.warning("Sending message instead") return await self.safe_send_message(message.channel, new) except discord.HTTPException as e: @@ -1980,19 +2024,41 @@ async def safe_edit_message( log.warning("Cancelled message edit for: %s", message) return None return await self.safe_edit_message( - message, new, send_if_fail=send_if_fail, quiet=quiet + message, new, send_if_fail=send_if_fail ) else: - lfunc("Failed to edit message") + log.warning("Failed to edit message") log.noise( # type: ignore[attr-defined] "Got HTTPException trying to edit message %s to: %s", message, new ) except aiohttp.client_exceptions.ClientError: - lfunc("Failed to send due to an HTTP error.") + log.error( + "Failed to send due to an HTTP error.", exc_info=self.config.debug_mode + ) return None + async def _wait_delete_msg( + self, message: discord.Message, after: Union[int, float] + ) -> None: + """ + Uses asyncio.sleep to delay a call to safe_delete_message but + does not check if the bot can delete a message or if it has + already been deleted before trying to delete it anyway. + """ + try: + await asyncio.sleep(after) + except asyncio.CancelledError: + log.warning( + "Cancelled delete for message (ID: %(id)s): %(content)s", + {"id": message.id, "content": message.content}, + ) + return + + if not self.is_closed(): + await self.safe_delete_message(message) + def _setup_windows_signal_handler(self) -> None: """ Windows needs special handling for Ctrl+C signals to play nice with asyncio @@ -2074,11 +2140,17 @@ async def run_musicbot(self) -> None: except discord.errors.LoginFailure as e: raise exceptions.HelpfulError( - preface="Failed login to discord API!", - issue="MusicBot cannot login to discord, is your token correct?", - solution="Fix your token in the options.ini config file.\n" - "Remember that each field should be on their own line.", - footnote="Note: If you are certain your token is correct, this may be due to a Discord API outage.", + # fmt: off + "Failed Discord API Login!\n" + "\n" + "Problem:\n" + " MusicBot could not log into Discord API.\n" + " Your Token may be incorrect or there may be an API outage.\n" + "\n" + "Solution:\n" + " Make sure you have the correct Token set in your config.\n" + " Check API status at the official site: discordstatus.com" + # fmt: on ) from e finally: @@ -2108,11 +2180,17 @@ async def run_musicbot(self) -> None: if tname.startswith("Signal_SIG") or coro_name.startswith( "Client.close." ): - log.debug("Will wait for task: %s (%s)", tname, coro_name) + log.debug( + "Will wait for task: %(name)s (%(func)s)", + {"name": tname, "func": coro_name}, + ) pending_tasks.append(task) else: - log.debug("Will try to cancel task: %s (%s)", tname, coro_name) + log.debug( + "Will try to cancel task: %(name)s (%(func)s)", + {"name": tname, "func": coro_name}, + ) task.cancel() pending_tasks.append(task) @@ -2153,7 +2231,13 @@ async def on_error(self, event: str, /, *_args: Any, **_kwargs: Any) -> None: _ex_type, ex, _stack = sys.exc_info() if isinstance(ex, exceptions.HelpfulError): - log.error("Exception in %s:\n%s", event, ex.message) + log.error( + "Exception in %(event)s:\n%(error)s", + { + "event": event, + "error": _L(ex.message) % ex.fmt_args, + }, + ) await asyncio.sleep(2) # makes extra sure this gets seen(?) @@ -2207,19 +2291,23 @@ async def _on_ready_once(self) -> None: await self._on_ready_sanity_checks() log.info( - "MusicBot: %s/%s#%s", - self.user.id, - self.user.name, - self.user.discriminator, + "MusicBot: %(id)s/%(name)s#%(desc)s", + { + "id": self.user.id, + "name": self.user.name, + "desc": self.user.discriminator, + }, ) owner = self._get_owner_member() if owner and self.guilds: log.info( - "Owner: %s/%s#%s\n", - owner.id, - owner.name, - owner.discriminator, + "Owner: %(id)s/%(name)s#%(desc)s\n", + { + "id": owner.id, + "name": owner.name, + "desc": owner.discriminator, + }, ) log.info("Guild List:") @@ -2282,7 +2370,7 @@ async def _on_ready_once(self) -> None: if not isinstance(ch, discord.abc.Messageable): log.warning( - "Cannot bind to non-messagable channel with ID: %d", + "Cannot bind to non Messageable channel with ID: %d", ch_id, ) invalid_ids.add(ch_id) @@ -2309,7 +2397,10 @@ async def _on_ready_once(self) -> None: ch_name = valid_ch.name or f"Unnamed Channel: {valid_ch.id}" if valid_ch.guild: guild_name = valid_ch.guild.name - log.info(" - %s/%s", guild_name, ch_name) + log.info( + " - %(guild)s/%(channel)s", + {"guild": guild_name, "channel": ch_name}, + ) else: log.info("Not bound to any text channels") else: @@ -2324,13 +2415,13 @@ async def _on_ready_once(self) -> None: for ch_id in self.config.autojoin_channels: ch = self.get_channel(ch_id) if not ch: - log.warning("Got None for autojoin channel with ID: %d", ch_id) + log.warning("Got None for auto join channel with ID: %d", ch_id) invalids.add(ch_id) continue if isinstance(ch, discord.abc.PrivateChannel): log.warning( - "Cannot autojoin a Private/Non-Guild channel with ID: %d", + "Cannot auto join a Private/Non-Guild channel with ID: %d", ch_id, ) invalids.add(ch_id) @@ -2338,7 +2429,7 @@ async def _on_ready_once(self) -> None: if not isinstance(ch, (discord.VoiceChannel, discord.StageChannel)): log.warning( - "Cannot autojoin to non-connectable channel with ID: %d", + "Cannot auto join to non-connectable channel with ID: %d", ch_id, ) invalids.add(ch_id) @@ -2354,15 +2445,18 @@ async def _on_ready_once(self) -> None: # log what we're connecting to. if vc_chlist: - log.info("Autojoining voice channels:") + log.info("Auto joining voice channels:") for ch in vc_chlist: - log.info(" - %s/%s", ch.guild.name.strip(), ch.name.strip()) + log.info( + " - %(guild)s/%(channel)s", + {"guild": ch.guild.name.strip(), "channel": ch.name.strip()}, + ) else: - log.info("Not autojoining any voice channels") + log.info("Not auto joining any voice channels") else: - log.info("Not autojoining any voice channels") + log.info("Not auto joining any voice channels") # Display and log the config settings. if self.config.show_config_at_start: @@ -2373,16 +2467,22 @@ async def _on_ready_once(self) -> None: missing_list = "\n".join( sorted(str(o) for o in self.config.register.ini_missing_options) ) - conf_warn = exceptions.HelpfulError( - preface="Detected missing config options!", - issue=( - "Your config file is missing some options. Defaults will be used for this session.\n" - f"Here is a list of options we think are missing:\n{missing_list}" - ), - solution="Check the example_options.ini file for newly added options and copy them to your config.", - footnote="You can also use the `config` command to set the missing options.", + log.warning( + # fmt: off + "Detected missing config options!\n" + "\n" + "Problem:\n" + " You config options file is missing some options.\n" + " Default settings will be used for these options.\n" + " Here is a list of options we didn't find:\n" + " %(missing)s\n" + "\n" + "Solution:\n" + " Copy new options from the example options file.\n" + " Or use the config command to set and save them.\n\n", + # fmt: on + {"missing": missing_list}, ) - log.warning(str(conf_warn)[1:]) # Pre-load guild specific data / options. # TODO: probably change this later for better UI/UX. @@ -2459,41 +2559,50 @@ def _on_ready_log_configs(self) -> None: No validation is done in this method, only display/logs. """ + def on_or_off(test: bool) -> str: + return [_L("Disabled"), _L("Enabled")][test] + print(flush=True) log.info("Options:") log.info(" Command prefix: %s", self.config.command_prefix) log.info(" Default volume: %d%%", int(self.config.default_volume * 100)) log.info( - " Skip threshold: %d votes or %.0f%%", - self.config.skips_required, - (self.config.skip_ratio_required * 100), + " Skip threshold: %(num)d votes or %(percent).0f%%", + { + "num": self.config.skips_required, + "percent": (self.config.skip_ratio_required * 100), + }, ) log.info( " Now Playing @mentions: %s", - ["Disabled", "Enabled"][self.config.now_playing_mentions], + on_or_off(self.config.now_playing_mentions), ) - log.info(" Auto-Summon: %s", ["Disabled", "Enabled"][self.config.auto_summon]) + log.info(" Auto-Summon: %s", on_or_off(self.config.auto_summon)) log.info( - " Auto-Playlist: %s (order: %s)", - ["Disabled", "Enabled"][self.config.auto_playlist], - ["sequential", "random"][self.config.auto_playlist_random], + " Auto-Playlist: %(status)s (order: %(order)s)", + { + "status": on_or_off(self.config.auto_playlist), + "order": [_L("sequential"), _L("random")][ + self.config.auto_playlist_random + ], + }, ) - log.info(" Auto-Pause: %s", ["Disabled", "Enabled"][self.config.auto_pause]) + log.info(" Auto-Pause: %s", on_or_off(self.config.auto_pause)) log.info( " Delete Messages: %s", - ["Disabled", "Enabled"][self.config.delete_messages], + on_or_off(self.config.delete_messages), ) if self.config.delete_messages: log.info( " Delete Invoking: %s", - ["Disabled", "Enabled"][self.config.delete_invoking], + on_or_off(self.config.delete_invoking), ) log.info( - " Delete Nowplaying: %s", - ["Disabled", "Enabled"][self.config.delete_nowplaying], + " Delete Now Playing: %s", + on_or_off(self.config.delete_nowplaying), ) - log.info(" Debug Mode: %s", ["Disabled", "Enabled"][self.config.debug_mode]) + log.info(" Debug Mode: %s", on_or_off(self.config.debug_mode)) log.info( " Downloaded songs will be %s", ["deleted", "saved"][self.config.save_videos], @@ -2508,25 +2617,25 @@ def _on_ready_log_configs(self) -> None: log.info(" Status message: %s", self.config.status_message) log.info( " Write current songs to file: %s", - ["Disabled", "Enabled"][self.config.write_current_song], + on_or_off(self.config.write_current_song), ) log.info( " Author insta-skip: %s", - ["Disabled", "Enabled"][self.config.allow_author_skip], + on_or_off(self.config.allow_author_skip), ) - log.info(" Embeds: %s", ["Disabled", "Enabled"][self.config.embeds]) + log.info(" Embeds: %s", on_or_off(self.config.embeds)) log.info( " Spotify integration: %s", - ["Disabled", "Enabled"][self.config.spotify_enabled], + on_or_off(self.config.spotify_enabled), ) - log.info(" Legacy skip: %s", ["Disabled", "Enabled"][self.config.legacy_skip]) + log.info(" Legacy skip: %s", on_or_off(self.config.legacy_skip)) log.info( " Leave non owners: %s", - ["Disabled", "Enabled"][self.config.leavenonowners], + on_or_off(self.config.leavenonowners), ) log.info( " Leave inactive VC: %s", - ["Disabled", "Enabled"][self.config.leave_inactive_channel], + on_or_off(self.config.leave_inactive_channel), ) if self.config.leave_inactive_channel: log.info( @@ -2535,7 +2644,7 @@ def _on_ready_log_configs(self) -> None: ) log.info( " Leave at song end/empty queue: %s", - ["Disabled", "Enabled"][self.config.leave_after_queue_empty], + on_or_off(self.config.leave_after_queue_empty), ) log.info( " Leave when player idles: %s", @@ -2543,41 +2652,18 @@ def _on_ready_log_configs(self) -> None: ) if self.config.leave_player_inactive_for: log.info(" Timeout: %d seconds", self.config.leave_player_inactive_for) - log.info(" Self Deafen: %s", ["Disabled", "Enabled"][self.config.self_deafen]) + log.info(" Self Deafen: %s", on_or_off(self.config.self_deafen)) log.info( " Per-server command prefix: %s", - ["Disabled", "Enabled"][self.config.enable_options_per_guild], + on_or_off(self.config.enable_options_per_guild), ) - log.info(" Search List: %s", ["Disabled", "Enabled"][self.config.searchlist]) + log.info(" Search List: %s", on_or_off(self.config.searchlist)) log.info( " Round Robin Queue: %s", - ["Disabled", "Enabled"][self.config.round_robin_queue], + on_or_off(self.config.round_robin_queue), ) print(flush=True) - def _gen_embed(self) -> discord.Embed: - """Provides a basic template for embeds""" - e = discord.Embed() - e.colour = discord.Colour(7506394) - e.set_footer( - text=self.config.footer_text, icon_url="https://i.imgur.com/gFHBoZA.png" - ) - - # TODO: handle this part when EmbedResponse get handled. - author_name = "MusicBot" - avatar_url = None - if self.user: - author_name = self.user.name - if self.user.avatar: - avatar_url = self.user.avatar.url - - e.set_author( - name=author_name, - url="https://github.com/Just-Some-Bots/MusicBot", - icon_url=avatar_url, - ) - return e - def _get_song_url_or_none( self, url: str, player: Optional[MusicPlayer] ) -> Optional[str]: @@ -2603,9 +2689,8 @@ def _do_song_blocklist_check(self, song_subject: str) -> None: if self.config.song_blocklist.is_blocked(song_subject): raise exceptions.CommandError( - # TODO: i18n - f"The requested song `{song_subject}` is blocked by the song blocklist.", - expire_in=30, + "The requested song `%(subject)s` is blocked by the song block list.", + fmt_args={"subject": song_subject}, ) async def handle_vc_inactivity(self, guild: discord.Guild) -> None: @@ -2632,9 +2717,11 @@ async def handle_vc_inactivity(self, guild: discord.Guild) -> None: chname = guild.voice_client.channel.name log.info( - "Channel activity waiting %d seconds to leave channel: %s", - self.config.leave_inactive_channel_timeout, - chname, + "Channel activity waiting %(time)d seconds to leave channel: %(channel)s", + { + "time": self.config.leave_inactive_channel_timeout, + "channel": chname, + }, ) await discord.utils.sane_wait_for( [event.wait()], timeout=self.config.leave_inactive_channel_timeout @@ -2651,9 +2738,13 @@ async def handle_vc_inactivity(self, guild: discord.Guild) -> None: await self.on_inactivity_timeout_expired(guild.voice_client.channel) else: log.info( - "Channel activity timer canceled for: %s in %s", - getattr(guild.voice_client.channel, "name", guild.voice_client.channel), - guild.name, + "Channel activity timer canceled for: %(channel)s in %(guild)s", + { + "channel": getattr( + guild.voice_client.channel, "name", guild.voice_client.channel + ), + "guild": guild.name, + }, ) finally: event.deactivate() @@ -2690,9 +2781,11 @@ async def handle_player_inactivity(self, player: MusicPlayer) -> None: try: log.info( - "Player activity timer waiting %d seconds to leave channel: %s", - self.config.leave_player_inactive_for, - channel.name, + "Player activity timer waiting %(time)d seconds to leave channel: %(channel)s", + { + "time": self.config.leave_player_inactive_for, + "channel": channel.name, + }, ) await discord.utils.sane_wait_for( [event.wait()], timeout=self.config.leave_player_inactive_for @@ -2706,15 +2799,13 @@ async def handle_player_inactivity(self, player: MusicPlayer) -> None: await self.on_inactivity_timeout_expired(channel) else: log.info( - "Player activity timer canceled for: %s in %s", - channel.name, - guild.name, + "Player activity timer canceled for: %(channel)s in %(guild)s", + {"channel": channel.name, "guild": guild.name}, ) else: log.info( - "Player activity timer canceled for: %s in %s", - channel.name, - guild.name, + "Player activity timer canceled for: %(channel)s in %(guild)s", + {"channel": channel.name, "guild": guild.name}, ) finally: event.deactivate() @@ -2732,73 +2823,118 @@ async def reset_player_inactivity(self, player: MusicPlayer) -> None: event.set() log.debug("Player activity timer is being reset.") + @command_helper( + desc=_Dd( + "Reset the auto playlist queue by copying it back into player memory.\n" + "This command will be removed in a future version, replaced by the autoplaylist command(s)." + ) + ) async def cmd_resetplaylist( - self, guild: discord.Guild, player: MusicPlayer + self, + ssd_: Optional[GuildSpecificData], + guild: discord.Guild, + player: MusicPlayer, ) -> CommandResponse: """ - Usage: - {command_prefix}resetplaylist - - Resets all songs in the server's autoplaylist + Deprecated command, to be replaced with autoplaylist restart sub-command. """ player.autoplaylist = list(self.server_data[guild.id].autoplaylist) return Response( - self.str.get("cmd-resetplaylist-response", "\N{OK HAND SIGN}"), - delete_after=15, + _D("\N{OK HAND SIGN}", ssd_), + force_text=True, ) + @command_helper( + usage=["{cmd} [COMMAND]"], + desc=_Dd( + "Show usage and description of a command, or list all available commands.\n" + ), + ) async def cmd_help( self, + ssd_: Optional[GuildSpecificData], message: discord.Message, - guild: discord.Guild, + guild: Optional[discord.Guild], command: Optional[str] = None, ) -> CommandResponse: """ - Usage: - {command_prefix}help [command] - - Prints a help message. - If a command is specified, it prints a help message for that command. - Otherwise, it lists the available commands. + Display help text for usage of MusicBot or specific commmands. """ + + # TODO: this needs to be redone for the new command_helper decorator. + # this also needs to be updated for i18n but we'll take our time here. + commands = [] is_all = False is_emoji = False - prefix = self.server_data[guild.id].command_prefix + alias_of = "" + if not guild: + prefix = self.config.command_prefix + else: + prefix = self.server_data[guild.id].command_prefix # Its OK to skip unicode emoji here, they render correctly inside of code boxes. emoji_regex = re.compile(r"^(|:.+:)$") if emoji_regex.match(prefix): is_emoji = True + def _get_aliases(cmd: str) -> str: + aliases = "" + if cmd and self.config.usealias: + alias_list = self.aliases.for_command(cmd) + if alias_list: + aliases = _D("**Aliases for this command:**\n", ssd_) + for alias in alias_list: + aliases += _D( + "`%(alias)s` alias of `%(command)s %(args)s`\n", + ssd_, + ) % { + "alias": alias[0], + "command": cmd, + "args": alias[1], + } + return aliases + if command: if command.lower() == "all": is_all = True commands = await self.gen_cmd_list(message, list_all_cmds=True) else: + a_command = command cmd = getattr(self, "cmd_" + command, None) - if cmd and not hasattr(cmd, "dev_cmd"): + # check for aliases if natural command is not found. + if not cmd and self.config.usealias: + a_command, alias_arg_str = self.aliases.from_alias(command) + cmd = getattr(self, "cmd_" + a_command, None) + if cmd: + alias_of = " ".join([a_command, alias_arg_str]).strip() + + aid = message.author.id + if cmd and ( + not hasattr(cmd, "dev_cmd") + or self.config.owner_id == aid + or aid in self.config.dev_ids + ): + alias_usage = "" + if alias_of: + alias_usage = _D( + "**Alias of command:**\n `%(command)s`\n", ssd_ + ) % { + "command": alias_of, + } + return Response( - "```\n{0}```{1}".format( - dedent(cmd.__doc__), - ( - self.str.get( - "cmd-help-prefix-required", - "\n**Prefix required for use:**\n{example_cmd}\n", - ).format(example_cmd=f"{prefix}`{command} ...`") - if is_emoji - else "" - ), - ).format( - command_prefix=prefix if not is_emoji else "", - ), - delete_after=60, + # TRANSLATORS: template string for command-specific help output. + _D("%(is_alias)s\n%(docs)s\n%(alias_list)s", ssd_) + % { + "is_alias": alias_usage, + "docs": await self.gen_cmd_help(a_command, guild), + "alias_list": _get_aliases(a_command), + }, + delete_after=self.config.delete_delay_long, ) - raise exceptions.CommandError( - self.str.get("cmd-help-invalid", "No such command"), - expire_in=10, - ) + raise exceptions.CommandError("No such command") elif message.author.id == self.config.owner_id: commands = await self.gen_cmd_list(message, list_all_cmds=True) @@ -2806,61 +2942,67 @@ async def cmd_help( else: commands = await self.gen_cmd_list(message) + example_help_cmd = f"`{prefix}help [COMMAND]`" + example_help_all = f"`{prefix}help all`" if is_emoji: - desc = ( - f"\n{prefix}`" - + f"`, {prefix}`".join(commands) - + "`\n\n" - + self.str.get( - "cmd-help-response", - "For information about a particular command, run {example_cmd}\n" - "For further help, see https://just-some-bots.github.io/MusicBot/", - ).format( - example_cmd=( - f"{prefix}`help [command]`" - if is_emoji - else f"`{prefix}help [command]`" - ), - ) - ) + example_help_cmd = f"{prefix}`help [COMMAND]`" + example_help_all = f"{prefix}`help all`" else: - desc = ( - f"```\n{prefix}" - + f", {prefix}".join(commands) - + "\n```\n" - + self.str.get( - "cmd-help-response", - "For information about a particular command, run {example_cmd}\n" - "For further help, see https://just-some-bots.github.io/MusicBot/", - ).format( - example_cmd=( - f"{prefix}`help [command]`" - if is_emoji - else f"`{prefix}help [command]`" - ), - ) - ) - if not is_all: - desc += self.str.get( - "cmd-help-all", - "\nOnly showing commands you can use, for a list of all commands, run {example_cmd}", - ).format( - example_cmd=( - f"{prefix}`help all`" if is_emoji else f"`{prefix}help all`" - ), - ) + prefix = f"`{prefix}`" - return Response(desc, reply=True, delete_after=60) + all_note = "" + if not is_all: + all_note = _D( + "The list above shows only commands permitted for your use.\n" + "For a list of all commands, run: %(example_all)s\n", + ssd_, + ) % {"example_all": example_help_all} + + desc = _D( + "**Commands by name:** *(without prefix)*\n" + "```\n%(command_list)s\n```\n" + "**Command Prefix:** %(prefix)s\n\n" + "For help with a particular command, run: %(example_command)s\n" + "%(all_note)s", + ssd_, + ) % { + "command_list": ", ".join(commands), + "prefix": prefix, + "example_command": example_help_cmd, + "all_note": all_note, + } + return Response(desc, delete_after=self.config.delete_delay_long) + + @command_helper( + # fmt: off + usage=[ + "{cmd} add <@USER>\n" + + _Dd(" Block a mentioned user."), + + "{cmd} remove <@USER>\n" + + _Dd(" Unblock a mentioned user."), + + "{cmd} status <@USER>\n" + + _Dd(" Show the block status of a mentioned user."), + ], + # fmt: on + desc=_Dd( + "Manage the users in the user block list.\n" + "Blocked users are forbidden from using all bot commands.\n" + ), + remap_subs={"+": "add", "-": "remove", "?": "status"}, + ) async def cmd_blockuser( self, + ssd_: Optional[GuildSpecificData], user_mentions: UserMentions, option: str, leftover_args: List[str], ) -> CommandResponse: """ Usage: - {command_prefix}blockuser [ + | - | ? | add | remove | status ] @UserName [@UserName2 ...] + {command_prefix}blockuser [add | remove | status] @UserName [@UserName2 ...] Manage users in the block list. Blocked users are forbidden from using all bot commands. @@ -2869,16 +3011,11 @@ async def cmd_blockuser( if not user_mentions and not leftover_args: raise exceptions.CommandError( "You must mention a user or provide their ID number.", - expire_in=20, ) if option not in ["+", "-", "?", "add", "remove", "status"]: raise exceptions.CommandError( - self.str.get( - "cmd-blacklist-invalid", - 'Invalid option "{0}" specified, use +, -, add, or remove', - ).format(option), - expire_in=20, + "Invalid sub-command given. Use `help blockuser` for usage examples." ) for p_user in leftover_args: @@ -2890,7 +3027,6 @@ async def cmd_blockuser( if not user_mentions: raise exceptions.CommandError( "MusicBot could not find the user(s) you specified.", - expire_in=20, ) for user in user_mentions.copy(): @@ -2901,9 +3037,8 @@ async def cmd_blockuser( ) log.info( - "Not adding user to block list, already blocked: %s/%s", - user.id, - user.name, + "Not adding user to block list, already blocked: %(id)s/%(name)s", + {"id": user.id, "name": user.name}, ) user_mentions.remove(user) @@ -2911,17 +3046,16 @@ async def cmd_blockuser( user ): log.info( - "Not removing user from blocklist, not listed: %s/%s", - user.id, - user.name, + "Not removing user from block list, not listed: %(id)s/%(name)s", + {"id": user.id, "name": user.name}, ) user_mentions.remove(user) # allow management regardless, but tell the user if it will apply. if self.config.user_blocklist_enabled: - status_msg = "User block list is currently enabled." + status_msg = _D("User block list is currently enabled.", ssd_) else: - status_msg = "User block list is currently disabled." + status_msg = _D("User block list is currently disabled.", ssd_) old_len = len(self.config.user_blocklist) user_ids = {str(user.id) for user in user_mentions} @@ -2937,31 +3071,30 @@ async def cmd_blockuser( n_users = len(self.config.user_blocklist) - old_len return Response( - f"{n_users} user(s) have been added to the block list.\n{status_msg}", - reply=True, - delete_after=10, + _D( + "%(number)s user(s) have been added to the block list.\n" + "%(status)s", + ssd_, + ) + % { + "number": n_users, + "status": status_msg, + } ) if self.config.user_blocklist.is_disjoint(user_mentions): - return Response( - self.str.get( - "cmd-blacklist-none", - "None of those users are in the blacklist.", - ), - reply=True, - delete_after=10, - ) + return Response(_D("None of those users are in the blacklist.", ssd_)) if option in ["?", "status"]: ustatus = "" for user in user_mentions: - blocked = "not blocked" + blocked = _D("User: `%(user)s` is not blocked.\n", ssd_) if self.config.user_blocklist.is_blocked(user): - blocked = "blocked" - ustatus += f"User: `{user.name}` is {blocked}\n" + blocked = _D("User: `%(user)s` is blocked.\n", ssd_) + ustatus += blocked % {"user": user.name} return Response( - f"**Block list status:**\n{ustatus}\n{status_msg}", - delete_after=30, + _D("**Block list status:**\n%(status)s\n%(users)s", ssd_) + % {"status": status_msg, "users": ustatus}, ) async with self.aiolocks["user_blocklist"]: @@ -2969,13 +3102,28 @@ async def cmd_blockuser( n_users = old_len - len(self.config.user_blocklist) return Response( - f"{n_users} user(s) have been removed from the block list.\n{status_msg}", - reply=True, - delete_after=10, + _D( + "%(number)s user(s) have been removed from the block list.\n%(status)s", + ssd_, + ) + % {"number": n_users, "status": status_msg} ) + @command_helper( + usage=["{cmd} [SUBJECT]\n"], + desc=_Dd( + "Manage a block list applied to song requests and extracted song data.\n" + "A subject may be a song URL or a word or phrase found in the track title.\n" + "If subject is omitted, any currently playing track URL will be added instead.\n" + "\n" + "The song block list matches loosely, but is case-sensitive.\n" + "This means adding 'Pie' will match 'cherry Pie' but not 'piecrust' in checks.\n" + ), + remap_subs={"+": "add", "-": "remove"}, + ) async def cmd_blocksong( self, + ssd_: Optional[GuildSpecificData], guild: discord.Guild, _player: Optional[MusicPlayer], option: str, @@ -2983,15 +3131,7 @@ async def cmd_blocksong( song_subject: str = "", ) -> CommandResponse: """ - Usage: - {command_prefix}blocksong [ + | - | add | remove ] [subject] - - Manage a block list applied to song requests and extracted info. - A `subject` may be a song URL or a word or phrase found in the track title. - If `subject` is omitted, a currently playing track will be used instead. - - Song block list matches loosely, but is case sensitive. - So adding "Pie" will match "cherry Pie" but not "cherry pie" in checks. + Command for managing the song block list. """ if leftover_args: song_subject = " ".join([song_subject, *leftover_args]) @@ -3001,17 +3141,12 @@ async def cmd_blocksong( if not valid_url: raise exceptions.CommandError( "You must provide a song subject if no song is currently playing.", - expire_in=30, ) song_subject = valid_url if option not in ["+", "-", "add", "remove"]: raise exceptions.CommandError( - self.str.get( - "cmd-blacklist-invalid", - 'Invalid option "{0}" specified, use +, -, add, or remove', - ).format(option), - expire_in=20, + "Invalid sub-command given. Use `help blocksong` for usage examples." ) # allow management regardless, but tell the user if it will apply. @@ -3023,7 +3158,8 @@ async def cmd_blocksong( if option in ["+", "add"]: if self.config.song_blocklist.is_blocked(song_subject): raise exceptions.CommandError( - f"Subject `{song_subject}` is already in the song block list.\n{status_msg}" + "Subject `%(subject)s` is already in the song block list.", + fmt_args={"subject": song_subject}, ) # remove song from auto-playlist if it is blocked @@ -3043,56 +3179,56 @@ async def cmd_blocksong( async with self.aiolocks["song_blocklist"]: self.config.song_blocklist.append_items([song_subject]) - # TODO: i18n/UI stuff. return Response( - f"Added subject `{song_subject}` to the song block list.\n{status_msg}", - reply=True, - delete_after=10, + _D( + "Added subject `%(subject)s` to the song block list.\n%(status)s", + ssd_, + ) + % {"subject": song_subject, "status": status_msg} ) # handle "remove" and "-" if not self.config.song_blocklist.is_blocked(song_subject): raise exceptions.CommandError( "The subject is not in the song block list and cannot be removed.", - expire_in=10, ) async with self.aiolocks["song_blocklist"]: self.config.song_blocklist.remove_items([song_subject]) return Response( - f"Subject `{song_subject}` has been removed from the block list.\n{status_msg}", - reply=True, - delete_after=10, + _D( + "Subject `%(subject)s` has been removed from the block list.\n%(status)s", + ssd_, + ) + % {"subject": song_subject, "status": status_msg} ) - async def cmd_id( - self, author: discord.Member, user_mentions: UserMentions - ) -> CommandResponse: - """ - Usage: - {command_prefix}id [@user] + @command_helper( + # fmt: off + usage=[ + "{cmd} [URL]\n" + + _Dd(" Adds or removes the specified song or currently playing song to/from the current playlist.\n"), - Tells the user their id or the id of another user. - """ - if not user_mentions: - return Response( - self.str.get("cmd-id-self", "Your ID is `{0}`").format(author.id), - reply=True, - delete_after=35, - ) + "{cmd} add all\n" + + _Dd(" Adds the entire queue to the guilds playlist.\n"), - usr = user_mentions[0] - return Response( - self.str.get("cmd-id-other", "**{0}**s ID is `{1}`").format( - usr.name, usr.id - ), - reply=True, - delete_after=35, - ) + "{cmd} show\n" + + _Dd(" Show a list of existing playlist files.\n"), + "{cmd} restart\n" + + _Dd(" Reset the auto playlist queue, restarting at the first track unless randomized.\n"), + + "{cmd} set \n" + + _Dd(" Set a playlist as default for this guild and reloads the guild auto playlist.\n"), + ], + # fmt: on + desc=_Dd("Manage auto playlist files and per-guild settings."), + remap_subs={"+": "add", "-": "remove"}, + ) async def cmd_autoplaylist( self, + ssd_: Optional[GuildSpecificData], guild: discord.Guild, author: discord.Member, _player: Optional[MusicPlayer], @@ -3101,46 +3237,26 @@ async def cmd_autoplaylist( opt_url: str = "", ) -> CommandResponse: """ - Usage: - {command_prefix}autoplaylist [+ | - | add | remove] [url] - Adds or removes the specified song or currently playing song to/from the current playlist. - - {command_prefix}autoplaylist [+ all | add all] - Adds the entire queue to the guilds playlist. - - {command_prefix}autoplaylist show - Show a list of existing playlist files. - - {command_prefix}autoplaylist set [playlist.txt] - Set a playlist as default for this guild and reloads the guild auto playlist. + Manage auto playlists globally and per-guild. """ + # TODO: add a method to display the current auto playlist setting in chat. option = option.lower() - if option not in ["+", "-", "add", "remove", "show", "set"]: + if option not in ["+", "-", "add", "remove", "show", "set", "restart"]: raise exceptions.CommandError( - "You must provide one of the following options: `add`, `remove`, `show`, or `set`", - expire_in=30, + "Invalid sub-command given. Use `help autoplaylist` for usage examples.", ) def _get_url() -> str: url = self._get_song_url_or_none(opt_url, _player) if not url: - raise exceptions.CommandError( - self.str.get( - "cmd-autoplaylist-invalid", "The supplied song link is invalid" - ), - expire_in=20, - ) + raise exceptions.CommandError("The supplied song link is invalid") return url if option in ["+", "add"] and opt_url.lower() == "all": if not player.playlist.entries: raise exceptions.CommandError( - self.str.get( - "cmd-autoplaylist-add-all-empty-queue", - "The queue is empty. Add some songs with `{0}play`!", - ).format(self.server_data[guild.id].command_prefix), - expire_in=30, + "The queue is empty. Add some songs with a play command!", ) added_songs = set() @@ -3151,19 +3267,12 @@ def _get_url() -> str: if not added_songs: return Response( - self.str.get( - "cmd-save-all-exist", - "All songs in the queue are already in the autoplaylist.", - ), - delete_after=20, + _D("All songs in the queue are already in the autoplaylist.", ssd_) ) return Response( - self.str.get( - "cmd-save-success-multiple", - "Added {0} songs to the autoplaylist.", - ).format(len(added_songs)), - delete_after=30, + _D("Added %(number)d songs to the autoplaylist.", ssd_) + % {"number": len(added_songs)}, ) if option in ["+", "add"]: @@ -3172,17 +3281,10 @@ def _get_url() -> str: if url not in self.server_data[guild.id].autoplaylist: await self.server_data[guild.id].autoplaylist.add_track(url) return Response( - self.str.get( - "cmd-save-success", "Added <{0}> to the autoplaylist." - ).format(url), - delete_after=35, + _D("Added `%(url)s` to the autoplaylist.", ssd_) % {"url": url}, ) raise exceptions.CommandError( - self.str.get( - "cmd-save-exists", - "This song is already in the autoplaylist.", - ), - expire_in=20, + "This song is already in the autoplaylist.", ) if option in ["-", "remove"]: @@ -3196,32 +3298,40 @@ def _get_url() -> str: delete_from_ap=True, ) return Response( - self.str.get( - "cmd-unsave-success", "Removed <{0}> from the autoplaylist." - ).format(url), - delete_after=35, + _D("Removed `%(url)s` from the autoplaylist.", ssd_) % {"url": url}, ) raise exceptions.CommandError( - self.str.get( - "cmd-unsave-does-not-exist", - "This song is not yet in the autoplaylist.", - ), - expire_in=20, + "This song is not yet in the autoplaylist.", + ) + + if option == "restart": + apl = self.server_data[guild.id].autoplaylist + await apl.load(force=True) + player.autoplaylist = list(apl) + return Response( + _D( + "Loaded a fresh copy of the playlist: `%(file)s`", + ssd_, + ) + % {"file": apl.filename} ) if option == "show": self.playlist_mgr.discover_playlists() names = "\n".join([f"`{pl}`" for pl in self.playlist_mgr.playlist_names]) return Response( - f"**Available Playlists:**\n{names}", - delete_after=40, + _D( + "**Available Playlists:**\n%(names)s", + ssd_, + ) + % {"names": names}, + delete_after=self.config.delete_delay_long, ) if option == "set": if not opt_url: raise exceptions.CommandError( "You must provide a playlist filename.", - expire_in=30, ) # Add file extension if one was not given. @@ -3240,53 +3350,56 @@ def _get_url() -> str: new_msg = "" if not self.playlist_mgr.playlist_exists(opt_url): - new_msg = ( - "\nThis playlist is new, you must add songs to save it to disk!" + new_msg = _D( + "\nThis playlist is new, you must add songs to save it to disk!", + ssd_, ) return Response( - f"The playlist for this server has been updated to: `{opt_url}`{new_msg}", - delete_after=30, + _D( + "The playlist for this server has been updated to: `%(name)s`%(note)s", + ssd_, + ) + % {"name": opt_url, "note": new_msg}, ) - raise exceptions.CommandError( - self.str.get( - "cmd-autoplaylist-option-invalid", - 'Invalid option "{0}" specified, use +, -, add, or remove', - ).format(option), - expire_in=20, - ) + return None @owner_only - async def cmd_joinserver(self) -> CommandResponse: + @command_helper( + desc=_Dd( + "Generate an invite link that can be used to add this bot to another server." + ), + allow_dm=True, + ) + async def cmd_joinserver( + self, ssd_: Optional[GuildSpecificData] + ) -> CommandResponse: """ - Usage: - {command_prefix}joinserver - - Generate an invite link that can be used to add this bot to another server. + Generate an oauth invite link for the bot in chat. """ url = await self.generate_invite_link() return Response( - self.str.get( - "cmd-joinserver-response", - "Click here to add me to another server: \n{}", - ).format(url), - reply=True, - delete_after=30, + _D("Click here to add me to a discord server:\n%(url)s", ssd_) + % {"url": url}, ) - async def cmd_karaoke(self, player: MusicPlayer) -> CommandResponse: + @command_helper( + desc=_Dd( + "Toggle karaoke mode on or off. While enabled, only karaoke members may queue songs.\n" + "Groups with BypassKaraokeMode permission control which members are Karaoke members.\n" + ) + ) + async def cmd_karaoke( + self, ssd_: Optional[GuildSpecificData], player: MusicPlayer + ) -> CommandResponse: """ - Usage: - {command_prefix}karaoke - - Activates karaoke mode. During karaoke mode, only groups with the BypassKaraokeMode - permission in the config file can queue music. + Toggle the player's karaoke mode. """ player.karaoke_mode = not player.karaoke_mode + if player.karaoke_mode: + return Response(_D("\N{OK HAND SIGN} Karaoke mode is now enabled.", ssd_)) return Response( - "\N{OK HAND SIGN} Karaoke mode is now " - + ["disabled", "enabled"][player.karaoke_mode], - delete_after=15, + _D("\N{OK HAND SIGN} Karaoke mode is now disabled.", ssd_), ) async def _do_playlist_checks( @@ -3309,10 +3422,7 @@ async def _do_playlist_checks( # I have to do extra checks anyways because you can request an arbitrary number of search results if not permissions.allow_playlists and num_songs > 1: raise exceptions.PermissionsError( - self.str.get( - "playlists-noperms", "You are not allowed to request playlists" - ), - expire_in=30, + "You are not allowed to request playlists" ) if ( @@ -3320,10 +3430,8 @@ async def _do_playlist_checks( and num_songs > permissions.max_playlist_length ): raise exceptions.PermissionsError( - self.str.get( - "playlists-big", "Playlist has too many entries ({0} > {1})" - ).format(num_songs, permissions.max_playlist_length), - expire_in=30, + "Playlist has too many entries (%(songs)s but max is %(max)s)", + fmt_args={"songs": num_songs, "max": permissions.max_playlist_length}, ) # This is a little bit weird when it says (x + 0 > y), I might add the other check back in @@ -3333,15 +3441,14 @@ async def _do_playlist_checks( > permissions.max_songs ): raise exceptions.PermissionsError( - self.str.get( - "playlists-limit", - "Playlist entries + your already queued songs reached limit ({0} + {1} > {2})", - ).format( - num_songs, - player.playlist.count_for_user(author), - permissions.max_songs, - ), - expire_in=30, + "The playlist entries will exceed your queue limit.\n" + "There are %(songs)s in the list, and %(queued)s already in queue.\n" + "The limit is %(max)s for your group.", + fmt_args={ + "songs": num_songs, + "queued": player.playlist.count_for_user(author), + "max": permissions.max_songs, + }, ) return True @@ -3446,12 +3553,16 @@ async def _do_cmd_unpause_check( if not author.voice or not author.voice.channel: return + # TODO: check this if player and player.voice_client and player.voice_client.channel: pvc = player.voice_client.channel avc = author.voice.channel perms = self.permissions.for_user(author) + ssd = None + if channel.guild: + ssd = self.server_data[channel.guild.id] if pvc != avc and perms.summonplay: - await self.cmd_summon(author.guild, author, message) + await self.cmd_summon(ssd, author.guild, author, message) return if pvc != avc and not perms.summonplay: @@ -3461,17 +3572,29 @@ async def _do_cmd_unpause_check( player.resume() await self.safe_send_message( channel, - self.str.get( - "cmd-unpause-check", - "Bot was previously paused, resuming playback now.", + Response( + _D( + "Bot was previously paused, resuming playback now.", + self.server_data[player.voice_client.channel.guild.id], + ) ), - expire_in=30, ) + @command_helper( + usage=["{cmd} "], + desc=_Dd( + "Add a song to be played in the queue. If no song is playing or paused, playback will be started.\n" + "\n" + "You may supply a URL to a video or audio file or the URL of a service supported by yt-dlp.\n" + "Playlist links will be extracted into multiple links and added to the queue.\n" + "If you enter a non-URL, the input will be used as search criteria on YouTube and the first result played.\n" + "MusicBot also supports Spotify URIs and URLs, but audio is fetched from YouTube regardless.\n" + ), + ) async def cmd_play( self, message: discord.Message, - _player: Optional[MusicPlayer], + player: MusicPlayer, channel: GuildMessageableChannels, guild: discord.Guild, author: discord.Member, @@ -3480,23 +3603,13 @@ async def cmd_play( song_url: str, ) -> CommandResponse: """ - Usage: - {command_prefix}play song_link - {command_prefix}play text to search for - {command_prefix}play spotify_uri - - Adds the song to the playlist. If a link is not provided, the first - result from a youtube search is added to the queue. - - If enabled in the config, the bot will also support Spotify URLs, however - it will use the metadata (e.g song name and artist) to find a YouTube - equivalent of the song. Streaming from Spotify is not possible. + The default play command logic. """ - await self._do_cmd_unpause_check(_player, channel, author, message) + await self._do_cmd_unpause_check(player, channel, author, message) return await self._cmd_play( message, - _player, + player, channel, guild, author, @@ -3506,10 +3619,17 @@ async def cmd_play( head=False, ) + @command_helper( + usage=["{cmd} [URL]"], + desc=_Dd( + "Play command that shuffles playlist entries before adding them to the queue.\n" + ), + ) async def cmd_shuffleplay( self, + ssd_: Optional[GuildSpecificData], message: discord.Message, - _player: Optional[MusicPlayer], + player: MusicPlayer, channel: GuildMessageableChannels, guild: discord.Guild, author: discord.Member, @@ -3523,11 +3643,11 @@ async def cmd_shuffleplay( Like play command but explicitly shuffles entries before adding them to the queue. """ - await self._do_cmd_unpause_check(_player, channel, author, message) + await self._do_cmd_unpause_check(player, channel, author, message) await self._cmd_play( message, - _player, + player, channel, guild, author, @@ -3539,16 +3659,21 @@ async def cmd_shuffleplay( ) return Response( - self.str.get("cmd-shuffleplay-shuffled", "Shuffled {0}'s playlist").format( - message.guild - ), - delete_after=30, + _D("Shuffled playlist items into the queue from `%(request)s`", ssd_) + % {"request": song_url}, ) + @command_helper( + usage=["{cmd} "], + desc=_Dd( + "A play command that adds the song as the next to play rather than last.\n" + "Read help for the play command for information on supported inputs.\n" + ), + ) async def cmd_playnext( self, message: discord.Message, - _player: Optional[MusicPlayer], + player: MusicPlayer, channel: GuildMessageableChannels, guild: discord.Guild, author: discord.Member, @@ -3557,23 +3682,13 @@ async def cmd_playnext( song_url: str, ) -> CommandResponse: """ - Usage: - {command_prefix}playnext song_link - {command_prefix}playnext text to search for - {command_prefix}playnext spotify_uri - - Adds the song to the playlist next. If a link is not provided, the first - result from a youtube search is added to the queue. - - If enabled in the config, the bot will also support Spotify URLs, however - it will use the metadata (e.g song name and artist) to find a YouTube - equivalent of the song. Streaming from Spotify is not possible. + Add a song directly as the next entry in the queue, if one is playing. """ - await self._do_cmd_unpause_check(_player, channel, author, message) + await self._do_cmd_unpause_check(player, channel, author, message) return await self._cmd_play( message, - _player, + player, channel, guild, author, @@ -3583,10 +3698,17 @@ async def cmd_playnext( head=True, ) + @command_helper( + usage=["{cmd} "], + desc=_Dd( + "A play command which skips any current song and plays immediately.\n" + "Read help for the play command for information on supported inputs.\n" + ), + ) async def cmd_playnow( self, message: discord.Message, - _player: Optional[MusicPlayer], + player: MusicPlayer, channel: GuildMessageableChannels, guild: discord.Guild, author: discord.Member, @@ -3595,24 +3717,14 @@ async def cmd_playnow( song_url: str, ) -> CommandResponse: """ - Usage: - {command_prefix}play song_link - {command_prefix}play text to search for - {command_prefix}play spotify_uri - - Adds the song to be played back immediately. If a link is not provided, the first - result from a youtube search is added to the queue. - - If enabled in the config, the bot will also support Spotify URLs, however - it will use the metadata (e.g song name and artist) to find a YouTube - equivalent of the song. Streaming from Spotify is not possible. + Play immediately, skip any playing track. Don't check skip perms. """ - await self._do_cmd_unpause_check(_player, channel, author, message) + await self._do_cmd_unpause_check(player, channel, author, message) # attempt to queue the song, but used the front of the queue and skip current playback. return await self._cmd_play( message, - _player, + player, channel, guild, author, @@ -3623,42 +3735,41 @@ async def cmd_playnow( skip_playing=True, ) + @command_helper( + usage=["{cmd}