mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-12-05 17:02:32 -05:00
Compare commits
40 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b92d61e154 | ||
|
|
70ff884ebb | ||
|
|
6f6c536236 | ||
|
|
a1095285e4 | ||
|
|
00d20f14b9 | ||
|
|
560e0f7334 | ||
|
|
fc2dce6882 | ||
|
|
bd3d0dd64d | ||
|
|
f824d09ed3 | ||
|
|
d7c5f86ce7 | ||
|
|
c760b43e5a | ||
|
|
b1fe807b47 | ||
|
|
0d6a7eb797 | ||
|
|
bf6390d72e | ||
|
|
e595f1859a | ||
|
|
06930ebe2c | ||
|
|
08c96a6794 | ||
|
|
61db89e89d | ||
|
|
a2c0e4ca2e | ||
|
|
b08a950c37 | ||
|
|
ad979180e5 | ||
|
|
465812b673 | ||
|
|
f59e77002b | ||
|
|
e4018ec677 | ||
|
|
df7ca65108 | ||
|
|
d12fcac9af | ||
|
|
66fc28ec1b | ||
|
|
10ad2a559a | ||
|
|
b8ac70e59a | ||
|
|
7492636818 | ||
|
|
36a0eabf4a | ||
|
|
cf4fdbbab1 | ||
|
|
f1b6b5f6f9 | ||
|
|
e06b3fceb5 | ||
|
|
4628dd07e4 | ||
|
|
55a3d9b157 | ||
|
|
c70c1d97e5 | ||
|
|
da4e4d4ad0 | ||
|
|
3d9ee3f2b4 | ||
|
|
b9331ffa55 |
3
.github/workflows/publish_crowdin.yml
vendored
3
.github/workflows/publish_crowdin.yml
vendored
@@ -35,9 +35,6 @@ jobs:
|
||||
- name: Download translations
|
||||
run: |
|
||||
make download_translations
|
||||
- name: Remove files from PR which only have a date changed
|
||||
run: |
|
||||
git checkout HEAD -- $(git diff HEAD --numstat | awk 'BEGIN {ORS=" "} $1 == "1" && $2 == "1" && $3 ~ /.po$/ {print $3}')
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v2
|
||||
with:
|
||||
|
||||
@@ -1,5 +1,114 @@
|
||||
.. 3.3.x Changelogs
|
||||
|
||||
Redbot 3.3.6 (2020-04-27)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Drapersniper`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`MiniJennJenn`, :ghuser:`NeuroAssassin`, :ghuser:`PredaaA`, :ghuser:`TrustyJAID`, :ghuser:`yamikaitou`
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Core Bot
|
||||
********
|
||||
|
||||
- Converting from and to Postgres driver with ``redbot-setup convert`` have been fixed (:issue:`3714`, :issue:`3115`)
|
||||
- Fixed big delays in commands that happened when the bot was owner-less (or if it only used co-owners feature) and command caller wasn't the owner (:issue:`3782`)
|
||||
- Various optimizations
|
||||
|
||||
- Reduced calls to data backend when loading bot's commands (:issue:`3764`)
|
||||
- Reduced calls to data backend when showing help for cogs/commands (:issue:`3766`)
|
||||
- Improved performance for bots with big amount of guilds (:issue:`3767`)
|
||||
- Mod cog no longer fetches guild's bans every 60 seconds when handling unbanning for tempbans (:issue:`3783`)
|
||||
- Reduced the bot load for messages starting with a prefix when fuzzy search is disabled (:issue:`3718`)
|
||||
- Aliases in Alias cog are now cached for better performance (:issue:`3788`)
|
||||
|
||||
Core Commands
|
||||
*************
|
||||
|
||||
- ``[p]set avatar`` now supports setting avatar using attachment (:issue:`3747`)
|
||||
- Added ``[p]set avatar remove`` subcommand for removing bot's avatar (:issue:`3757`)
|
||||
- Fixed list of ignored channels that is shown in ``[p]ignore``/``[p]unignore`` (:issue:`3746`)
|
||||
|
||||
Audio
|
||||
*****
|
||||
|
||||
- Age-restricted tracks, live streams, and mix playlists from YouTube should work in Audio again (:issue:`3791`)
|
||||
- Soundcloud's sets and playlists with more than 50 tracks should work in Audio again (:issue:`3791`)
|
||||
|
||||
CustomCommands
|
||||
**************
|
||||
|
||||
- Added ``[p]cc raw`` command that gives you the raw response of a custom command for ease of copy pasting (:issue:`3795`)
|
||||
|
||||
Modlog
|
||||
******
|
||||
|
||||
- Fixed ``AttributeError`` for cases whose moderator doesn't share the server with the bot (:issue:`3784`, :issue:`3778`)
|
||||
|
||||
Streams
|
||||
*******
|
||||
|
||||
- Fixed incorrect stream URLs for Twitch channels that have localised display name (:issue:`3773`, :issue:`3772`)
|
||||
|
||||
Trivia
|
||||
******
|
||||
|
||||
- Fixed the error in ``[p]trivia stop`` that happened when there was no ongoing trivia session in the channel (:issue:`3774`)
|
||||
|
||||
Trivia Lists
|
||||
************
|
||||
|
||||
- Updated ``leagueoflegends`` list with new changes to League of Legends (`b8ac70e <https://github.com/Cog-Creators/Red-DiscordBot/commit/b8ac70e59aa1328f246784f14f992d6ffe00d778>`_)
|
||||
|
||||
|
||||
Developer changelog
|
||||
-------------------
|
||||
|
||||
Utility Functions
|
||||
*****************
|
||||
|
||||
- Added `redbot.core.utils.AsyncIter` utility class which allows you to wrap regular iterable into async iterator yielding items and sleeping for ``delay`` seconds every ``steps`` items (:issue:`3767`, :issue:`3776`)
|
||||
- `bold()`, `italics()`, `strikethrough()`, and `underline()` now accept ``escape_formatting`` argument that can be used to disable escaping of markdown formatting in passed text (:issue:`3742`)
|
||||
|
||||
|
||||
Documentation changes
|
||||
---------------------
|
||||
|
||||
- Added `document about updating Red <update_red>` (:issue:`3790`)
|
||||
- ``pyenv`` instructions will now update ``pyenv`` if it's already installed (:issue:`3740`)
|
||||
- Updated Python version in ``pyenv`` instructions (:issue:`3740`)
|
||||
- Updated install docs to include Ubuntu 20.04 (:issue:`3792`)
|
||||
|
||||
|
||||
Miscellaneous
|
||||
-------------
|
||||
|
||||
- **Config** - JSON driver will now properly have only one lock per cog name (:issue:`3780`)
|
||||
- **Core Commands** - ``[p]debuginfo`` now shows used storage type (:issue:`3794`)
|
||||
- **Trivia** - Corrected spelling of Compact Disc in ``games`` list (:issue:`3759`, :issue:`3758`)
|
||||
|
||||
|
||||
Redbot 3.3.5 (2020-04-09)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| :ghuser:`jack1142`, :ghuser:`Kowlin`
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Core Bot
|
||||
********
|
||||
|
||||
- "Outdated" field no longer shows in ``[p]info`` when Red is up-to-date (:issue:`3730`)
|
||||
|
||||
Alias
|
||||
*****
|
||||
|
||||
- Fixed regression in ``[p]alias add`` that caused it to reject commands containing arguments (:issue:`3734`)
|
||||
|
||||
|
||||
Redbot 3.3.4 (2020-04-05)
|
||||
=========================
|
||||
|
||||
@@ -409,4 +518,4 @@ Mod
|
||||
Permissions
|
||||
-----------
|
||||
|
||||
- Now has stronger enforcement of prioritizing botwide settings.
|
||||
- Now has stronger enforcement of prioritizing botwide settings.
|
||||
|
||||
@@ -202,15 +202,15 @@ the built-in Economy credits::
|
||||
|
||||
class Pets:
|
||||
def __init__(self):
|
||||
self.conf = Config.get_conf(self, 1234567890)
|
||||
self.config = Config.get_conf(self, 1234567890)
|
||||
|
||||
# Here we'll assign some default costs for the pets
|
||||
self.conf.register_global(
|
||||
self.config.register_global(
|
||||
dog=100,
|
||||
cat=100,
|
||||
bird=50
|
||||
)
|
||||
self.conf.register_user(
|
||||
self.config.register_user(
|
||||
pets={}
|
||||
)
|
||||
|
||||
@@ -229,7 +229,7 @@ And now that the cog is set up we'll need to create some commands that allow use
|
||||
|
||||
# We will need to use "get_raw"
|
||||
try:
|
||||
cost = await self.conf.get_raw(pet_type)
|
||||
cost = await self.config.get_raw(pet_type)
|
||||
except KeyError:
|
||||
# KeyError is thrown whenever the data you try to access does not
|
||||
# exist in the registered defaults or in the saved data.
|
||||
@@ -241,15 +241,15 @@ assign a new pet to the user. This is very easily done using the V3 bank API and
|
||||
|
||||
# continued
|
||||
if await bank.can_spend(ctx.author, cost):
|
||||
await self.conf.user(ctx.author).pets.set_raw(
|
||||
await self.config.user(ctx.author).pets.set_raw(
|
||||
pet_name, value={'cost': cost, 'hunger': 0}
|
||||
)
|
||||
|
||||
# this is equivalent to doing the following
|
||||
|
||||
pets = await self.conf.user(ctx.author).pets()
|
||||
pets = await self.config.user(ctx.author).pets()
|
||||
pets[pet_name] = {'cost': cost, 'hunger': 0}
|
||||
await self.conf.user(ctx.author).pets.set(pets)
|
||||
await self.config.user(ctx.author).pets.set(pets)
|
||||
|
||||
Since the pets can get hungry we're gonna need a command that let's pet owners check how hungry their pets are::
|
||||
|
||||
@@ -257,7 +257,7 @@ Since the pets can get hungry we're gonna need a command that let's pet owners c
|
||||
@commands.command()
|
||||
async def hunger(self, ctx, pet_name: str):
|
||||
try:
|
||||
hunger = await self.conf.user(ctx.author).pets.get_raw(pet_name, 'hunger')
|
||||
hunger = await self.config.user(ctx.author).pets.get_raw(pet_name, 'hunger')
|
||||
except KeyError:
|
||||
# Remember, this is thrown if something in the provided identifiers
|
||||
# is not found in the saved data or the defaults.
|
||||
@@ -274,7 +274,7 @@ We're responsible pet owners here, so we've also got to have a way to feed our p
|
||||
# This is a bit more complicated because we need to check if the pet is
|
||||
# owned first.
|
||||
try:
|
||||
pet = await self.conf.user(ctx.author).pets.get_raw(pet_name)
|
||||
pet = await self.config.user(ctx.author).pets.get_raw(pet_name)
|
||||
except KeyError:
|
||||
# If the given pet name doesn't exist in our data
|
||||
await ctx.send("You don't own that pet!")
|
||||
@@ -285,12 +285,12 @@ We're responsible pet owners here, so we've also got to have a way to feed our p
|
||||
# Determine the new hunger and make sure it doesn't go negative
|
||||
new_hunger = max(hunger - food, 0)
|
||||
|
||||
await self.conf.user(ctx.author).pets.set_raw(
|
||||
await self.config.user(ctx.author).pets.set_raw(
|
||||
pet_name, 'hunger', value=new_hunger
|
||||
)
|
||||
|
||||
# We could accomplish the same thing a slightly different way
|
||||
await self.conf.user(ctx.author).pets.get_attr(pet_name).hunger.set(new_hunger)
|
||||
await self.config.user(ctx.author).pets.get_attr(pet_name).hunger.set(new_hunger)
|
||||
|
||||
await ctx.send("Your pet is now at {}/100 hunger!".format(new_hunger)
|
||||
|
||||
@@ -300,7 +300,7 @@ Of course, if we're less than responsible pet owners, there are consequences::
|
||||
@commands.command()
|
||||
async def adopt(self, ctx, pet_name: str, *, member: discord.Member):
|
||||
try:
|
||||
pet = await self.conf.user(member).pets.get_raw(pet_name)
|
||||
pet = await self.config.user(member).pets.get_raw(pet_name)
|
||||
except KeyError:
|
||||
await ctx.send("That person doesn't own that pet!")
|
||||
return
|
||||
@@ -310,15 +310,15 @@ Of course, if we're less than responsible pet owners, there are consequences::
|
||||
await ctx.send("That pet is too well taken care of to be adopted.")
|
||||
return
|
||||
|
||||
await self.conf.user(member).pets.clear_raw(pet_name)
|
||||
await self.config.user(member).pets.clear_raw(pet_name)
|
||||
|
||||
# this is equivalent to doing the following
|
||||
|
||||
pets = await self.conf.user(member).pets()
|
||||
pets = await self.config.user(member).pets()
|
||||
del pets[pet_name]
|
||||
await self.conf.user(member).pets.set(pets)
|
||||
await self.config.user(member).pets.set(pets)
|
||||
|
||||
await self.conf.user(ctx.author).pets.set_raw(pet_name, value=pet)
|
||||
await self.config.user(ctx.author).pets.set_raw(pet_name, value=pet)
|
||||
await ctx.send(
|
||||
"Your request to adopt this pet has been granted due to "
|
||||
"how poorly it was taken care of."
|
||||
@@ -351,15 +351,15 @@ much the same way they would in V2. The following examples will demonstrate how
|
||||
|
||||
class ExampleCog:
|
||||
def __init__(self):
|
||||
self.conf = Config.get_conf(self, 1234567890)
|
||||
self.config = Config.get_conf(self, 1234567890)
|
||||
|
||||
self.data = {}
|
||||
|
||||
async def load_data(self):
|
||||
self.data = await self.conf.custom("V2", "V2").all()
|
||||
self.data = await self.config.custom("V2", "V2").all()
|
||||
|
||||
async def save_data(self):
|
||||
await self.conf.custom("V2", "V2").set(self.data)
|
||||
await self.config.custom("V2", "V2").set(self.data)
|
||||
|
||||
|
||||
async def setup(bot):
|
||||
@@ -407,13 +407,13 @@ API Reference
|
||||
includes keys within a `dict` when one is being set, as well as keys in nested dictionaries
|
||||
within that `dict`. For example::
|
||||
|
||||
>>> conf = Config.get_conf(self, identifier=999)
|
||||
>>> conf.register_global(foo={})
|
||||
>>> await conf.foo.set_raw(123, value=True)
|
||||
>>> await conf.foo()
|
||||
>>> config = Config.get_conf(self, identifier=999)
|
||||
>>> config.register_global(foo={})
|
||||
>>> await config.foo.set_raw(123, value=True)
|
||||
>>> await config.foo()
|
||||
{'123': True}
|
||||
>>> await conf.foo.set({123: True, 456: {789: False}}
|
||||
>>> await conf.foo()
|
||||
>>> await config.foo.set({123: True, 456: {789: False}}
|
||||
>>> await config.foo()
|
||||
{'123': True, '456': {'789': False}}
|
||||
|
||||
.. automodule:: redbot.core.config
|
||||
|
||||
@@ -10,6 +10,18 @@ General Utility
|
||||
.. automodule:: redbot.core.utils
|
||||
:members: deduplicate_iterables, bounded_gather, bounded_gather_iter
|
||||
|
||||
.. autoclass:: AsyncIter
|
||||
:members:
|
||||
:special-members: __await__
|
||||
:exclude-members: enumerate, filter
|
||||
|
||||
.. automethod:: enumerate
|
||||
:async-for:
|
||||
|
||||
.. automethod:: filter
|
||||
:async-for:
|
||||
|
||||
|
||||
Chat Formatting
|
||||
===============
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ Welcome to Red - Discord Bot's documentation!
|
||||
|
||||
install_windows
|
||||
install_linux_mac
|
||||
update_red
|
||||
about_venv
|
||||
autostart_systemd
|
||||
autostart_pm2
|
||||
|
||||
@@ -239,9 +239,9 @@ Continue by `creating-venv-linux`.
|
||||
|
||||
.. _install-ubuntu:
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Ubuntu LTS versions (18.04 and 16.04)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Ubuntu LTS versions (20.04, 18.04, and 16.04)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
|
||||
|
||||
@@ -313,7 +313,7 @@ virtual environment.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
|
||||
command -v pyenv && pyenv update || curl https://pyenv.run | bash
|
||||
|
||||
After this command, you may see a warning about 'pyenv' not being in the load path. Follow the
|
||||
instructions given to fix that, then close and reopen your shell.
|
||||
@@ -322,7 +322,7 @@ Then run the following command:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.1 -v
|
||||
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.2 -v
|
||||
|
||||
This may take a long time to complete, depending on your hardware. For some machines (such as
|
||||
Raspberry Pis and micro-tier VPSes), it may take over an hour; in this case, you may wish to remove
|
||||
@@ -334,7 +334,7 @@ After that is finished, run:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
pyenv global 3.8.1
|
||||
pyenv global 3.8.2
|
||||
|
||||
Pyenv is now installed and your system should be configured to run Python 3.8.
|
||||
|
||||
|
||||
124
docs/update_red.rst
Normal file
124
docs/update_red.rst
Normal file
@@ -0,0 +1,124 @@
|
||||
============
|
||||
Updating Red
|
||||
============
|
||||
|
||||
Updating to the latest version of Red has several benefits:
|
||||
|
||||
- New features and improvements are added.
|
||||
- Bugs are fixed.
|
||||
- Your bot is safe from security vulnerabilities that have been found.
|
||||
|
||||
Here are some things to consider to help make your upgrade as smooth as possible.
|
||||
|
||||
.. note::
|
||||
|
||||
If you're developing for Red, you should also look for "Breaking changes" sections in release notes for each minor (X.Y.0) version that's been released since you last updated Red.
|
||||
|
||||
Updating differs depending on the version you currently have. Next sections will explain how to upgrade to latest version of Red (|version|) from the version that is in the header of the section.
|
||||
|
||||
|
||||
Red 3.2.0 or newer
|
||||
******************
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
If you have Red 3.2.0 or newer, all you have to do to upgrade Red is running 2 commands.
|
||||
|
||||
1. Activate your venv with the following command:
|
||||
|
||||
.. code:: none
|
||||
|
||||
"%userprofile%\redenv\Scripts\activate.bat"
|
||||
|
||||
2. Update Red with this command:
|
||||
|
||||
.. code:: none
|
||||
|
||||
python -m pip install -U Red-DiscordBot
|
||||
|
||||
.. attention::
|
||||
|
||||
If you're using PostgreSQL data backend, replace ``Red-DiscordBot`` in the second command with ``Red-DiscordBot[postgres]``
|
||||
|
||||
Linux & Mac
|
||||
-----------
|
||||
|
||||
If you have Red 3.2.0 or newer, all you have to do to upgrade Red is running 2 commands.
|
||||
|
||||
1. Activate your virtual environment.
|
||||
|
||||
If you used ``venv`` for your virtual environment, use:
|
||||
|
||||
.. code:: none
|
||||
|
||||
source ~/redenv/bin/activate
|
||||
|
||||
If you used ``pyenv`` for your virtual environment, use:
|
||||
|
||||
.. code:: none
|
||||
|
||||
pyenv shell <name>
|
||||
|
||||
2. Update Red with this command:
|
||||
|
||||
.. code:: none
|
||||
|
||||
python -m pip install -U Red-DiscordBot
|
||||
|
||||
.. attention::
|
||||
|
||||
If you're using PostgreSQL data backend, replace ``Red-DiscordBot`` in the second command with ``Red-DiscordBot[postgres]``
|
||||
|
||||
|
||||
Red 3.1.X
|
||||
*********
|
||||
|
||||
If you have Red 3.1.X, you will need to follow the install instructions for your operating system:
|
||||
|
||||
- `Windows <install_windows>`
|
||||
- `Linux & Mac <install_linux_mac>`
|
||||
|
||||
Follow every step to ensure you have all dependencies up-to-date and only skip ``redbot-setup`` step as you already have a bot instance.
|
||||
|
||||
If you already have Red installed in a virtual environment, you will need to delete it before starting this process.
|
||||
|
||||
.. attention::
|
||||
|
||||
Red 3.2 dropped support for the MongoDB driver
|
||||
|
||||
- If you were not using the MongoDB driver, this does not affect you.
|
||||
- If you were using a 3rd party cog which required MongoDB, it probably still does.
|
||||
- If you were using the MongoDB driver, **prior to launching your instance after update**,
|
||||
you will need to run the following commands to convert:
|
||||
|
||||
.. code::
|
||||
|
||||
python -m pip install dnspython~=1.16.0 motor~=2.0.0 pymongo~=3.8.0
|
||||
redbot-setup convert [instancename] json
|
||||
|
||||
|
||||
Red 3.0.2 and older
|
||||
*******************
|
||||
|
||||
.. important::
|
||||
|
||||
Red 3.2 dropped support for the MongoDB driver
|
||||
|
||||
- If you were not using the MongoDB driver, this does not affect you.
|
||||
- If you were using a 3rd party cog which required MongoDB, it probably still does.
|
||||
- If you were using the MongoDB driver, **prior to updating**, you will need to convert your data to JSON backend,
|
||||
using following command:
|
||||
|
||||
.. code::
|
||||
|
||||
redbot-setup --edit
|
||||
|
||||
If you have Red 3.0.2 or older, you will need to follow the install instructions for your operating system:
|
||||
|
||||
- `Windows <install_windows>`
|
||||
- `Linux & Mac <install_linux_mac>`
|
||||
|
||||
Follow every step to ensure you have all dependencies up-to-date and only skip ``redbot-setup`` step as you already have a bot instance.
|
||||
|
||||
If you already have Red installed in a virtual environment, you will need to delete it before starting this process.
|
||||
@@ -191,7 +191,7 @@ def _update_event_loop_policy():
|
||||
_asyncio.set_event_loop_policy(_uvloop.EventLoopPolicy())
|
||||
|
||||
|
||||
__version__ = "3.3.4"
|
||||
__version__ = "3.3.6"
|
||||
version_info = VersionInfo.from_str(__version__)
|
||||
|
||||
# Filter fuzzywuzzy slow sequence matcher warning
|
||||
|
||||
@@ -70,11 +70,11 @@ class Admin(commands.Cog):
|
||||
"""A collection of server administration utilities."""
|
||||
|
||||
def __init__(self):
|
||||
self.conf = Config.get_conf(self, 8237492837454039, force_registration=True)
|
||||
self.config = Config.get_conf(self, 8237492837454039, force_registration=True)
|
||||
|
||||
self.conf.register_global(serverlocked=False)
|
||||
self.config.register_global(serverlocked=False)
|
||||
|
||||
self.conf.register_guild(
|
||||
self.config.register_guild(
|
||||
announce_ignore=False,
|
||||
announce_channel=None, # Integer ID
|
||||
selfroles=[], # List of integer ID's
|
||||
@@ -290,7 +290,7 @@ class Admin(commands.Cog):
|
||||
async def announce(self, ctx: commands.Context, *, message: str):
|
||||
"""Announce a message to all servers the bot is in."""
|
||||
if not self.is_announcing():
|
||||
announcer = Announcer(ctx, message, config=self.conf)
|
||||
announcer = Announcer(ctx, message, config=self.config)
|
||||
announcer.start()
|
||||
|
||||
self.__current_announcer = announcer
|
||||
@@ -325,7 +325,7 @@ class Admin(commands.Cog):
|
||||
"""
|
||||
if channel is None:
|
||||
channel = ctx.channel
|
||||
await self.conf.guild(ctx.guild).announce_channel.set(channel.id)
|
||||
await self.config.guild(ctx.guild).announce_channel.set(channel.id)
|
||||
await ctx.send(
|
||||
_("The announcement channel has been set to {channel.mention}").format(channel=channel)
|
||||
)
|
||||
@@ -333,8 +333,8 @@ class Admin(commands.Cog):
|
||||
@announceset.command(name="ignore")
|
||||
async def announceset_ignore(self, ctx):
|
||||
"""Toggle announcements being enabled this server."""
|
||||
ignored = await self.conf.guild(ctx.guild).announce_ignore()
|
||||
await self.conf.guild(ctx.guild).announce_ignore.set(not ignored)
|
||||
ignored = await self.config.guild(ctx.guild).announce_ignore()
|
||||
await self.config.guild(ctx.guild).announce_ignore.set(not ignored)
|
||||
if ignored:
|
||||
await ctx.send(
|
||||
_("The server {guild.name} will receive announcements.").format(guild=ctx.guild)
|
||||
@@ -352,14 +352,14 @@ class Admin(commands.Cog):
|
||||
:param guild:
|
||||
:return:
|
||||
"""
|
||||
selfrole_ids = set(await self.conf.guild(guild).selfroles())
|
||||
selfrole_ids = set(await self.config.guild(guild).selfroles())
|
||||
guild_roles = guild.roles
|
||||
|
||||
valid_roles = tuple(r for r in guild_roles if r.id in selfrole_ids)
|
||||
valid_role_ids = set(r.id for r in valid_roles)
|
||||
|
||||
if selfrole_ids != valid_role_ids:
|
||||
await self.conf.guild(guild).selfroles.set(list(valid_role_ids))
|
||||
await self.config.guild(guild).selfroles.set(list(valid_role_ids))
|
||||
|
||||
# noinspection PyTypeChecker
|
||||
return valid_roles
|
||||
@@ -427,7 +427,7 @@ class Admin(commands.Cog):
|
||||
).format(role=role)
|
||||
)
|
||||
return
|
||||
async with self.conf.guild(ctx.guild).selfroles() as curr_selfroles:
|
||||
async with self.config.guild(ctx.guild).selfroles() as curr_selfroles:
|
||||
if role.id not in curr_selfroles:
|
||||
curr_selfroles.append(role.id)
|
||||
await ctx.send(_("Added."))
|
||||
@@ -449,7 +449,7 @@ class Admin(commands.Cog):
|
||||
).format(role=role)
|
||||
)
|
||||
return
|
||||
async with self.conf.guild(ctx.guild).selfroles() as curr_selfroles:
|
||||
async with self.config.guild(ctx.guild).selfroles() as curr_selfroles:
|
||||
curr_selfroles.remove(role.id)
|
||||
|
||||
await ctx.send(_("Removed."))
|
||||
@@ -458,8 +458,8 @@ class Admin(commands.Cog):
|
||||
@checks.is_owner()
|
||||
async def serverlock(self, ctx: commands.Context):
|
||||
"""Lock a bot to its current servers only."""
|
||||
serverlocked = await self.conf.serverlocked()
|
||||
await self.conf.serverlocked.set(not serverlocked)
|
||||
serverlocked = await self.config.serverlocked()
|
||||
await self.config.serverlocked.set(not serverlocked)
|
||||
|
||||
if serverlocked:
|
||||
await ctx.send(_("The bot is no longer serverlocked."))
|
||||
@@ -468,7 +468,7 @@ class Admin(commands.Cog):
|
||||
|
||||
# region Event Handlers
|
||||
async def on_guild_join(self, guild: discord.Guild):
|
||||
if await self.conf.serverlocked():
|
||||
if await self.config.serverlocked():
|
||||
await guild.leave()
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ import asyncio
|
||||
import discord
|
||||
from redbot.core import commands
|
||||
from redbot.core.i18n import Translator
|
||||
from redbot.core.utils import AsyncIter
|
||||
from redbot.core.utils.chat_formatting import humanize_list, inline
|
||||
|
||||
_ = Translator("Announcer", __file__)
|
||||
@@ -55,7 +56,7 @@ class Announcer:
|
||||
async def announcer(self):
|
||||
guild_list = self.ctx.bot.guilds
|
||||
failed = []
|
||||
for g in guild_list:
|
||||
async for g in AsyncIter(guild_list, delay=0.5):
|
||||
if not self.active:
|
||||
return
|
||||
|
||||
@@ -68,7 +69,6 @@ class Announcer:
|
||||
await channel.send(self.message)
|
||||
except discord.Forbidden:
|
||||
failed.append(str(g.id))
|
||||
await asyncio.sleep(0.5)
|
||||
|
||||
if failed:
|
||||
msg = (
|
||||
|
||||
@@ -14,8 +14,7 @@ class SelfRole(commands.Converter):
|
||||
role_converter = commands.RoleConverter()
|
||||
role = await role_converter.convert(ctx, arg)
|
||||
|
||||
conf = admin.conf
|
||||
selfroles = await conf.guild(ctx.guild).selfroles()
|
||||
selfroles = await admin.config.guild(ctx.guild).selfroles()
|
||||
|
||||
if role.id not in selfroles:
|
||||
raise commands.BadArgument(_("The provided role is not a valid selfrole."))
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:11\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Afrikaans\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: af\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: af_ZA\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:11\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Arabic\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ar\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ar_SA\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "لم يتم تحميل وحدة الأدمن cog."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "الرتبة المذكورة ليست على قائمة الرتب الذاتية."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:11\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: bg\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: bg_BG\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:11\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Catalan\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ca\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ca_ES\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-03-05 12:11\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Czech\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: cs\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: cs_CZ\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -158,7 +156,7 @@ msgstr "Aplikovat self-role."
|
||||
#: redbot/cogs/admin/admin.py:375
|
||||
#, docstring
|
||||
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr "\\n Odstraní vám self-roli.\\n\\n Administrátoři serveru musí mít nastavenou roli podle nastaveného uživatele.\\n POZNÁMKA: Role je citlivá na malá a velká písmena!\\n "
|
||||
msgstr "\\n Přidá vám self-roli.\\n\\n Administrátoři serveru musí mít nastavenou roli podle nastaveného uživatele.\\n POZNÁMKA: Role je citlivá na malá a velká písmena!\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:386
|
||||
#, docstring
|
||||
@@ -234,7 +232,7 @@ msgstr "Nemohu oznámit následujícím serverům: "
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Admin cog není načten."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Daná role není platná self-role."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:12\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Danish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: da\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: da_DK\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: German\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: de\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: de_DE\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr "Ich konnte die Ankündigung auf diesen Servern nicht ausführen: "
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Das Admin-Cog ist nicht geladen."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Die angegebene Rolle ist keine gültige selbst auswählbare Rolle."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:13\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Greek\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: el\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: el_GR\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:16\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: es-ES\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: es_ES\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "El cog Admin no está cargado."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "El rol proporcionado no es un selfrole válido."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:13\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Finnish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: fi\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: fi_FI\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-03-12 12:12\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: French\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: fr\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: fr_FR\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr "Je n'ai pas pu annoncer aux serveurs suivants : "
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Le cog Admin n'est pas chargé."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Le rôle fourni n'est pas un auto-rôle valide."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:13\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Hebrew\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: he\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: he_IL\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:13\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: hu\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: hu_HU\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:14\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: id\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: id_ID\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:14\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Italian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: it\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: it_IT\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Il cog Admin non è caricato."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Il ruolo fornito non è un ruolo autoassegnabile valido."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:14\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Japanese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ja\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ja_JP\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:14\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Korean\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ko\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ko_KR\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -190,7 +188,7 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:433
|
||||
msgid "Added."
|
||||
msgstr ""
|
||||
msgstr "추가됐어요."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:436
|
||||
msgid "That role is already a selfrole."
|
||||
@@ -207,7 +205,7 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:455
|
||||
msgid "Removed."
|
||||
msgstr ""
|
||||
msgstr "제거됐어요."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:460
|
||||
#, docstring
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:12\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Dutch\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: nl\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: nl_NL\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr "Ik kon de volgende servers niet aankondigen: "
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "De admin cog is niet geladen."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "De ingevulde rol is geen beschikbare selfrole."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:14\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: no\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: no_NO\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:14\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Polish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"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: red-discordbot\n"
|
||||
"X-Crowdin-Language: pl\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: pl_PL\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Moduł Admin nie jest załadowany."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-03-26 12:56\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: pt-BR\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: pt_BR\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -232,9 +230,9 @@ msgstr "Não pude anunciar nos seguintes servidores: "
|
||||
|
||||
#: redbot/cogs/admin/converters.py:12
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "A engrenagem Admin não está carregada."
|
||||
msgstr "O cog 'Admin' não está carregado."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "O cargo fornecido não é um cargo autoatribuível válido."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:15\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Portuguese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: pt-PT\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: pt_PT\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "O cog 'Admin' não está carregado."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "O cargo indicado não é um cargo definível válido."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:15\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Romanian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ro\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ro_RO\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-03-05 12:14\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"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: red-discordbot\n"
|
||||
"X-Crowdin-Language: ru\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ru_RU\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr "Я не могу сделать объявление на следующ
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Модуль Admin не загружен."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Предоставленная роль не является допустимой ролью."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:16\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Slovak\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,16 +11,15 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: sk\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: sk_SK\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
msgstr "Pokúsil som sa urobiť niečo, pre čo mi Discord odoprel povolenie. Váš príkaz sa nepodarilo úspešne dokončiť."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
|
||||
msgstr ""
|
||||
msgstr "Nemôžem dať {role.name} na {member.display_name} pretože táto rola je vyššia alebo rovná mojej najvyššej rolí v Discord hierarchií."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:28
|
||||
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
|
||||
@@ -49,20 +47,22 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:60
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
msgstr "Už niečo oznamujem. Ak by ste chceli urobiť iné oznámenie, prosím, najskôr použite `{prefix} oznámiť zrušenie`."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:70
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
"Zbierka obslužných programov pre správu servera."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:126
|
||||
msgid "{member.display_name} already has the role {role.name}."
|
||||
msgstr ""
|
||||
msgstr "{member.display_name} už má rolu {role.name}."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:146
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
"Úspešne som pridal {role.name} do {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:156
|
||||
msgid "{member.display_name} does not have the role {role.name}."
|
||||
@@ -234,7 +234,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:15\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Serbian (Cyrillic)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: sr\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: sr_SP\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:16\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Swedish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: sv-SE\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: sv_SE\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Admin cog är inte laddad."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Den angivna rollen är inte en giltig självroll."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:16\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Turkish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: tr\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: tr_TR\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "The Admin eklentisi yüklenmedi."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Girilen selfrol geçerli değil."
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:16\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"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: red-discordbot\n"
|
||||
"X-Crowdin-Language: uk\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: uk_UA\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:16\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Vietnamese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: vi\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: vi_VN\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:11\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: zh-CN\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: zh_CN\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:12\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese Traditional, Hong Kong\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: zh-HK\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: zh_HK\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:12\n"
|
||||
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese Traditional\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: zh-TW\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: zh_TW\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
@@ -234,7 +232,7 @@ msgstr ""
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:21
|
||||
#: redbot/cogs/admin/converters.py:20
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,5 +2,7 @@ from .alias import Alias
|
||||
from redbot.core.bot import Red
|
||||
|
||||
|
||||
def setup(bot: Red):
|
||||
bot.add_cog(Alias(bot))
|
||||
async def setup(bot: Red):
|
||||
cog = Alias(bot)
|
||||
await cog.initialize()
|
||||
bot.add_cog(cog)
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
from copy import copy
|
||||
from re import findall, search
|
||||
from re import search
|
||||
from string import Formatter
|
||||
from typing import Generator, Tuple, Iterable, Optional
|
||||
from typing import Dict
|
||||
|
||||
import discord
|
||||
from discord.ext.commands.view import StringView
|
||||
from redbot.core import Config, commands, checks
|
||||
from redbot.core.i18n import Translator, cog_i18n
|
||||
from redbot.core.utils.chat_formatting import box
|
||||
|
||||
from redbot.core.bot import Red
|
||||
from .alias_entry import AliasEntry
|
||||
from .alias_entry import AliasEntry, AliasCache, ArgParseError
|
||||
|
||||
_ = Translator("Alias", __file__)
|
||||
|
||||
@@ -26,10 +25,6 @@ class _TrackingFormatter(Formatter):
|
||||
return super().get_value(key, args, kwargs)
|
||||
|
||||
|
||||
class ArgParseError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
@cog_i18n(_)
|
||||
class Alias(commands.Cog):
|
||||
"""Create aliases for commands.
|
||||
@@ -42,51 +37,23 @@ class Alias(commands.Cog):
|
||||
and append them to the stored alias.
|
||||
"""
|
||||
|
||||
default_global_settings = {"entries": []}
|
||||
default_global_settings: Dict[str, list] = {"entries": []}
|
||||
|
||||
default_guild_settings = {"enabled": False, "entries": []} # Going to be a list of dicts
|
||||
default_guild_settings: Dict[str, list] = {"entries": []} # Going to be a list of dicts
|
||||
|
||||
def __init__(self, bot: Red):
|
||||
super().__init__()
|
||||
self.bot = bot
|
||||
self._aliases = Config.get_conf(self, 8927348724)
|
||||
self.config = Config.get_conf(self, 8927348724)
|
||||
|
||||
self._aliases.register_global(**self.default_global_settings)
|
||||
self._aliases.register_guild(**self.default_guild_settings)
|
||||
self.config.register_global(**self.default_global_settings)
|
||||
self.config.register_guild(**self.default_guild_settings)
|
||||
self._aliases: AliasCache = AliasCache(config=self.config, cache_enabled=True)
|
||||
|
||||
async def unloaded_aliases(self, guild: discord.Guild) -> Generator[AliasEntry, None, None]:
|
||||
return (AliasEntry.from_json(d) for d in (await self._aliases.guild(guild).entries()))
|
||||
|
||||
async def unloaded_global_aliases(self) -> Generator[AliasEntry, None, None]:
|
||||
return (AliasEntry.from_json(d) for d in (await self._aliases.entries()))
|
||||
|
||||
async def loaded_aliases(self, guild: discord.Guild) -> Generator[AliasEntry, None, None]:
|
||||
return (
|
||||
AliasEntry.from_json(d, bot=self.bot)
|
||||
for d in (await self._aliases.guild(guild).entries())
|
||||
)
|
||||
|
||||
async def loaded_global_aliases(self) -> Generator[AliasEntry, None, None]:
|
||||
return (AliasEntry.from_json(d, bot=self.bot) for d in (await self._aliases.entries()))
|
||||
|
||||
async def is_alias(
|
||||
self,
|
||||
guild: Optional[discord.Guild],
|
||||
alias_name: str,
|
||||
server_aliases: Iterable[AliasEntry] = (),
|
||||
) -> Tuple[bool, Optional[AliasEntry]]:
|
||||
|
||||
if not server_aliases and guild is not None:
|
||||
server_aliases = await self.unloaded_aliases(guild)
|
||||
|
||||
global_aliases = await self.unloaded_global_aliases()
|
||||
|
||||
for aliases in (server_aliases, global_aliases):
|
||||
for alias in aliases:
|
||||
if alias.name == alias_name:
|
||||
return True, alias
|
||||
|
||||
return False, None
|
||||
async def initialize(self):
|
||||
# This can be where we set the cache_enabled attribute later
|
||||
if not self._aliases._loaded:
|
||||
await self._aliases.load_aliases()
|
||||
|
||||
def is_command(self, alias_name: str) -> bool:
|
||||
"""
|
||||
@@ -100,56 +67,6 @@ class Alias(commands.Cog):
|
||||
def is_valid_alias_name(alias_name: str) -> bool:
|
||||
return not bool(search(r"\s", alias_name)) and alias_name.isprintable()
|
||||
|
||||
async def add_alias(
|
||||
self, ctx: commands.Context, alias_name: str, command: str, global_: bool = False
|
||||
) -> AliasEntry:
|
||||
indices = findall(r"{(\d*)}", command)
|
||||
if indices:
|
||||
try:
|
||||
indices = [int(a[0]) for a in indices]
|
||||
except IndexError:
|
||||
raise ArgParseError(_("Arguments must be specified with a number."))
|
||||
low = min(indices)
|
||||
indices = [a - low for a in indices]
|
||||
high = max(indices)
|
||||
gaps = set(indices).symmetric_difference(range(high + 1))
|
||||
if gaps:
|
||||
raise ArgParseError(
|
||||
_("Arguments must be sequential. Missing arguments: ")
|
||||
+ ", ".join(str(i + low) for i in gaps)
|
||||
)
|
||||
command = command.format(*(f"{{{i}}}" for i in range(-low, high + low + 1)))
|
||||
|
||||
alias = AliasEntry(alias_name, command, ctx.author, global_=global_)
|
||||
|
||||
if global_:
|
||||
settings = self._aliases
|
||||
else:
|
||||
settings = self._aliases.guild(ctx.guild)
|
||||
await settings.enabled.set(True)
|
||||
|
||||
async with settings.entries() as curr_aliases:
|
||||
curr_aliases.append(alias.to_json())
|
||||
|
||||
return alias
|
||||
|
||||
async def delete_alias(
|
||||
self, ctx: commands.Context, alias_name: str, global_: bool = False
|
||||
) -> bool:
|
||||
if global_:
|
||||
settings = self._aliases
|
||||
else:
|
||||
settings = self._aliases.guild(ctx.guild)
|
||||
|
||||
async with settings.entries() as aliases:
|
||||
for alias in aliases:
|
||||
alias_obj = AliasEntry.from_json(alias)
|
||||
if alias_obj.name == alias_name:
|
||||
aliases.remove(alias)
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
async def get_prefix(self, message: discord.Message) -> str:
|
||||
"""
|
||||
Tries to determine what prefix is used in a message object.
|
||||
@@ -167,57 +84,11 @@ class Alias(commands.Cog):
|
||||
return p
|
||||
raise ValueError(_("No prefix found."))
|
||||
|
||||
def get_extra_args_from_alias(
|
||||
self, message: discord.Message, prefix: str, alias: AliasEntry
|
||||
) -> str:
|
||||
"""
|
||||
When an alias is executed by a user in chat this function tries
|
||||
to get any extra arguments passed in with the call.
|
||||
Whitespace will be trimmed from both ends.
|
||||
:param message:
|
||||
:param prefix:
|
||||
:param alias:
|
||||
:return:
|
||||
"""
|
||||
known_content_length = len(prefix) + len(alias.name)
|
||||
extra = message.content[known_content_length:]
|
||||
view = StringView(extra)
|
||||
view.skip_ws()
|
||||
extra = []
|
||||
while not view.eof:
|
||||
prev = view.index
|
||||
word = view.get_quoted_word()
|
||||
if len(word) < view.index - prev:
|
||||
word = "".join((view.buffer[prev], word, view.buffer[view.index - 1]))
|
||||
extra.append(word)
|
||||
view.skip_ws()
|
||||
return extra
|
||||
|
||||
async def maybe_call_alias(
|
||||
self, message: discord.Message, aliases: Iterable[AliasEntry] = None
|
||||
):
|
||||
try:
|
||||
prefix = await self.get_prefix(message)
|
||||
except ValueError:
|
||||
return
|
||||
|
||||
try:
|
||||
potential_alias = message.content[len(prefix) :].split(" ")[0]
|
||||
except IndexError:
|
||||
return False
|
||||
|
||||
is_alias, alias = await self.is_alias(
|
||||
message.guild, potential_alias, server_aliases=aliases
|
||||
)
|
||||
|
||||
if is_alias:
|
||||
await self.call_alias(message, prefix, alias)
|
||||
|
||||
async def call_alias(self, message: discord.Message, prefix: str, alias: AliasEntry):
|
||||
new_message = copy(message)
|
||||
try:
|
||||
args = self.get_extra_args_from_alias(message, prefix, alias)
|
||||
except commands.BadArgument as bae:
|
||||
args = alias.get_extra_args_from_alias(message, prefix)
|
||||
except commands.BadArgument:
|
||||
return
|
||||
|
||||
trackform = _TrackingFormatter()
|
||||
@@ -257,8 +128,8 @@ class Alias(commands.Cog):
|
||||
)
|
||||
return
|
||||
|
||||
is_alias, something_useless = await self.is_alias(ctx.guild, alias_name)
|
||||
if is_alias:
|
||||
alias = await self._aliases.get_alias(ctx.guild, alias_name)
|
||||
if alias:
|
||||
await ctx.send(
|
||||
_(
|
||||
"You attempted to create a new alias"
|
||||
@@ -280,7 +151,7 @@ class Alias(commands.Cog):
|
||||
)
|
||||
return
|
||||
|
||||
given_command_exists = self.bot.get_command(command) is not None
|
||||
given_command_exists = self.bot.get_command(command.split(maxsplit=1)[0]) is not None
|
||||
if not given_command_exists:
|
||||
await ctx.send(
|
||||
_("You attempted to create a new alias for a command that doesn't exist.")
|
||||
@@ -292,7 +163,7 @@ class Alias(commands.Cog):
|
||||
# and that the alias name is valid.
|
||||
|
||||
try:
|
||||
await self.add_alias(ctx, alias_name, command)
|
||||
await self._aliases.add_alias(ctx, alias_name, command)
|
||||
except ArgParseError as e:
|
||||
return await ctx.send(" ".join(e.args))
|
||||
|
||||
@@ -316,8 +187,8 @@ class Alias(commands.Cog):
|
||||
)
|
||||
return
|
||||
|
||||
is_alias, something_useless = await self.is_alias(ctx.guild, alias_name)
|
||||
if is_alias:
|
||||
alias = await self._aliases.get_alias(ctx.guild, alias_name)
|
||||
if alias:
|
||||
await ctx.send(
|
||||
_(
|
||||
"You attempted to create a new global alias"
|
||||
@@ -341,7 +212,7 @@ class Alias(commands.Cog):
|
||||
# endregion
|
||||
|
||||
try:
|
||||
await self.add_alias(ctx, alias_name, command, global_=True)
|
||||
await self._aliases.add_alias(ctx, alias_name, command, global_=True)
|
||||
except ArgParseError as e:
|
||||
return await ctx.send(" ".join(e.args))
|
||||
|
||||
@@ -355,8 +226,8 @@ class Alias(commands.Cog):
|
||||
@commands.guild_only()
|
||||
async def _help_alias(self, ctx: commands.Context, alias_name: str):
|
||||
"""Try to execute help for the base command of the alias."""
|
||||
is_alias, alias = await self.is_alias(ctx.guild, alias_name=alias_name)
|
||||
if is_alias:
|
||||
alias = await self._aliases.get_alias(ctx.guild, alias_name=alias_name)
|
||||
if alias:
|
||||
if self.is_command(alias.command):
|
||||
base_cmd = alias.command
|
||||
else:
|
||||
@@ -372,9 +243,9 @@ class Alias(commands.Cog):
|
||||
@commands.guild_only()
|
||||
async def _show_alias(self, ctx: commands.Context, alias_name: str):
|
||||
"""Show what command the alias executes."""
|
||||
is_alias, alias = await self.is_alias(ctx.guild, alias_name)
|
||||
alias = await self._aliases.get_alias(ctx.guild, alias_name)
|
||||
|
||||
if is_alias:
|
||||
if alias:
|
||||
await ctx.send(
|
||||
_("The `{alias_name}` alias will execute the command `{command}`").format(
|
||||
alias_name=alias_name, command=alias.command
|
||||
@@ -388,14 +259,11 @@ class Alias(commands.Cog):
|
||||
@commands.guild_only()
|
||||
async def _del_alias(self, ctx: commands.Context, alias_name: str):
|
||||
"""Delete an existing alias on this server."""
|
||||
aliases = await self.unloaded_aliases(ctx.guild)
|
||||
try:
|
||||
next(aliases)
|
||||
except StopIteration:
|
||||
if not await self._aliases.get_guild_aliases(ctx.guild):
|
||||
await ctx.send(_("There are no aliases on this server."))
|
||||
return
|
||||
|
||||
if await self.delete_alias(ctx, alias_name):
|
||||
if await self._aliases.delete_alias(ctx, alias_name):
|
||||
await ctx.send(
|
||||
_("Alias with the name `{name}` was successfully deleted.").format(name=alias_name)
|
||||
)
|
||||
@@ -406,14 +274,11 @@ class Alias(commands.Cog):
|
||||
@global_.command(name="delete", aliases=["del", "remove"])
|
||||
async def _del_global_alias(self, ctx: commands.Context, alias_name: str):
|
||||
"""Delete an existing global alias."""
|
||||
aliases = await self.unloaded_global_aliases()
|
||||
try:
|
||||
next(aliases)
|
||||
except StopIteration:
|
||||
await ctx.send(_("There are no aliases on this bot."))
|
||||
if not await self._aliases.get_global_aliases():
|
||||
await ctx.send(_("There are no global aliases on this bot."))
|
||||
return
|
||||
|
||||
if await self.delete_alias(ctx, alias_name, global_=True):
|
||||
if await self._aliases.delete_alias(ctx, alias_name, global_=True):
|
||||
await ctx.send(
|
||||
_("Alias with the name `{name}` was successfully deleted.").format(name=alias_name)
|
||||
)
|
||||
@@ -424,32 +289,34 @@ class Alias(commands.Cog):
|
||||
@commands.guild_only()
|
||||
async def _list_alias(self, ctx: commands.Context):
|
||||
"""List the available aliases on this server."""
|
||||
names = [_("Aliases:")] + sorted(
|
||||
["+ " + a.name for a in (await self.unloaded_aliases(ctx.guild))]
|
||||
)
|
||||
if len(names) == 0:
|
||||
await ctx.send(_("There are no aliases on this server."))
|
||||
else:
|
||||
await ctx.send(box("\n".join(names), "diff"))
|
||||
guild_aliases = await self._aliases.get_guild_aliases(ctx.guild)
|
||||
if not guild_aliases:
|
||||
return await ctx.send(_("There are no aliases on this server."))
|
||||
names = [_("Aliases:")] + sorted(["+ " + a.name for a in guild_aliases])
|
||||
await ctx.send(box("\n".join(names), "diff"))
|
||||
|
||||
@global_.command(name="list")
|
||||
async def _list_global_alias(self, ctx: commands.Context):
|
||||
"""List the available global aliases on this bot."""
|
||||
names = [_("Aliases:")] + sorted(
|
||||
["+ " + a.name for a in await self.unloaded_global_aliases()]
|
||||
)
|
||||
if len(names) == 0:
|
||||
await ctx.send(_("There are no aliases on this server."))
|
||||
else:
|
||||
await ctx.send(box("\n".join(names), "diff"))
|
||||
global_aliases = await self._aliases.get_global_aliases()
|
||||
if not global_aliases:
|
||||
return await ctx.send(_("There are no global aliases."))
|
||||
names = [_("Aliases:")] + sorted(["+ " + a.name for a in global_aliases])
|
||||
await ctx.send(box("\n".join(names), "diff"))
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_message(self, message: discord.Message):
|
||||
aliases = list(await self.unloaded_global_aliases())
|
||||
if message.guild is not None:
|
||||
aliases = aliases + list(await self.unloaded_aliases(message.guild))
|
||||
|
||||
if len(aliases) == 0:
|
||||
async def on_message_without_command(self, message: discord.Message):
|
||||
try:
|
||||
prefix = await self.get_prefix(message)
|
||||
except ValueError:
|
||||
return
|
||||
|
||||
await self.maybe_call_alias(message, aliases=aliases)
|
||||
try:
|
||||
potential_alias = message.content[len(prefix) :].split(" ")[0]
|
||||
except IndexError:
|
||||
return
|
||||
|
||||
alias = await self._aliases.get_alias(message.guild, potential_alias)
|
||||
|
||||
if alias:
|
||||
await self.call_alias(message, prefix, alias)
|
||||
|
||||
@@ -1,25 +1,37 @@
|
||||
from typing import Tuple
|
||||
from typing import Tuple, Dict, Optional, List, Union
|
||||
from re import findall
|
||||
|
||||
import discord
|
||||
from redbot.core import commands
|
||||
from discord.ext.commands.view import StringView
|
||||
from redbot.core import commands, Config
|
||||
from redbot.core.i18n import Translator
|
||||
from redbot.core.utils import AsyncIter
|
||||
|
||||
_ = Translator("Alias", __file__)
|
||||
|
||||
|
||||
class ArgParseError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class AliasEntry:
|
||||
"""An object containing all required information about an alias"""
|
||||
|
||||
name: str
|
||||
command: Union[Tuple[str], str]
|
||||
creator: int
|
||||
guild: Optional[int]
|
||||
uses: int
|
||||
|
||||
def __init__(
|
||||
self, name: str, command: Tuple[str], creator: discord.Member, global_: bool = False
|
||||
self, name: str, command: Union[Tuple[str], str], creator: int, guild: Optional[int],
|
||||
):
|
||||
super().__init__()
|
||||
self.has_real_data = False
|
||||
self.name = name
|
||||
self.command = command
|
||||
self.creator = creator
|
||||
|
||||
self.global_ = global_
|
||||
|
||||
self.guild = None
|
||||
if hasattr(creator, "guild"):
|
||||
self.guild = creator.guild
|
||||
|
||||
self.guild = guild
|
||||
self.uses = 0
|
||||
|
||||
def inc(self):
|
||||
@@ -30,34 +42,182 @@ class AliasEntry:
|
||||
self.uses += 1
|
||||
return self.uses
|
||||
|
||||
def get_extra_args_from_alias(self, message: discord.Message, prefix: str) -> str:
|
||||
"""
|
||||
When an alias is executed by a user in chat this function tries
|
||||
to get any extra arguments passed in with the call.
|
||||
Whitespace will be trimmed from both ends.
|
||||
:param message:
|
||||
:param prefix:
|
||||
:param alias:
|
||||
:return:
|
||||
"""
|
||||
known_content_length = len(prefix) + len(self.name)
|
||||
extra = message.content[known_content_length:]
|
||||
view = StringView(extra)
|
||||
view.skip_ws()
|
||||
extra = []
|
||||
while not view.eof:
|
||||
prev = view.index
|
||||
word = view.get_quoted_word()
|
||||
if len(word) < view.index - prev:
|
||||
word = "".join((view.buffer[prev], word, view.buffer[view.index - 1]))
|
||||
extra.append(word)
|
||||
view.skip_ws()
|
||||
return extra
|
||||
|
||||
def to_json(self) -> dict:
|
||||
try:
|
||||
creator = str(self.creator.id)
|
||||
guild = str(self.guild.id)
|
||||
except AttributeError:
|
||||
creator = self.creator
|
||||
guild = self.guild
|
||||
|
||||
return {
|
||||
"name": self.name,
|
||||
"command": self.command,
|
||||
"creator": creator,
|
||||
"guild": guild,
|
||||
"global": self.global_,
|
||||
"creator": self.creator,
|
||||
"guild": self.guild,
|
||||
"uses": self.uses,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_json(cls, data: dict, bot: commands.Bot = None):
|
||||
ret = cls(data["name"], data["command"], data["creator"], global_=data["global"])
|
||||
|
||||
if bot:
|
||||
ret.has_real_data = True
|
||||
ret.creator = bot.get_user(int(data["creator"]))
|
||||
guild = bot.get_guild(int(data["guild"]))
|
||||
ret.guild = guild
|
||||
else:
|
||||
ret.guild = data["guild"]
|
||||
|
||||
def from_json(cls, data: dict):
|
||||
ret = cls(data["name"], data["command"], data["creator"], data["guild"])
|
||||
ret.uses = data.get("uses", 0)
|
||||
return ret
|
||||
|
||||
|
||||
class AliasCache:
|
||||
def __init__(self, config: Config, cache_enabled: bool = True):
|
||||
self.config = config
|
||||
self._cache_enabled = cache_enabled
|
||||
self._loaded = False
|
||||
self._aliases: Dict[Optional[int], Dict[str, AliasEntry]] = {None: {}}
|
||||
|
||||
async def load_aliases(self):
|
||||
if not self._cache_enabled:
|
||||
self._loaded = True
|
||||
return
|
||||
for alias in await self.config.entries():
|
||||
self._aliases[None][alias["name"]] = AliasEntry.from_json(alias)
|
||||
|
||||
all_guilds = await self.config.all_guilds()
|
||||
async for guild_id, guild_data in AsyncIter(all_guilds.items(), steps=100):
|
||||
if guild_id not in self._aliases:
|
||||
self._aliases[guild_id] = {}
|
||||
for alias in guild_data["entries"]:
|
||||
self._aliases[guild_id][alias["name"]] = AliasEntry.from_json(alias)
|
||||
self._loaded = True
|
||||
|
||||
async def get_aliases(self, ctx: commands.Context) -> List[AliasEntry]:
|
||||
"""Returns all possible aliases with the given context"""
|
||||
global_aliases: List[AliasEntry] = []
|
||||
server_aliases: List[AliasEntry] = []
|
||||
global_aliases = await self.get_global_aliases()
|
||||
if ctx.guild and ctx.guild.id in self._aliases:
|
||||
server_aliases = await self.get_guild_aliases(ctx.guild)
|
||||
return global_aliases + server_aliases
|
||||
|
||||
async def get_guild_aliases(self, guild: discord.Guild) -> List[AliasEntry]:
|
||||
"""Returns all guild specific aliases"""
|
||||
aliases: List[AliasEntry] = []
|
||||
|
||||
if self._cache_enabled:
|
||||
if guild.id in self._aliases:
|
||||
for _, alias in self._aliases[guild.id].items():
|
||||
aliases.append(alias)
|
||||
else:
|
||||
aliases = [AliasEntry.from_json(d) for d in await self.config.guild(guild).entries()]
|
||||
return aliases
|
||||
|
||||
async def get_global_aliases(self) -> List[AliasEntry]:
|
||||
"""Returns all global specific aliases"""
|
||||
aliases: List[AliasEntry] = []
|
||||
if self._cache_enabled:
|
||||
for _, alias in self._aliases[None].items():
|
||||
aliases.append(alias)
|
||||
else:
|
||||
aliases = [AliasEntry.from_json(d) for d in await self.config.entries()]
|
||||
return aliases
|
||||
|
||||
async def get_alias(
|
||||
self, guild: Optional[discord.Guild], alias_name: str,
|
||||
) -> Optional[AliasEntry]:
|
||||
"""Returns an AliasEntry object if the provided alias_name is a registered alias"""
|
||||
server_aliases: List[AliasEntry] = []
|
||||
|
||||
if self._cache_enabled:
|
||||
if alias_name in self._aliases[None]:
|
||||
return self._aliases[None][alias_name]
|
||||
if guild is not None:
|
||||
if guild.id in self._aliases:
|
||||
if alias_name in self._aliases[guild.id]:
|
||||
return self._aliases[guild.id][alias_name]
|
||||
else:
|
||||
if guild:
|
||||
server_aliases = [
|
||||
AliasEntry.from_json(d) for d in await self.config.guild(guild.id).entries()
|
||||
]
|
||||
global_aliases = [AliasEntry.from_json(d) for d in await self.config.entries()]
|
||||
all_aliases = global_aliases + server_aliases
|
||||
|
||||
for alias in all_aliases:
|
||||
if alias.name == alias_name:
|
||||
return alias
|
||||
|
||||
return None
|
||||
|
||||
async def add_alias(
|
||||
self, ctx: commands.Context, alias_name: str, command: str, global_: bool = False
|
||||
) -> AliasEntry:
|
||||
indices = findall(r"{(\d*)}", command)
|
||||
if indices:
|
||||
try:
|
||||
indices = [int(a[0]) for a in indices]
|
||||
except IndexError:
|
||||
raise ArgParseError(_("Arguments must be specified with a number."))
|
||||
low = min(indices)
|
||||
indices = [a - low for a in indices]
|
||||
high = max(indices)
|
||||
gaps = set(indices).symmetric_difference(range(high + 1))
|
||||
if gaps:
|
||||
raise ArgParseError(
|
||||
_("Arguments must be sequential. Missing arguments: ")
|
||||
+ ", ".join(str(i + low) for i in gaps)
|
||||
)
|
||||
command = command.format(*(f"{{{i}}}" for i in range(-low, high + low + 1)))
|
||||
|
||||
if global_:
|
||||
alias = AliasEntry(alias_name, command, ctx.author.id, None)
|
||||
settings = self.config
|
||||
if self._cache_enabled:
|
||||
self._aliases[None][alias.name] = alias
|
||||
else:
|
||||
alias = AliasEntry(alias_name, command, ctx.author.id, ctx.guild.id)
|
||||
settings = self.config.guild(ctx.guild)
|
||||
if self._cache_enabled:
|
||||
if ctx.guild.id not in self._aliases:
|
||||
self._aliases[ctx.guild.id] = {}
|
||||
self._aliases[ctx.guild.id][alias.name] = alias
|
||||
|
||||
async with settings.entries() as curr_aliases:
|
||||
curr_aliases.append(alias.to_json())
|
||||
|
||||
return alias
|
||||
|
||||
async def delete_alias(
|
||||
self, ctx: commands.Context, alias_name: str, global_: bool = False
|
||||
) -> bool:
|
||||
if global_:
|
||||
settings = self.config
|
||||
else:
|
||||
settings = self.config.guild(ctx.guild)
|
||||
|
||||
async with settings.entries() as aliases:
|
||||
for alias in aliases:
|
||||
if alias["name"] == alias_name:
|
||||
aliases.remove(alias)
|
||||
if self._cache_enabled:
|
||||
if global_:
|
||||
del self._aliases[None][alias_name]
|
||||
else:
|
||||
del self._aliases[ctx.guild.id][alias_name]
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:10\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Afrikaans\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: af\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: af_ZA\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:10\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Arabic\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ar\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: ar_SA\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:10\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: bg\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: bg_BG\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:10\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Catalan\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ca\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: ca_ES\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Czech\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: cs\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: cs_CZ\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Danish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: da\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: da_DK\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: German\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: de\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: de_DE\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Greek\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: el\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: el_GR\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: es-ES\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: es_ES\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Finnish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: fi\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: fi_FI\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: French\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: fr\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: fr_FR\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Hebrew\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: he\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: he_IL\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: hu\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: hu_HU\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: id\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: id_ID\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Italian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: it\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: it_IT\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Japanese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ja\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: ja_JP\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Korean\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,21 +11,20 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ko\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: ko_KR\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
#, docstring
|
||||
msgid "Create aliases for commands.\\n\\n Aliases are alternative names shortcuts for commands. They\\n can act as both a lambda (storing arguments for repeated use)\\n or as simply a shortcut to saying \\\"x y z\\\".\\n\\n When run, aliases will accept any additional arguments\\n and append them to the stored alias.\\n "
|
||||
msgstr ""
|
||||
msgstr "명령어에 대한 별칭을 만들어주세요.\\n\\n 별칭들은 해당 명령어들을 바로 실행할 수 있는 대체적인 이름들이에요. 그것들은\\n 람다(반복되어 사용되는 인수를 저장)\\n 또는 단순히 \\\"x y z\\\"라고 말하는 바로가기 역할을 할 수 있어요.\\n\\n 실행할 시, 별칭들은 추가된 인수들을 승인할거예요.\\n 그리고 저장된 별칭들에 추가할거예요. "
|
||||
|
||||
#: redbot/cogs/alias/alias.py:111
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
msgstr "인수는 숫자로 지정해줘야해요."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:118
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
msgstr "인수는 순차적이어야해요. 미확인된 인수: "
|
||||
|
||||
#: redbot/cogs/alias/alias.py:168
|
||||
msgid "No prefix found."
|
||||
@@ -35,17 +33,17 @@ msgstr "접두사가 발견되지 않았습니다."
|
||||
#: redbot/cogs/alias/alias.py:235
|
||||
#, docstring
|
||||
msgid "Manage command aliases."
|
||||
msgstr ""
|
||||
msgstr "명령어 별칭들을 관리하세요."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:240
|
||||
#, docstring
|
||||
msgid "Manage global aliases."
|
||||
msgstr ""
|
||||
msgstr "글로벌 별칭들을 관리하세요."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:247
|
||||
#, docstring
|
||||
msgid "Add an alias for a command."
|
||||
msgstr ""
|
||||
msgstr "명령어에 대한 별칭을 등록해주세요."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:252
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
|
||||
@@ -70,7 +68,7 @@ msgstr ""
|
||||
#: redbot/cogs/alias/alias.py:306
|
||||
#, docstring
|
||||
msgid "Add a global alias for a command."
|
||||
msgstr ""
|
||||
msgstr "명령어에 대한 글로벌 별칭을 등록해주세요."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:311
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
|
||||
@@ -91,7 +89,7 @@ msgstr ""
|
||||
#: redbot/cogs/alias/alias.py:357
|
||||
#, docstring
|
||||
msgid "Try to execute help for the base command of the alias."
|
||||
msgstr ""
|
||||
msgstr "별칭의 기본 명령어에 대한 도움말을 실행해 보세요."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:369
|
||||
msgid "No such alias exists."
|
||||
@@ -100,7 +98,7 @@ msgstr "그런 별칭은 등록되어 있지 않아요."
|
||||
#: redbot/cogs/alias/alias.py:374
|
||||
#, docstring
|
||||
msgid "Show what command the alias executes."
|
||||
msgstr ""
|
||||
msgstr "별칭이 실행하는 명령어를 표시해주세요."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:379
|
||||
msgid "The `{alias_name}` alias will execute the command `{command}`"
|
||||
@@ -113,7 +111,7 @@ msgstr ""
|
||||
#: redbot/cogs/alias/alias.py:390
|
||||
#, docstring
|
||||
msgid "Delete an existing alias on this server."
|
||||
msgstr ""
|
||||
msgstr "이 서버에 있는 기존 별칭을 삭제해주세요."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
|
||||
#: redbot/cogs/alias/alias.py:442
|
||||
@@ -131,7 +129,7 @@ msgstr ""
|
||||
#: redbot/cogs/alias/alias.py:408
|
||||
#, docstring
|
||||
msgid "Delete an existing global alias."
|
||||
msgstr ""
|
||||
msgstr "기존 글로벌 별칭들을 삭제해주세요."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:413
|
||||
msgid "There are no aliases on this bot."
|
||||
@@ -140,7 +138,7 @@ msgstr "이 봇에 등록된 별칭이 없어요."
|
||||
#: redbot/cogs/alias/alias.py:426
|
||||
#, docstring
|
||||
msgid "List the available aliases on this server."
|
||||
msgstr ""
|
||||
msgstr "이 서버에서 사용할 수 있는 별칭들을 나열해주세요."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
|
||||
msgid "Aliases:"
|
||||
@@ -149,5 +147,5 @@ msgstr "등록된 별칭 리스트 :"
|
||||
#: redbot/cogs/alias/alias.py:437
|
||||
#, docstring
|
||||
msgid "List the available global aliases on this bot."
|
||||
msgstr ""
|
||||
msgstr "이 봇에서 사용할 수 있는 글로벌 별칭들을 나열해주세요."
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Dutch\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: nl\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: nl_NL\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: no\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: no_NO\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Polish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"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: red-discordbot\n"
|
||||
"X-Crowdin-Language: pl\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: pl_PL\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: pt-BR\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: pt_BR\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Portuguese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: pt-PT\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: pt_PT\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Romanian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ro\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: ro_RO\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"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: red-discordbot\n"
|
||||
"X-Crowdin-Language: ru\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: ru_RU\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Slovak\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: sk\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: sk_SK\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Serbian (Cyrillic)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: sr\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: sr_SP\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:13\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Swedish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: sv-SE\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: sv_SE\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:13\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Turkish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: tr\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: tr_TR\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:13\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"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: red-discordbot\n"
|
||||
"X-Crowdin-Language: uk\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: uk_UA\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:13\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Vietnamese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: vi\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: vi_VN\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:10\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: zh-CN\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: zh_CN\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese Traditional, Hong Kong\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: zh-HK\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: zh_HK\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 12:10\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese Traditional\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: zh-TW\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: zh_TW\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Afrikaans\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: af\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: af_ZA\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Arabic\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ar\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: ar_SA\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: bg\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: bg_BG\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Catalan\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ca\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: ca_ES\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-03-05 12:11\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Czech\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: cs\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: cs_CZ\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Danish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: da\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: da_DK\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:13\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Greek\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: el\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: el_GR\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:16\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: es-ES\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: es_ES\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:13\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Finnish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: fi\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: fi_FI\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-03-12 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: French\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: fr\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: fr_FR\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:13\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Hebrew\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: he\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: he_IL\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:13\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: hu\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: hu_HU\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:14\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: id\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: id_ID\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:14\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Italian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: it\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: it_IT\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:14\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Japanese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ja\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: ja_JP\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-03-19 12:10\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Korean\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ko\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: ko_KR\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
@@ -56,7 +54,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:82
|
||||
#, docstring
|
||||
msgid "Play audio through voice channels."
|
||||
msgstr ""
|
||||
msgstr "음성체널을 통해 음악을 재생합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:177
|
||||
msgid "You have attempted to run Audio's Lavalink server on an unsupported architecture. Only settings related commands will be available."
|
||||
@@ -64,7 +62,7 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:201
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
msgstr "DJ역할을 찾지 못했습니다. DJ역할을 비활성화합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:433
|
||||
msgid "music in {} servers"
|
||||
@@ -76,7 +74,7 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:505
|
||||
msgid "Auto Play Started."
|
||||
msgstr ""
|
||||
msgstr "자동재생 시작됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:520 redbot/cogs/audio/audio.py:2566
|
||||
#: redbot/cogs/audio/audio.py:6296
|
||||
@@ -85,27 +83,27 @@ msgstr "지금 재생 중"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:522
|
||||
msgid "Track length: {length} | Requested by: {user}"
|
||||
msgstr ""
|
||||
msgstr "곡 길이: {length} | 신청자: {user}"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:543
|
||||
msgid "Queue Ended."
|
||||
msgstr ""
|
||||
msgstr "큐 끝남"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:585
|
||||
msgid "Multiple errors detected"
|
||||
msgstr ""
|
||||
msgstr "여러가지 오류 검출됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:586
|
||||
msgid "Closing the audio player due to multiple errors being detected. If this persists, please inform the bot owner as the Audio cog may be temporally unavailable."
|
||||
msgstr ""
|
||||
msgstr "오디오 플레이어를 오류로 중지합니다. 오디오 명령어가 작동되지 않을수 있습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:598
|
||||
msgid "Track Stuck"
|
||||
msgstr ""
|
||||
msgstr "트랙 걸림"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:602
|
||||
msgid "Track Error"
|
||||
msgstr ""
|
||||
msgstr "트랙 에러"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:672
|
||||
#, docstring
|
||||
@@ -134,11 +132,11 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:7876 redbot/cogs/audio/audio.py:7891
|
||||
#: redbot/cogs/audio/audio.py:7907 redbot/cogs/audio/audio.py:7923
|
||||
msgid "Setting Changed"
|
||||
msgstr ""
|
||||
msgstr "설정 변경됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:689
|
||||
msgid "Daily queues: {true_or_false}."
|
||||
msgstr ""
|
||||
msgstr "일간 재생목록: {true_or_false}."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:690 redbot/cogs/audio/audio.py:706
|
||||
#: redbot/cogs/audio/audio.py:1100 redbot/cogs/audio/audio.py:1254
|
||||
@@ -157,7 +155,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:7397 redbot/cogs/audio/audio.py:7440
|
||||
#: redbot/cogs/audio/audio.py:7850 redbot/cogs/audio/audio.py:7861
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
msgstr "활성화됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:690 redbot/cogs/audio/audio.py:706
|
||||
#: redbot/cogs/audio/audio.py:1100 redbot/cogs/audio/audio.py:1254
|
||||
@@ -176,7 +174,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:7397 redbot/cogs/audio/audio.py:7440
|
||||
#: redbot/cogs/audio/audio.py:7850 redbot/cogs/audio/audio.py:7861
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
msgstr "비활성화됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:697
|
||||
#, docstring
|
||||
@@ -189,185 +187,185 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:709
|
||||
msgid "\\nAuto-play has been disabled."
|
||||
msgstr ""
|
||||
msgstr "자동재생이 비활성화되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:719
|
||||
#, docstring
|
||||
msgid "Manages the keyword whitelist and blacklist."
|
||||
msgstr ""
|
||||
msgstr "키워드 블랙리스트나 화이트리스트를 관리합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:724
|
||||
#, docstring
|
||||
msgid "Manages the global keyword whitelist/blacklist."
|
||||
msgstr ""
|
||||
msgstr "전체 키워드 블랙리스트나 화이트리스트를 관리합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:728
|
||||
#, docstring
|
||||
msgid "Manages the global keyword whitelist."
|
||||
msgstr ""
|
||||
msgstr "전체 키워드 화이트리스트를 관리합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:732
|
||||
#, docstring
|
||||
msgid "Manages the global keyword blacklist."
|
||||
msgstr ""
|
||||
msgstr "전체 키워드 블랙리스트를 관리합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:736 redbot/cogs/audio/audio.py:917
|
||||
#, docstring
|
||||
msgid "Adds a keyword to the blacklist."
|
||||
msgstr ""
|
||||
msgstr "블랙리스트에 키워드를 추가합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:747 redbot/cogs/audio/audio.py:928
|
||||
msgid "Keyword already in the blacklist."
|
||||
msgstr ""
|
||||
msgstr "그 키워드는 이미 블랙리스트에 있습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:751 redbot/cogs/audio/audio.py:800
|
||||
#: redbot/cogs/audio/audio.py:903 redbot/cogs/audio/audio.py:932
|
||||
#: redbot/cogs/audio/audio.py:981 redbot/cogs/audio/audio.py:1084
|
||||
msgid "Blacklist Modified"
|
||||
msgstr ""
|
||||
msgstr "블랙리스트 수정됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:752 redbot/cogs/audio/audio.py:933
|
||||
msgid "Added: `{blacklisted}` to the blacklist."
|
||||
msgstr ""
|
||||
msgstr "추가됨: `{blacklisted}` 가 블랙리스트에 추가되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:759
|
||||
#, docstring
|
||||
msgid "Adds a keyword to the whitelist.\\n\\n If anything is added to whitelist, it will blacklist everything else.\\n "
|
||||
msgstr ""
|
||||
msgstr "화이트리스트에 키워드를 추가합니다.\\n\\n 하나라도 화이트리스트에 등록이 된다면, 다른 모든석을 블랙리스트처리합니다.\\n "
|
||||
|
||||
#: redbot/cogs/audio/audio.py:773 redbot/cogs/audio/audio.py:819
|
||||
#: redbot/cogs/audio/audio.py:954 redbot/cogs/audio/audio.py:1000
|
||||
msgid "Keyword already in the whitelist."
|
||||
msgstr ""
|
||||
msgstr "그 키워드는 이미 화이트리스트에 있습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:777 redbot/cogs/audio/audio.py:823
|
||||
#: redbot/cogs/audio/audio.py:890 redbot/cogs/audio/audio.py:958
|
||||
#: redbot/cogs/audio/audio.py:1004 redbot/cogs/audio/audio.py:1071
|
||||
msgid "Whitelist Modified"
|
||||
msgstr ""
|
||||
msgstr "화이트리스트 수정됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:778 redbot/cogs/audio/audio.py:959
|
||||
msgid "Added: `{whitelisted}` to the whitelist."
|
||||
msgstr ""
|
||||
msgstr "추가됨: `{whitelisted}` 이/가 화이트리스트에 추가되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:785 redbot/cogs/audio/audio.py:966
|
||||
#, docstring
|
||||
msgid "Removes a keyword from the blacklist."
|
||||
msgstr ""
|
||||
msgstr "키워드를 블랙리스트에서 제거합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:796 redbot/cogs/audio/audio.py:977
|
||||
msgid "Keyword is not in the blacklist."
|
||||
msgstr ""
|
||||
msgstr "키워드가 블랙리스트에 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:801 redbot/cogs/audio/audio.py:982
|
||||
msgid "Removed: `{blacklisted}` from the blacklist."
|
||||
msgstr ""
|
||||
msgstr "삭제됨: `{blacklisted}` 이/가 블랙리스트에서 제거되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:808 redbot/cogs/audio/audio.py:989
|
||||
#, docstring
|
||||
msgid "Removes a keyword from the whitelist."
|
||||
msgstr ""
|
||||
msgstr "키워드를 화이트리스트에서 제거합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:824 redbot/cogs/audio/audio.py:1005
|
||||
msgid "Removed: `{whitelisted}` from the whitelist."
|
||||
msgstr ""
|
||||
msgstr "삭제됨: `{blacklisted}` 이/가 화이트리스트에서 제거되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:831 redbot/cogs/audio/audio.py:1012
|
||||
#, docstring
|
||||
msgid "List all keywords added to the whitelist."
|
||||
msgstr ""
|
||||
msgstr "화이트리스트에 추가된 모든 키워드의 목록."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:834 redbot/cogs/audio/audio.py:886
|
||||
#: redbot/cogs/audio/audio.py:1015 redbot/cogs/audio/audio.py:1067
|
||||
msgid "Nothing in the whitelist."
|
||||
msgstr ""
|
||||
msgstr "화이트리스트에 아무것도 없어요."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:857 redbot/cogs/audio/audio.py:1038
|
||||
#, docstring
|
||||
msgid "List all keywords added to the blacklist."
|
||||
msgstr ""
|
||||
msgstr "블랙리스트에 추가된 모든 키워드의 목록."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:860 redbot/cogs/audio/audio.py:899
|
||||
#: redbot/cogs/audio/audio.py:1041 redbot/cogs/audio/audio.py:1080
|
||||
msgid "Nothing in the blacklist."
|
||||
msgstr ""
|
||||
msgstr "블랙리스트에 아무것도 없어요."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:883 redbot/cogs/audio/audio.py:1064
|
||||
#, docstring
|
||||
msgid "Clear all keywords from the whitelist."
|
||||
msgstr ""
|
||||
msgstr "화이트리스트에 있는 모든 키워드를 삭제합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:891 redbot/cogs/audio/audio.py:1072
|
||||
msgid "All entries have been removed from the whitelist."
|
||||
msgstr ""
|
||||
msgstr "화이트리스트에 있는 모든 키워드가 삭제되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:896 redbot/cogs/audio/audio.py:1077
|
||||
#, docstring
|
||||
msgid "Clear all keywords added to the blacklist."
|
||||
msgstr ""
|
||||
msgstr "블랙리스트에 있는 모든 키워드를 삭제합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:904 redbot/cogs/audio/audio.py:1085
|
||||
msgid "All entries have been removed from the blacklist."
|
||||
msgstr ""
|
||||
msgstr "블랙리스트에 있는 모든 키워드가 삭제되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:909
|
||||
#, docstring
|
||||
msgid "Manages the keyword whitelist."
|
||||
msgstr ""
|
||||
msgstr "키워드 화이트리스트를 관리합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:913
|
||||
#, docstring
|
||||
msgid "Manages the keyword blacklist."
|
||||
msgstr ""
|
||||
msgstr "키워드 블랙리스트를 관리합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:940
|
||||
#, docstring
|
||||
msgid "Adds a keyword to the whitelist.\\n\\n If anything is added to whitelist, it will blacklist everything else.\\n "
|
||||
msgstr ""
|
||||
msgstr "화이트리스트에 키워드를 추가합니다.\\n\\n 하나라도 화이트리스트에 등록이 된다면, 다른 모든석을 블랙리스트처리합니다.\\n "
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1091
|
||||
#, docstring
|
||||
msgid "Change auto-play setting."
|
||||
msgstr ""
|
||||
msgstr "자동재생 설정을 변경합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1095
|
||||
#, docstring
|
||||
msgid "Toggle auto-play when there no songs in queue."
|
||||
msgstr ""
|
||||
msgstr "큐에 곡이 없을때 곡을 자동으로 재생할지 설정합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1099
|
||||
msgid "Auto-play when queue ends: {true_or_false}."
|
||||
msgstr ""
|
||||
msgstr "큐가 끝날때 자동으로 재생: {true_or_false}."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1104
|
||||
msgid "\\nRepeat has been disabled."
|
||||
msgstr ""
|
||||
msgstr "\\n반복재생이 비활성화되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1107
|
||||
msgid "\\nAuto-disconnecting at queue end has been disabled."
|
||||
msgstr ""
|
||||
msgstr "\\n큐에있는 곡이 다 재생되면 자동으로 연결해제 기능이 비활성화되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1122
|
||||
#, docstring
|
||||
msgid "Set a playlist to auto-play songs from.\\n\\n **Usage**:\\n `[p]audioset autoplay playlist_name_OR_id [args]`\\n\\n **Args**:\\n The following are all optional:\\n --scope <scope>\\n --author [user]\\n --guild [guild] **Only the bot owner can use this**\\n\\n **Scope** is one of the following:\\n Global\\n Guild\\n User\\n\\n **Author** can be one of the following:\\n User ID\\n User Mention\\n User Name#123\\n\\n **Guild** can be one of the following:\\n Guild ID\\n Exact guild name\\n\\n Example use:\\n `[p]audioset autoplay MyGuildPlaylist`\\n `[p]audioset autoplay MyGlobalPlaylist --scope Global`\\n `[p]audioset autoplay PersonalPlaylist --scope User --author Draper`\\n "
|
||||
msgstr ""
|
||||
msgstr "자동 재생곡의 재생목록을 정합니다.\\n\\n **사용법**:\\n `[p]audioset 재생목록_이름_혹은_ID [args]`\\n\\n **Args**:\\n 옵션들:\\n --scope <scope>\\n --author [user]\\n --guild [guild] **오직 봇 소유자만 명령어를 사용할수 있습니다.**\\n\\n **Scope** is one of the following:\\n Global\\n Guild\\n User\\n\\n **Author** can be one of the following:\\n User ID\\n User Mention\\n User Name#123\\n\\n **Guild** can be one of the following:\\n Guild ID\\n Exact guild name\\n\\n Example use:\\n `[p]audioset autoplay MyGuildPlaylist`\\n `[p]audioset autoplay MyGlobalPlaylist --scope Global`\\n `[p]audioset autoplay PersonalPlaylist --scope User --author Draper`\\n "
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1165 redbot/cogs/audio/audio.py:1182
|
||||
msgid "No Playlist Found"
|
||||
msgstr ""
|
||||
msgstr "재생목록을 찾을수 없음"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1166 redbot/cogs/audio/audio.py:4080
|
||||
#: redbot/cogs/audio/audio.py:5395
|
||||
msgid "Could not match '{arg}' to a playlist"
|
||||
msgstr ""
|
||||
msgstr "재생목록과 '{arg}'를 매칭할수 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1174
|
||||
msgid "No Tracks Found"
|
||||
msgstr ""
|
||||
msgstr "곡 찾을수 없음."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1175
|
||||
msgid "Playlist {name} has no tracks."
|
||||
msgstr ""
|
||||
msgstr "재생목록 {name}에는 곡이 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1183 redbot/cogs/audio/audio.py:4088
|
||||
#: redbot/cogs/audio/audio.py:4282 redbot/cogs/audio/audio.py:4452
|
||||
@@ -375,7 +373,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:4829 redbot/cogs/audio/audio.py:5185
|
||||
#: redbot/cogs/audio/audio.py:5481 redbot/cogs/audio/audio.py:5579
|
||||
msgid "Playlist {id} does not exist in {scope} scope."
|
||||
msgstr ""
|
||||
msgstr "재생 목록 {id} 이/가 {scope} 범위에 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1190 redbot/cogs/audio/audio.py:4095
|
||||
#: redbot/cogs/audio/audio.py:4556 redbot/cogs/audio/audio.py:4694
|
||||
@@ -383,7 +381,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:5192 redbot/cogs/audio/audio.py:5489
|
||||
#: redbot/cogs/audio/audio.py:5586 redbot/cogs/audio/audio.py:5863
|
||||
msgid "Missing Arguments"
|
||||
msgstr ""
|
||||
msgstr "필수요소 누락됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1191 redbot/cogs/audio/audio.py:4096
|
||||
#: redbot/cogs/audio/audio.py:4289 redbot/cogs/audio/audio.py:4458
|
||||
@@ -392,11 +390,11 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:5193 redbot/cogs/audio/audio.py:5490
|
||||
#: redbot/cogs/audio/audio.py:5587 redbot/cogs/audio/audio.py:5864
|
||||
msgid "You need to specify the Guild ID for the guild to lookup."
|
||||
msgstr ""
|
||||
msgstr "조회할 길드의 길드 ID를 지정해야 합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1197
|
||||
msgid "Playlist {name} (`{id}`) [**{scope}**] will be used for autoplay."
|
||||
msgstr ""
|
||||
msgstr "재생목록 {name} (`{id}`) [**{scope}**]이 자동재생을 위해 사용될것입니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1210
|
||||
#, docstring
|
||||
@@ -405,85 +403,85 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1216
|
||||
msgid "Set auto-play playlist to default value."
|
||||
msgstr ""
|
||||
msgstr "자동재생 플레이리스트를 기본값으로 설정합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1222
|
||||
#, docstring
|
||||
msgid "Toggle DJ mode.\\n\\n DJ mode allows users with the DJ role to use audio commands.\\n "
|
||||
msgstr ""
|
||||
msgstr "DJ전용모드를 활성화합니다.\\n\\n DJ모드는 DJ역할이 있는 사용자만이 음악 명령어를 사용할수있도록 합니다.\\n "
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1233
|
||||
msgid "Missing DJ Role"
|
||||
msgstr ""
|
||||
msgstr "DJ역할이 없습니다"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1234
|
||||
msgid "Please set a role to use with DJ mode. Enter the role name or ID now."
|
||||
msgstr ""
|
||||
msgstr "DJ 모드에 사용할 역할을 지정해주세요. 지금 역할 이름이나 역할 ID를 입력해주세요."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1244
|
||||
msgid "Response timed out, try again later."
|
||||
msgstr ""
|
||||
msgstr "시간이 초과되었습니다. 다시 시도해주세요."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1253
|
||||
msgid "DJ role: {true_or_false}."
|
||||
msgstr ""
|
||||
msgstr "DJ 역할: {true_or_false}."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1261
|
||||
#, docstring
|
||||
msgid "Auto-disconnect from channel when bot is alone in it for x seconds, 0 to disable.\\n\\n `[p]audioset dc` takes precedence over this setting.\\n "
|
||||
msgstr ""
|
||||
msgstr "봇이 x초 이상 체널에 환자 있을때 체널에서 자동으로 나갑니다, 0으로 설정하면 비활성화됩니다.\\n\\n `[p]audioset dc` 설정이 우선권을 가집니다.\\n "
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1267 redbot/cogs/audio/audio.py:1295
|
||||
#: redbot/cogs/audio/audio.py:1689
|
||||
msgid "Invalid Time"
|
||||
msgstr ""
|
||||
msgstr "잘못된 입력값"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1267 redbot/cogs/audio/audio.py:1295
|
||||
#: redbot/cogs/audio/audio.py:1689
|
||||
msgid "Seconds can't be less than zero."
|
||||
msgstr ""
|
||||
msgstr "0보다 작을수 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1274
|
||||
msgid "Empty disconnect disabled."
|
||||
msgstr ""
|
||||
msgstr "방이 비었을때 연결해제가 비활성화 되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1281
|
||||
msgid "Empty disconnect timer set to {num_seconds}."
|
||||
msgstr ""
|
||||
msgstr "방이 비었을때 나가기 타이머가 {num_seconds}초로 설정되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1292
|
||||
#, docstring
|
||||
msgid "Auto-pause after x seconds when room is empty, 0 to disable."
|
||||
msgstr ""
|
||||
msgstr "방이 비었을때 x초 후에 자동 일시정지합니다. 0은 비활성화입니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1302
|
||||
msgid "Empty pause disabled."
|
||||
msgstr ""
|
||||
msgstr "방이 비었을때 멈추기가 비활성화되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1309
|
||||
msgid "Empty pause timer set to {num_seconds}."
|
||||
msgstr ""
|
||||
msgstr "빈방 멈추기 타이머가 {num_seconds}초로 설정되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1319
|
||||
#, docstring
|
||||
msgid "Set a price for queueing tracks for non-mods, 0 to disable."
|
||||
msgstr ""
|
||||
msgstr "음악을 신청하는데에 드는 비용을 설정합니다.(관리자 미포함), 0은 비활성화입니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1322
|
||||
msgid "Invalid Price"
|
||||
msgstr ""
|
||||
msgstr "잘못된 가격"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1322
|
||||
msgid "Price can't be less than zero."
|
||||
msgstr ""
|
||||
msgstr "가격은 0보다 적을수 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1327
|
||||
msgid "Jukebox mode disabled."
|
||||
msgstr ""
|
||||
msgstr "주크박스모드가 비활성화되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1334
|
||||
msgid "Track queueing command price set to {price} {currency}."
|
||||
msgstr ""
|
||||
msgstr "곡 신청 명령어의 가격이 {price} {currency}으로 설정되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1345
|
||||
#, docstring
|
||||
@@ -579,7 +577,7 @@ msgstr "현재 설정을 표시할게요."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1532
|
||||
msgid "Server Settings"
|
||||
msgstr ""
|
||||
msgstr "서버 설정"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1533
|
||||
msgid "Auto-disconnect: [{dc}]\\n"
|
||||
@@ -778,7 +776,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:1836
|
||||
#, docstring
|
||||
msgid "Audio stats."
|
||||
msgstr ""
|
||||
msgstr "오디오 정보"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1866 redbot/cogs/audio/audio.py:1901
|
||||
#: redbot/cogs/audio/audio.py:1941 redbot/cogs/audio/audio.py:1979
|
||||
@@ -793,11 +791,11 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:7676 redbot/cogs/audio/audio.py:7796
|
||||
#: redbot/cogs/audio/audio.py:7830
|
||||
msgid "Nothing playing."
|
||||
msgstr ""
|
||||
msgstr "아무것도 재생하고있지 않아요"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1870
|
||||
msgid "Not connected anywhere."
|
||||
msgstr ""
|
||||
msgstr "어디에도 연결되어있지 않아요"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1876
|
||||
msgid "Playing in {num}/{total} servers:"
|
||||
@@ -806,16 +804,16 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:1895
|
||||
#, docstring
|
||||
msgid "Bump a track number to the top of the queue."
|
||||
msgstr ""
|
||||
msgstr "특정 트랙을 큐의 맨 위로 올립니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1908 redbot/cogs/audio/audio.py:1915
|
||||
#: redbot/cogs/audio/audio.py:1921
|
||||
msgid "Unable To Bump Track"
|
||||
msgstr ""
|
||||
msgstr "트랙을 올릴수 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1909
|
||||
msgid "You must be in the voice channel to bump a track."
|
||||
msgstr ""
|
||||
msgstr "음성체널에 들어가있어야만 트랙을 위로 옮길수 있습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1916
|
||||
msgid "You need the DJ role to bump tracks."
|
||||
@@ -823,20 +821,20 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1922 redbot/cogs/audio/audio.py:6828
|
||||
msgid "Song number must be greater than 1 and within the queue limit."
|
||||
msgstr ""
|
||||
msgstr "음악 번호는 1보다 크고 큐에있는 곡 끝번호보다 작아야합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1932
|
||||
msgid "Moved track to the top of the queue."
|
||||
msgstr ""
|
||||
msgstr "트랙을 큐의 맨 위로 올렸습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1939
|
||||
#, docstring
|
||||
msgid "Disconnect from the voice channel."
|
||||
msgstr ""
|
||||
msgstr "음성체널에서 나갑니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1952
|
||||
msgid "Unable to disconnect"
|
||||
msgstr ""
|
||||
msgstr "나갈수 없습니다"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1953
|
||||
msgid "You need the DJ role to disconnect."
|
||||
@@ -844,16 +842,16 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1957
|
||||
msgid "There are other people listening to music."
|
||||
msgstr ""
|
||||
msgstr "음악을 듣고있는사람들이 있습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1960
|
||||
msgid "Disconnecting..."
|
||||
msgstr ""
|
||||
msgstr "나가는중..."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:1976
|
||||
#, docstring
|
||||
msgid "Equalizer management."
|
||||
msgstr ""
|
||||
msgstr "이퀄라이져 관리"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2012
|
||||
#, docstring
|
||||
@@ -1026,43 +1024,43 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:2542
|
||||
#, docstring
|
||||
msgid "Now playing."
|
||||
msgstr ""
|
||||
msgstr "현재 재생중."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2556
|
||||
msgid "\\n Requested by: **{track.requester}**"
|
||||
msgstr ""
|
||||
msgstr "\\n 신청자: **{track.requester}**"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2560
|
||||
msgid "Nothing."
|
||||
msgstr ""
|
||||
msgstr "아무것도 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2576 redbot/cogs/audio/audio.py:6306
|
||||
#: redbot/cogs/audio/audio.py:6484
|
||||
msgid "Auto-Play"
|
||||
msgstr ""
|
||||
msgstr "자동 재생"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2582 redbot/cogs/audio/audio.py:6312
|
||||
#: redbot/cogs/audio/audio.py:6490
|
||||
msgid "Shuffle"
|
||||
msgstr ""
|
||||
msgstr "곡 섞기"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2588 redbot/cogs/audio/audio.py:6318
|
||||
#: redbot/cogs/audio/audio.py:6496
|
||||
msgid "Repeat"
|
||||
msgstr ""
|
||||
msgstr "반복"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2642
|
||||
#, docstring
|
||||
msgid "Pause or resume a playing track."
|
||||
msgstr ""
|
||||
msgstr "멈추거나 곡을 이어서 재생합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2654 redbot/cogs/audio/audio.py:2661
|
||||
msgid "Unable To Manage Tracks"
|
||||
msgstr ""
|
||||
msgstr "트랙을 관리할수 없습니다"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2655
|
||||
msgid "You must be in the voice channel to pause or resume."
|
||||
msgstr ""
|
||||
msgstr "멈추거나 다시 재생하기 위해서는 음성체널에 있어야만 합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2662
|
||||
msgid "You need the DJ role to pause or resume tracks."
|
||||
@@ -1070,29 +1068,29 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2671
|
||||
msgid "Track Paused"
|
||||
msgstr ""
|
||||
msgstr "트랙 일시정지됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2674
|
||||
msgid "Track Resumed"
|
||||
msgstr ""
|
||||
msgstr "트랙 재생됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2682
|
||||
#, docstring
|
||||
msgid "Queue percentage."
|
||||
msgstr ""
|
||||
msgstr "큐 재생정도"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2709
|
||||
msgid "There's nothing in the queue."
|
||||
msgstr ""
|
||||
msgstr "큐에 아무것도 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2731
|
||||
msgid "Queued and playing tracks:"
|
||||
msgstr ""
|
||||
msgstr "큐에있는 트랙과 재생중인 트랙들:"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2738
|
||||
#, docstring
|
||||
msgid "Play a URL or search for a track."
|
||||
msgstr ""
|
||||
msgstr "URL을 재생하거나 트랙을 검색합니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2747 redbot/cogs/audio/audio.py:2752
|
||||
#: redbot/cogs/audio/audio.py:2769 redbot/cogs/audio/audio.py:2778
|
||||
@@ -1116,37 +1114,37 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:6939 redbot/cogs/audio/audio.py:7000
|
||||
#: redbot/cogs/audio/audio.py:7133
|
||||
msgid "Unable To Play Tracks"
|
||||
msgstr ""
|
||||
msgstr "트랙을 재생할수 없습니다"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2748 redbot/cogs/audio/audio.py:2854
|
||||
#: redbot/cogs/audio/audio.py:6934
|
||||
msgid "That URL is not allowed."
|
||||
msgstr ""
|
||||
msgstr "그 URL은 허용되지 않습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2752 redbot/cogs/audio/audio.py:2858
|
||||
#: redbot/cogs/audio/audio.py:6940
|
||||
msgid "That track is not allowed."
|
||||
msgstr ""
|
||||
msgstr "그 음악은 허용되지 않습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2756 redbot/cogs/audio/audio.py:2862
|
||||
#: redbot/cogs/audio/audio.py:3112 redbot/cogs/audio/audio.py:3286
|
||||
#: redbot/cogs/audio/audio.py:6051 redbot/cogs/audio/audio.py:6877
|
||||
msgid "Connection to Lavalink has failed"
|
||||
msgstr ""
|
||||
msgstr "라바링크와 연결에 실패했습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2759 redbot/cogs/audio/audio.py:2865
|
||||
#: redbot/cogs/audio/audio.py:3115 redbot/cogs/audio/audio.py:3289
|
||||
#: redbot/cogs/audio/audio.py:3683 redbot/cogs/audio/audio.py:6054
|
||||
#: redbot/cogs/audio/audio.py:6880 redbot/cogs/audio/audio.py:7117
|
||||
msgid "Please check your console or logs for details."
|
||||
msgstr ""
|
||||
msgstr "관리자에게 문의해주세요"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2770 redbot/cogs/audio/audio.py:2876
|
||||
#: redbot/cogs/audio/audio.py:3126 redbot/cogs/audio/audio.py:3300
|
||||
#: redbot/cogs/audio/audio.py:6066 redbot/cogs/audio/audio.py:6713
|
||||
#: redbot/cogs/audio/audio.py:6891 redbot/cogs/audio/audio.py:7757
|
||||
msgid "I don't have permission to connect to your channel."
|
||||
msgstr ""
|
||||
msgstr "그 체널에 연결할 권한이 없어요."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2779 redbot/cogs/audio/audio.py:2885
|
||||
#: redbot/cogs/audio/audio.py:3135 redbot/cogs/audio/audio.py:3309
|
||||
@@ -1154,7 +1152,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:6900 redbot/cogs/audio/audio.py:7124
|
||||
#: redbot/cogs/audio/audio.py:7774
|
||||
msgid "Connect to a voice channel first."
|
||||
msgstr ""
|
||||
msgstr "먼저 음성체널에 연결하세요."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2785 redbot/cogs/audio/audio.py:2891
|
||||
#: redbot/cogs/audio/audio.py:3141 redbot/cogs/audio/audio.py:3315
|
||||
@@ -1162,7 +1160,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:6906 redbot/cogs/audio/audio.py:7127
|
||||
#: redbot/cogs/audio/audio.py:7781
|
||||
msgid "Connection to Lavalink has not yet been established."
|
||||
msgstr ""
|
||||
msgstr "라바링크와 연결되지 않았습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2792 redbot/cogs/audio/audio.py:2898
|
||||
#: redbot/cogs/audio/audio.py:3148 redbot/cogs/audio/audio.py:3323
|
||||
@@ -1172,19 +1170,19 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2806 redbot/cogs/audio/audio.py:2912
|
||||
msgid "You must be in the voice channel to use the play command."
|
||||
msgstr ""
|
||||
msgstr "음성체널에 있어야 재생 명령어를 사용할수 있습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2812 redbot/cogs/audio/audio.py:2918
|
||||
#: redbot/cogs/audio/audio.py:2943
|
||||
msgid "No tracks found for `{query}`."
|
||||
msgstr ""
|
||||
msgstr "`{query}`에 대한 검색결과가 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2818 redbot/cogs/audio/audio.py:2924
|
||||
#: redbot/cogs/audio/audio.py:3209 redbot/cogs/audio/audio.py:3341
|
||||
#: redbot/cogs/audio/audio.py:3566 redbot/cogs/audio/audio.py:3635
|
||||
#: redbot/cogs/audio/audio.py:7133
|
||||
msgid "Queue size limit reached."
|
||||
msgstr ""
|
||||
msgstr "큐 최대 제한에 도달했습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:2838
|
||||
#, docstring
|
||||
@@ -1234,7 +1232,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:3022 redbot/cogs/audio/audio.py:3686
|
||||
#: redbot/cogs/audio/audio.py:7162
|
||||
msgid "Track Enqueued"
|
||||
msgstr ""
|
||||
msgstr "트랙 추가됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:3036
|
||||
#, docstring
|
||||
@@ -1279,13 +1277,13 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:3261
|
||||
msgid "tracks"
|
||||
msgstr ""
|
||||
msgstr "트랙"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:3272 redbot/cogs/audio/audio.py:5615
|
||||
#: redbot/cogs/audio/audio.py:5635 redbot/cogs/audio/audio.py:6553
|
||||
#: redbot/cogs/audio/audio.py:7267
|
||||
msgid "Page {page_num}/{total_pages}"
|
||||
msgstr ""
|
||||
msgstr "{page_num}/{total_pages} 페이지"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:3283
|
||||
#, docstring
|
||||
@@ -1323,14 +1321,14 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:6160 redbot/cogs/audio/audio.py:6976
|
||||
#: redbot/cogs/audio/audio.py:7074
|
||||
msgid "Nothing found."
|
||||
msgstr ""
|
||||
msgstr "아무것도 찾지 못했습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:3434 redbot/cogs/audio/audio.py:3521
|
||||
#: redbot/cogs/audio/audio.py:5976 redbot/cogs/audio/audio.py:6151
|
||||
#: redbot/cogs/audio/audio.py:6178 redbot/cogs/audio/audio.py:6952
|
||||
#: redbot/cogs/audio/audio.py:6968 redbot/cogs/audio/audio.py:7066
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
msgstr "트랙을 찾을수 없습니다"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:3435 redbot/cogs/audio/audio.py:3522
|
||||
#: redbot/cogs/audio/audio.py:5977 redbot/cogs/audio/audio.py:6152
|
||||
@@ -1386,7 +1384,7 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:3719
|
||||
msgid "Approximate time remaining: {seconds}"
|
||||
msgstr ""
|
||||
msgstr "남은시간: {seconds}"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:3790
|
||||
msgid "You do not have the permissions to manage {name} (`{id}`) [**{scope}**]."
|
||||
@@ -1831,7 +1829,7 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:6293
|
||||
msgid "\\n Requested by: **{track.requester}**"
|
||||
msgstr ""
|
||||
msgstr "\\n 신청자: **{track.requester}**"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:6405
|
||||
msgid "**Currently livestreaming:**\\n"
|
||||
@@ -1868,7 +1866,7 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:6475
|
||||
msgid "Page {page_num}/{total_pages} | {num_tracks} tracks, {num_remaining} remaining\\n"
|
||||
msgstr ""
|
||||
msgstr "{page_num}/{total_pages} 페이지 | {num_tracks}곡 , {num_remaining} 남음\\n"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:6550
|
||||
msgid "Matching Tracks:"
|
||||
@@ -1877,7 +1875,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/audio.py:6564
|
||||
#, docstring
|
||||
msgid "Clears the queue."
|
||||
msgstr ""
|
||||
msgstr "큐를 지웁니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:6578
|
||||
msgid "Unable To Clear Queue"
|
||||
@@ -1889,11 +1887,11 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:6583
|
||||
msgid "Queue Modified"
|
||||
msgstr ""
|
||||
msgstr "큐 수정됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:6583
|
||||
msgid "The queue has been cleared."
|
||||
msgstr ""
|
||||
msgstr "큐가 정리되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:6589
|
||||
#, docstring
|
||||
@@ -1981,7 +1979,7 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:6788
|
||||
msgid "\\nAuto-play has been disabled."
|
||||
msgstr ""
|
||||
msgstr "자동재생이 비활성화되었습니다."
|
||||
|
||||
#: redbot/cogs/audio/audio.py:6800
|
||||
#, docstring
|
||||
@@ -2053,11 +2051,11 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/audio.py:7255
|
||||
msgid "Tracks Found:"
|
||||
msgstr ""
|
||||
msgstr "트랙 발견됨"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:7256
|
||||
msgid "search results"
|
||||
msgstr ""
|
||||
msgstr "검색 결과"
|
||||
|
||||
#: redbot/cogs/audio/audio.py:7258
|
||||
msgid "Folders Found:"
|
||||
@@ -2363,13 +2361,13 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/utils.py:539
|
||||
msgid "Global"
|
||||
msgstr ""
|
||||
msgstr "전체"
|
||||
|
||||
#: redbot/cogs/audio/utils.py:541
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
msgstr "서버"
|
||||
|
||||
#: redbot/cogs/audio/utils.py:543
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "사용자"
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:12\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Dutch\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: nl\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: nl_NL\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:14\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: no\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: no_NO\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
@@ -2,7 +2,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 12:15\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Polish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -12,7 +11,6 @@ msgstr ""
|
||||
"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: red-discordbot\n"
|
||||
"X-Crowdin-Language: pl\n"
|
||||
"X-Crowdin-File: /cogs/audio/locales/messages.pot\n"
|
||||
"Language: pl_PL\n"
|
||||
|
||||
#: redbot/cogs/audio/apis.py:213
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user