Compare commits
60 Commits
3.5.22
..
V3/develop
| Author | SHA1 | Date | |
|---|---|---|---|
| 7e2a74b276 | |||
| 899f24ceca | |||
| 13f45f69ac | |||
| a234fc1e02 | |||
| edce32364f | |||
| 7305f44f68 | |||
| cbd4643bd3 | |||
| b02fa38423 | |||
| 99babf9ad3 | |||
| 169d0eed49 | |||
| 70faa8cd52 | |||
| 2ea4c766ad | |||
| 6ceb45b35c | |||
| 4032648dcc | |||
| f70c48ec30 | |||
| fcb8bc0265 | |||
| ee1db01a2f | |||
| e2acec0862 | |||
| b83b882921 | |||
| 99d7b0e3b7 | |||
| 9270373c56 | |||
| e8f0ea0510 | |||
| b42bab4de9 | |||
| e868872214 | |||
| bee0ddbffc | |||
| 2de3d03cc9 | |||
| 056f2de557 | |||
| 34cbd15ba9 | |||
| 9a458fdd83 | |||
| 0e78051c5d | |||
| 53766173d0 | |||
| 36a5f752a2 | |||
| b2007a718d | |||
| 015f5a00fd | |||
| 6e417419aa | |||
| 316f237397 | |||
| 75e37ca896 | |||
| c701c79ed0 | |||
| 60323c99d1 | |||
| b7c11c016e | |||
| bdc66c3f56 | |||
| e6c6b9874b | |||
| 40b01c7985 | |||
| 666e249413 | |||
| 1bfe2a78fa | |||
| afe4e636b7 | |||
| 45c55418a4 | |||
| 29758fd104 | |||
| 8626aef36f | |||
| 18154465c3 | |||
| 07e6f1b264 | |||
| effc390ddf | |||
| 9afbe363e5 | |||
| 5023f7f1b5 | |||
| 01a3c17f8e | |||
| fe574189d6 | |||
| fec1818e5a | |||
| dd3b9a01d3 | |||
| a809c3604a | |||
| 982f082cb0 |
@@ -50,10 +50,6 @@
|
||||
- redbot/cogs/downloader/*
|
||||
# Docs
|
||||
- docs/cog_guides/downloader.rst
|
||||
# Tests
|
||||
- redbot/pytest/downloader.py
|
||||
- redbot/pytest/downloader_testrepo.*
|
||||
- tests/cogs/downloader/**/*
|
||||
"Category: Cogs - Economy":
|
||||
# Source
|
||||
- redbot/cogs/economy/*
|
||||
@@ -208,10 +204,18 @@
|
||||
- docs/cog_guides/core.rst
|
||||
"Category: Core - Command-line Interfaces":
|
||||
- redbot/__main__.py
|
||||
- redbot/_update/**/*
|
||||
- redbot/logging.py
|
||||
- redbot/core/_cli.py
|
||||
- redbot/core/_debuginfo.py
|
||||
- redbot/setup.py
|
||||
"Category: Core - Downloader":
|
||||
# Source
|
||||
- redbot/core/_downloader/**/*
|
||||
# Tests
|
||||
- redbot/pytest/downloader.py
|
||||
- redbot/pytest/downloader_testrepo.*
|
||||
- tests/core/_downloader/**/*
|
||||
"Category: Core - Help":
|
||||
- redbot/core/commands/help.py
|
||||
"Category: Core - i18n":
|
||||
@@ -263,7 +267,6 @@
|
||||
- docs/framework_events.rst
|
||||
- docs/guide_cog_creation.rst
|
||||
- docs/guide_cog_creators.rst
|
||||
- docs/guide_migration.rst
|
||||
- docs/guide_publish_cogs.rst
|
||||
- docs/guide_slash_and_interactions.rst
|
||||
"Category: Docs - Install Guides":
|
||||
@@ -273,6 +276,7 @@
|
||||
- docs/bot_application_guide.rst
|
||||
- docs/install_guides/**/*
|
||||
- docs/update_red.rst
|
||||
- docs/backup_red.rst
|
||||
"Category: Docs - Other":
|
||||
- docs/host-list.rst
|
||||
- docs/index.rst
|
||||
|
||||
@@ -7,18 +7,24 @@ on:
|
||||
required: false
|
||||
default: 'auto'
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
crowdin_download_translations:
|
||||
environment: Prepare Release
|
||||
needs: pr_stable_bump
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/create-github-app-token@v2
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.RED_RELEASER_CLIENT_ID }}
|
||||
private-key: ${{ secrets.RED_RELEASER_PRIVATE_KEY }}
|
||||
|
||||
# Checkout repository and install Python
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.8'
|
||||
- name: Install dependencies
|
||||
@@ -43,7 +49,7 @@ jobs:
|
||||
id: cpr_crowdin
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
commit-message: Automated Crowdin downstream
|
||||
title: "Automated Crowdin downstream"
|
||||
body: |
|
||||
@@ -51,31 +57,32 @@ jobs:
|
||||
Please ensure that there are no errors or invalid files are in the PR.
|
||||
labels: "Automated PR, Changelog Entry: Skipped"
|
||||
branch: "automated/i18n"
|
||||
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
||||
committer: >-
|
||||
${{ steps.app-token.outputs.app-slug }}[bot]
|
||||
<263745220+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>
|
||||
author: >-
|
||||
${{ steps.app-token.outputs.app-slug }}[bot]
|
||||
<263745220+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>
|
||||
milestone: ${{ needs.pr_stable_bump.outputs.milestone_number }}
|
||||
|
||||
- name: Close and reopen the PR with different token to trigger CI
|
||||
uses: actions/github-script@v6
|
||||
env:
|
||||
PR_NUMBER: ${{ steps.cpr_crowdin.outputs.pull-request-number }}
|
||||
PR_OPERATION: ${{ steps.cpr_crowdin.outputs.pull-request-operation }}
|
||||
with:
|
||||
github-token: ${{ secrets.cogcreators_bot_repo_scoped }}
|
||||
script: |
|
||||
const script = require(
|
||||
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/close_and_reopen_pr.js`
|
||||
);
|
||||
console.log(script({github, context}));
|
||||
|
||||
pr_stable_bump:
|
||||
environment: Prepare Release
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
milestone_number: ${{ steps.get_milestone_number.outputs.result }}
|
||||
steps:
|
||||
- uses: actions/create-github-app-token@v2
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.RED_RELEASER_CLIENT_ID }}
|
||||
private-key: ${{ secrets.RED_RELEASER_PRIVATE_KEY }}
|
||||
|
||||
# Checkout repository and install Python
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.8'
|
||||
|
||||
@@ -105,7 +112,7 @@ jobs:
|
||||
id: cpr_bump_stable
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
commit-message: Version bump to ${{ steps.bump_version_stable.outputs.new_version }}
|
||||
title: Version bump to ${{ steps.bump_version_stable.outputs.new_version }}
|
||||
body: |
|
||||
@@ -113,18 +120,10 @@ jobs:
|
||||
Please ensure that there are no errors or invalid files are in the PR.
|
||||
labels: "Automated PR, Changelog Entry: Skipped"
|
||||
branch: "automated/pr_bumps/${{ steps.bump_version_stable.outputs.new_version }}"
|
||||
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
||||
committer: >-
|
||||
${{ steps.app-token.outputs.app-slug }}[bot]
|
||||
<263745220+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>
|
||||
author: >-
|
||||
${{ steps.app-token.outputs.app-slug }}[bot]
|
||||
<263745220+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>
|
||||
milestone: ${{ steps.get_milestone_number.outputs.result }}
|
||||
|
||||
- name: Close and reopen the PR with different token to trigger CI
|
||||
uses: actions/github-script@v6
|
||||
env:
|
||||
PR_NUMBER: ${{ steps.cpr_bump_stable.outputs.pull-request-number }}
|
||||
PR_OPERATION: ${{ steps.cpr_bump_stable.outputs.pull-request-operation }}
|
||||
with:
|
||||
github-token: ${{ secrets.cogcreators_bot_repo_scoped }}
|
||||
script: |
|
||||
const script = require(
|
||||
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/close_and_reopen_pr.js`
|
||||
);
|
||||
console.log(await script({github, context}));
|
||||
|
||||
@@ -147,9 +147,7 @@ jobs:
|
||||
print-hash: true
|
||||
|
||||
pr_dev_bump:
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
environment: Prepare Release
|
||||
needs: release_to_pypi
|
||||
name: Update Red version number to dev
|
||||
runs-on: ubuntu-latest
|
||||
@@ -160,11 +158,18 @@ jobs:
|
||||
run: |
|
||||
echo "BASE_BRANCH=${TAG_BASE_BRANCH#'refs/heads/'}" >> $GITHUB_ENV
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/create-github-app-token@v2
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.RED_RELEASER_CLIENT_ID }}
|
||||
private-key: ${{ secrets.RED_RELEASER_PRIVATE_KEY }}
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.BASE_BRANCH }}
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.8'
|
||||
|
||||
@@ -194,7 +199,7 @@ jobs:
|
||||
id: cpr_bump_dev
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
commit-message: Version bump to ${{ steps.bump_version_dev.outputs.new_version }}
|
||||
title: Version bump to ${{ steps.bump_version_dev.outputs.new_version }}
|
||||
body: |
|
||||
@@ -202,19 +207,11 @@ jobs:
|
||||
Please ensure that there are no errors or invalid files are in the PR.
|
||||
labels: "Automated PR, Changelog Entry: Skipped"
|
||||
branch: "automated/pr_bumps/${{ steps.bump_version_dev.outputs.new_version }}"
|
||||
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
||||
committer: >-
|
||||
${{ steps.app-token.outputs.app-slug }}[bot]
|
||||
<263745220+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>
|
||||
author: >-
|
||||
${{ steps.app-token.outputs.app-slug }}[bot]
|
||||
<263745220+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>
|
||||
milestone: ${{ steps.get_milestone_number.outputs.result }}
|
||||
base: ${{ env.BASE_BRANCH }}
|
||||
|
||||
- name: Close and reopen the PR with different token to trigger CI
|
||||
uses: actions/github-script@v6
|
||||
env:
|
||||
PR_NUMBER: ${{ steps.cpr_bump_dev.outputs.pull-request-number }}
|
||||
PR_OPERATION: ${{ steps.cpr_bump_dev.outputs.pull-request-operation }}
|
||||
with:
|
||||
github-token: ${{ secrets.cogcreators_bot_repo_scoped }}
|
||||
script: |
|
||||
const script = require(
|
||||
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/close_and_reopen_pr.js`
|
||||
);
|
||||
console.log(await script({github, context}));
|
||||
|
||||
@@ -7,6 +7,10 @@ build:
|
||||
jobs:
|
||||
install:
|
||||
- pip install .[doc]
|
||||
post_build:
|
||||
- mkdir -p docs/_build/doctrees docs/_build/markdown "$READTHEDOCS_OUTPUT/html/_markdown"
|
||||
- python -m sphinx -T -b markdown -d docs/_build/doctrees -D "language=$READTHEDOCS_LANGUAGE" docs docs/_build/markdown
|
||||
- cp docs/_build/markdown/changelog.md "$READTHEDOCS_OUTPUT/html/_markdown/changelog.md"
|
||||
|
||||
sphinx:
|
||||
configuration: docs/conf.py
|
||||
|
||||
@@ -64,6 +64,12 @@ liking, making it completely customizable. This is a *self-hosted bot* – meani
|
||||
to host and maintain your own instance. You can turn Red into an admin bot, music bot, trivia bot,
|
||||
new best friend or all of these together!
|
||||
|
||||
Red is built for [Discord](https://discord.com/), a popular VOIP and instant messaging platform.
|
||||
It's best suited for use in guilds (also known as servers), where it utilizes Discord's
|
||||
well-documented API to communicate and deliver its many features. Discord offers its API to
|
||||
encourage developers to explore their creativity by building programs, tools, and services that
|
||||
enhance the Discord experience.
|
||||
|
||||
[Installation](#installation) is easy, and you do **NOT** need to know anything about coding! Aside
|
||||
from installing and updating, every part of the bot can be controlled from within Discord.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,43 @@
|
||||
from typing import Any, Dict, List
|
||||
|
||||
from docutils import nodes
|
||||
from sphinx.application import Sphinx
|
||||
from sphinx.util.docutils import SphinxDirective
|
||||
|
||||
|
||||
class ChangelogContributors(SphinxDirective):
|
||||
has_content = True
|
||||
|
||||
def run(self) -> List[nodes.Node]:
|
||||
contributors = [contributor for line in self.content for contributor in line.split()]
|
||||
|
||||
comment_value = " ".join(contributors)
|
||||
line_nodes = []
|
||||
for contributor in contributors:
|
||||
if line_nodes:
|
||||
line_nodes.append(nodes.Text(", "))
|
||||
line_nodes.append(
|
||||
nodes.reference(
|
||||
contributor,
|
||||
f"@{contributor}",
|
||||
internal=False,
|
||||
refuri=f"https://github.com/sponsors/{contributor}",
|
||||
)
|
||||
)
|
||||
|
||||
node = nodes.line_block(
|
||||
"",
|
||||
nodes.comment("", f"RED-CHANGELOG-CONTRIBUTORS: {comment_value}"),
|
||||
nodes.line("", "Thanks to all these amazing people who contributed to this release:"),
|
||||
nodes.line("", "", *line_nodes),
|
||||
)
|
||||
return [node]
|
||||
|
||||
|
||||
def setup(app: Sphinx) -> Dict[str, Any]:
|
||||
app.add_directive("changelog-contributors", ChangelogContributors)
|
||||
return {
|
||||
"version": "1.0",
|
||||
"parallel_read_safe": True,
|
||||
"parallel_write_safe": True,
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
from typing import Any, Dict, List, Set
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.io import StringOutput
|
||||
from docutils.nodes import Element
|
||||
|
||||
from sphinx.application import Sphinx
|
||||
from sphinx.builders.text import TextBuilder
|
||||
from sphinx.writers.text import TextWriter
|
||||
from sphinx.util import logging
|
||||
from sphinx.util.docutils import SphinxTranslator
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class PromptTranslator(SphinxTranslator):
|
||||
builder: PromptBuilder
|
||||
|
||||
def __init__(self, document: nodes.document, builder: PromptBuilder) -> None:
|
||||
super().__init__(document, builder)
|
||||
self.body = ""
|
||||
self.prompts: List[Dict[str, str]] = []
|
||||
|
||||
def visit_document(self, node: Element) -> None:
|
||||
pass
|
||||
|
||||
def depart_document(self, node: Element) -> None:
|
||||
if not self.prompts:
|
||||
self.body = ""
|
||||
return
|
||||
if self.builder.out_suffix.endswith(".json"):
|
||||
self.body = json.dumps(self.prompts, indent=4)
|
||||
else:
|
||||
self.body = "\n".join(prompt["content"] for prompt in self.prompts)
|
||||
|
||||
def unknown_visit(self, node: Element) -> None:
|
||||
pass
|
||||
|
||||
def unknown_departure(self, node: Element) -> None:
|
||||
pass
|
||||
|
||||
def visit_prompt(self, node: Element) -> None:
|
||||
self.prompts.append(
|
||||
{
|
||||
"language": node.attributes["language"],
|
||||
"prompts": node.attributes["prompts"],
|
||||
"modifiers": node.attributes["modifiers"],
|
||||
"rawsource": node.rawsource,
|
||||
"content": node.children[0],
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class PromptWriter(TextWriter):
|
||||
def translate(self) -> None:
|
||||
visitor = self.builder.create_translator(self.document, self.builder)
|
||||
self.document.walkabout(visitor)
|
||||
self.output = visitor.body
|
||||
|
||||
|
||||
class prompt(nodes.literal_block):
|
||||
pass
|
||||
|
||||
|
||||
class PromptBuilder(TextBuilder):
|
||||
"""Extract prompts from documents."""
|
||||
|
||||
format = "json"
|
||||
epilog = "The files with prompts are in %(outdir)s."
|
||||
|
||||
out_suffix = ".json"
|
||||
default_translator_class = PromptTranslator
|
||||
writer: PromptWriter
|
||||
|
||||
def init(self) -> None:
|
||||
sphinx_prompt = __import__("sphinx-prompt")
|
||||
|
||||
def run(self) -> List[prompt]:
|
||||
self.assert_has_content()
|
||||
rawsource = "\n".join(self.content)
|
||||
language = self.options.get("language") or "text"
|
||||
prompts = [
|
||||
p
|
||||
for p in (
|
||||
self.options.get("prompts") or sphinx_prompt.PROMPTS.get(language, "")
|
||||
).split(",")
|
||||
if p
|
||||
]
|
||||
modifiers = [
|
||||
modifier for modifier in self.options.get("modifiers", "").split(",") if modifier
|
||||
]
|
||||
content = rawsource
|
||||
if "auto" in modifiers:
|
||||
parts = []
|
||||
for line in self.content:
|
||||
for p in prompts:
|
||||
if line.startswith(p):
|
||||
line = line[len(p) + 1 :].rstrip()
|
||||
parts.append(line)
|
||||
content = "\n".join(parts)
|
||||
node = prompt(
|
||||
rawsource,
|
||||
content,
|
||||
directive_content=self.content,
|
||||
language=language,
|
||||
prompts=self.options.get("prompts") or sphinx_prompt.PROMPTS.get(language, ""),
|
||||
modifiers=modifiers,
|
||||
)
|
||||
return [node]
|
||||
|
||||
sphinx_prompt.PromptDirective.run = run
|
||||
|
||||
def prepare_writing(self, docnames: Set[str]) -> None:
|
||||
del docnames
|
||||
self.writer = PromptWriter(self)
|
||||
|
||||
def write_doc(self, docname: str, doctree: nodes.document) -> None:
|
||||
self.writer.write(doctree, StringOutput(encoding="utf-8"))
|
||||
if not self.writer.output:
|
||||
# don't write empty files
|
||||
return
|
||||
|
||||
filename = os.path.join(self.outdir, docname.replace("/", os.path.sep) + self.out_suffix)
|
||||
os.makedirs(os.path.dirname(filename), exist_ok=True)
|
||||
try:
|
||||
with open(filename, "w", encoding="utf-8") as f:
|
||||
f.write(self.writer.output)
|
||||
except OSError as err:
|
||||
logger.warning("error writing file %s: %s", filename, err)
|
||||
|
||||
|
||||
class JsonPromptBuilder(PromptBuilder):
|
||||
name = "jsonprompt"
|
||||
out_suffix = ".json"
|
||||
|
||||
|
||||
class TextPromptBuilder(PromptBuilder):
|
||||
name = "textprompt"
|
||||
out_suffix = ".txt"
|
||||
|
||||
|
||||
def setup(app: Sphinx) -> Dict[str, Any]:
|
||||
app.add_builder(JsonPromptBuilder)
|
||||
app.add_builder(TextPromptBuilder)
|
||||
|
||||
return {
|
||||
"version": "1.0",
|
||||
"parallel_read_safe": True,
|
||||
"parallel_write_safe": True,
|
||||
}
|
||||
@@ -3,16 +3,14 @@
|
||||
==========================
|
||||
About Virtual Environments
|
||||
==========================
|
||||
Creating a virtual environment is really easy and usually prevents many common installation
|
||||
problems.
|
||||
Creating a virtual environment is simple and helps prevent installation problems.
|
||||
|
||||
**What Are Virtual Environments For?**
|
||||
|
||||
Virtual environments allow you to isolate Red's library dependencies, cog dependencies and python
|
||||
binaries from the rest of your system. There is no performance overhead to using virtual environment
|
||||
and it saves you from a lot of troubles during setup. It also makes sure Red and its dependencies
|
||||
are installed to a predictable location which makes uninstalling Red as simple as removing a single folder,
|
||||
without worrying about losing your data or other things on your system becoming broken.
|
||||
Virtual environments allow you to isolate Red's library dependencies, cog dependencies, and Python
|
||||
binaries from the rest of your system with no performance overhead, ensuring those dependencies
|
||||
and Red are installed to a predictable location. This makes uninstalling Red as simple as removing
|
||||
a single folder, preventing any data loss or breaking other things on your system.
|
||||
|
||||
|
||||
--------------------------------------------
|
||||
@@ -21,19 +19,21 @@ Virtual Environments with Multiple Instances
|
||||
If you are running multiple instances of Red on the same machine, you have the option of either
|
||||
using the same virtual environment for all of them, or creating separate ones.
|
||||
|
||||
.. note::
|
||||
Using a *single* virtual environment for all of your instances means you:
|
||||
|
||||
This only applies for multiple instances of V3. If you are running a V2 instance as well,
|
||||
you **must** use separate virtual environments.
|
||||
- Only need to update Red once for all instances.
|
||||
- Must shut down all instances prior to updating.
|
||||
- Will save space on your hard drive.
|
||||
- Want all instances to share the same version/dependencies.
|
||||
|
||||
The advantages of using a *single* virtual environment for all of your V3 instances are:
|
||||
Using *multiple* virtual environments for each individual or select groups of instances means you:
|
||||
|
||||
- When updating Red, you will only need to update it once for all instances (however you will still need to restart all instances for the changes to take effect)
|
||||
- It will save space on your hard drive
|
||||
|
||||
On the other hand, you may wish to update each of your instances individually.
|
||||
- Need to update Red within each virtual environment separately.
|
||||
- Can update Red without needing to update all instances.
|
||||
- Only need to shut down the instance(s) being updated.
|
||||
- Want different Red/dependency versions on different instances.
|
||||
|
||||
.. important::
|
||||
|
||||
Windows users with multiple instances should create *separate* virtual environments, as
|
||||
updating multiple running instances at once is likely to cause errors.
|
||||
Regardless of which option you choose, do not update while any instances within that virtual
|
||||
environment are running. This is especially true for Windows, as files are locked by the system while in use.
|
||||
@@ -0,0 +1,143 @@
|
||||
.. _backup-red:
|
||||
|
||||
============================
|
||||
Backing Up and Restoring Red
|
||||
============================
|
||||
|
||||
Red can be backed up and restored to any system as long as it is a supported per our `end-user-guarantees`.
|
||||
The system it's restored to can be different from the system that was backed up.
|
||||
|
||||
.. note::
|
||||
|
||||
Some 3rd-party cogs may not support all systems that Core Red supports and such cogs may therefore not work,
|
||||
if restored to an unsupported system. This does not affect cogs that do not impose additional restrictions.
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
:depth: 2
|
||||
|
||||
Creating backups
|
||||
****************
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
To make a backup, perform the following steps:
|
||||
|
||||
#. Stop the bot, ideally with ``[p]shutdown``.
|
||||
#. Activate your venv.
|
||||
|
||||
.. prompt:: batch
|
||||
|
||||
"%userprofile%\redenv\Scripts\activate.bat"
|
||||
#. Backup your Red instance with the following command:
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
|
||||
redbot-setup backup <your instance name>
|
||||
|
||||
.. attention::
|
||||
|
||||
Replace ``<your instance name>`` with the name of the instance you want to backup.
|
||||
#. The command will create a backup file for you and show you the path to it.
|
||||
|
||||
.. tip::
|
||||
|
||||
If you want to backup your instance to a custom folder,
|
||||
you can run the ``redbot-setup backup`` command as shown below,
|
||||
replacing ``C:\path\to\backup\folder`` with the path to the folder that
|
||||
you want to backup your instance to:
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
|
||||
redbot-setup backup <your instance name> C:\path\to\backup\folder
|
||||
|
||||
Linux & Mac
|
||||
-----------
|
||||
|
||||
To make a backup, perform the following steps:
|
||||
|
||||
#. Stop the bot, ideally with ``[p]shutdown``.
|
||||
#. Activate your venv.
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
source ~/redenv/bin/activate
|
||||
#. Backup your Red instance with the following command:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
|
||||
redbot-setup backup <your instance name>
|
||||
|
||||
.. attention::
|
||||
|
||||
Replace ``<your instance name>`` with the name of the instance you want to backup.
|
||||
#. The command will create a backup file for you and show you the path to it.
|
||||
|
||||
.. tip::
|
||||
|
||||
If you want to backup your instance to a custom folder,
|
||||
you can run the ``redbot-setup backup`` command as shown below,
|
||||
replacing ``/path/to/backup/folder`` with the path to the folder that
|
||||
you want to backup your instance to:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
|
||||
redbot-setup backup <your instance name> /path/to/backup/folder
|
||||
|
||||
Restoring backups
|
||||
*****************
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
To restore a backup, perform the following steps:
|
||||
|
||||
#. `Install Red <windows-install-guide>` on the new machine/location, skipping the ``redbot-setup`` step.
|
||||
#. Activate your venv.
|
||||
|
||||
.. prompt:: batch
|
||||
|
||||
"%userprofile%\redenv\Scripts\activate.bat"
|
||||
#. Restore your Red instance with the following command:
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
|
||||
redbot-setup restore C:\path\to\backup\file.tar.gz
|
||||
|
||||
.. attention::
|
||||
|
||||
Replace ``C:\path\to\backup\file.tar.gz`` with the path to the backup file
|
||||
that you want to restore from.
|
||||
|
||||
#. The command will guide you through the restore process.
|
||||
|
||||
Linux & Mac
|
||||
-----------
|
||||
|
||||
To restore a backup, perform the following steps:
|
||||
|
||||
#. `Install Red <install-guides>` on the new machine/location, skipping the ``redbot-setup`` step.
|
||||
#. Activate your venv.
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
source ~/redenv/bin/activate
|
||||
#. Restore your Red instance with the following command:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
|
||||
redbot-setup restore /path/to/backup/file.tar.gz
|
||||
|
||||
.. attention::
|
||||
|
||||
Replace ``/path/to/backup/file.tar.gz`` with the path to the backup file
|
||||
that you want to restore from.
|
||||
|
||||
#. The command will guide you through the restore process.
|
||||
@@ -21,25 +21,34 @@ Creating a Bot account is a pretty straightforward process.
|
||||
.. image:: /.resources/bot-guide/discord_create_app_button.png
|
||||
:alt: The new application button.
|
||||
|
||||
4. Give the application a name and click "Create".
|
||||
4. Give the application a name, check the box to accept the Terms of Service, and click "Create".
|
||||
|
||||
.. image:: /.resources/bot-guide/discord_create_app_form.png
|
||||
:alt: The new application form filled in.
|
||||
|
||||
5. Create a Bot User by navigating to the "Bot" tab and clicking "Add Bot".
|
||||
5. Navigate to the "Install" tab on the left side of the screen.
|
||||
|
||||
- Click "Yes, do it!" to continue.
|
||||
.. image:: /.resources/bot-guide/discord_installation_tab.png
|
||||
:alt: The installation tab in the application page.
|
||||
|
||||
.. image:: /.resources/bot-guide/discord_create_bot_user.png
|
||||
:alt: The Add Bot button.
|
||||
6. If you want others to be able to invite your bot tick the **Public Bot**. Keeping it unticked will prevent others from inviting your bot to their servers and only you will be able to add the bot to servers (provided that you have needed permissions in the server you want to add the bot to).
|
||||
6. Uncheck "User Install" and set "Install Link" to "None"
|
||||
|
||||
.. image:: /.resources/bot-guide/discord_installation_options.png
|
||||
:alt: How the Installation options should look like for most people.
|
||||
|
||||
7. Navigate to the "Bot" tab on the left side of the screen.
|
||||
|
||||
.. image:: /.resources/bot-guide/discord_bot_tab.png
|
||||
:alt: The bot tab in the application page.
|
||||
|
||||
8. If you want others to be able to invite your bot tick the **Public Bot**. Keeping it unticked will prevent others from inviting your bot to their servers and only you will be able to add the bot to servers (provided that you have needed permissions in the server you want to add the bot to).
|
||||
|
||||
- Make sure **Require OAuth2 Code Grant** is unchecked.
|
||||
|
||||
.. image:: /.resources/bot-guide/discord_bot_user_options.png
|
||||
:alt: How the Bot User options should look like for most people.
|
||||
|
||||
7. Copy the token using the "Copy" button.
|
||||
9. Acquire the token using the "Reset Token" button, then "Copy" after it is revealed.
|
||||
|
||||
- **This is not the Client Secret at the General Information page**
|
||||
|
||||
|
||||
@@ -116,18 +116,18 @@ How can I use this playlist link with playlist commands in audio?**
|
||||
:ref:`setting up Audio for multiple bots<multibots>`. Otherwise, another process is using the
|
||||
port, so you need to figure out what is using port 2333 and terminate/disconnect it yourself.
|
||||
|
||||
**Q: My terminal is saying that I "must install Java 17 or 11 for Lavalink to run". How can I fix this?**
|
||||
**Q: My terminal is saying that I "must install Java 21 or 17 for Lavalink to run". How can I fix this?**
|
||||
|
||||
You are getting this error because you have a different version of Java installed, or you don't have
|
||||
Java installed at all. As the error states, Java 17 or 11 is required, and can be installed from
|
||||
`here <https://adoptium.net/temurin/releases/?version=17>`__.
|
||||
Java installed at all. As the error states, Java 21 or 17 is required, and can be installed from
|
||||
`here <https://adoptium.net/temurin/releases/?version=21>`__.
|
||||
|
||||
If you have Java 17 or 11 installed, and are still getting this error, you will have to manually tell Audio where your Java install is located.
|
||||
Use ``[p]llset java <path_to_java_17_or_11_executable>``, to make Audio launch Lavalink with a
|
||||
If you have Java 21 or 17 installed, and are still getting this error, you will have to manually tell Audio where your Java install is located.
|
||||
Use ``[p]llset java <path_to_java_21_or_17_executable>``, to make Audio launch Lavalink with a
|
||||
specific Java binary. To do this, you will need to locate your ``java.exe``/``java`` file
|
||||
in your **Java 17 or 11 install**.
|
||||
in your **Java 21 or 17 install**.
|
||||
|
||||
Alternatively, update your PATH settings so that Java 17 or 11 is the one used by ``java``. However,
|
||||
Alternatively, update your PATH settings so that Java 21 or 17 is the one used by ``java``. However,
|
||||
you should confirm that nothing other than Red is running on the machine that requires Java.
|
||||
|
||||
.. _queue_commands:
|
||||
@@ -550,7 +550,7 @@ uses OpenJDK 17 in the managed Lavalink configuration. It can be installed by ru
|
||||
|
||||
sudo apt install openjdk-17-jre-headless -y
|
||||
|
||||
Otherwise, Lavalink works well with most versions of Java 11, 13, 15, 16, 17, and 18. Azul
|
||||
Otherwise, Lavalink works well with most versions of Java 17 and higher. Azul
|
||||
Zulu builds are suggested, see `here <https://github.com/lavalink-devs/Lavalink/#requirements>`__ for more information.
|
||||
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -3651,7 +3651,7 @@ This command shouldn't need to be used most of the time,
|
||||
and is only useful if the host machine has conflicting Java versions.
|
||||
|
||||
If changing this make sure that the Java executable you set is supported by Audio.
|
||||
The current supported versions are Java 17 and 11.
|
||||
The current supported versions are Java 21 or 17.
|
||||
|
||||
**Arguments**
|
||||
|
||||
|
||||
@@ -1829,7 +1829,10 @@ Commands to add servers or channels to the ignore list.
|
||||
|
||||
The ignore list will prevent the bot from responding to commands in the configured locations.
|
||||
|
||||
.. Note:: Owners and Admins override the ignore list.
|
||||
.. Note::
|
||||
|
||||
- Category ignores are ignored by user-installed commands
|
||||
- Owners and Admins override the ignore list.
|
||||
|
||||
|
||||
.. _core-command-ignore-channel:
|
||||
@@ -1850,7 +1853,10 @@ Ignore commands in the channel, thread, or category.
|
||||
|
||||
Defaults to the current thread or channel.
|
||||
|
||||
.. Note:: Owners, Admins, and those with Manage Channel permissions override ignored channels.
|
||||
.. Note::
|
||||
|
||||
- Category ignores are ignored by user-installed commands
|
||||
- Owners and Admins override the ignore list.
|
||||
|
||||
|
||||
**Examples:**
|
||||
|
||||
@@ -324,7 +324,7 @@ Explains how to set the Twitch token.
|
||||
|
||||
To set the Twitch API tokens, follow these steps:
|
||||
|
||||
1. Go to this page: https://dev.twitch.tv/dashboard/apps.
|
||||
1. Go to this page: https://dev.twitch.tv/console/apps.
|
||||
|
||||
2. Click Register Your Application.
|
||||
|
||||
|
||||
@@ -291,7 +291,7 @@ warningset showmoderator
|
||||
|
||||
**Description**
|
||||
|
||||
Decide whether the name of the moderator warning a user should be included in the DM to that user.
|
||||
Decide whether the name of the moderator warning a user should be included in the DM to that user when being warned or self requesting their warnings.
|
||||
|
||||
**Arguments**
|
||||
|
||||
@@ -337,6 +337,26 @@ Set the channel where warnings should be sent to.
|
||||
|
||||
* ``[channel]``: |channel-input| Leave empty to use the channel ``[p]warn`` command was called in.
|
||||
|
||||
.. _warnings-command-warningset-mywarnings-sendtodms:
|
||||
|
||||
"""""""""""""""""""""""""""""""
|
||||
warningset mywarnings sendtodms
|
||||
"""""""""""""""""""""""""""""""
|
||||
|
||||
**Syntax**
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]warningset mywarnings sendtodms <true_or_false>
|
||||
|
||||
**Description**
|
||||
|
||||
Whether a member self requesting their warnings with ``[p]mywarnings`` should get them sent to DMs or in the current channel.
|
||||
|
||||
**Arguments**
|
||||
|
||||
* ``<true_or_false>``: |bool-input|
|
||||
|
||||
.. _warnings-command-warnreason:
|
||||
|
||||
^^^^^^^^^^
|
||||
|
||||
@@ -44,8 +44,11 @@ extensions = [
|
||||
"sphinx.ext.napoleon",
|
||||
"sphinx.ext.doctest",
|
||||
"sphinxcontrib_trio",
|
||||
"sphinx_markdown_builder",
|
||||
"sphinx-prompt",
|
||||
"changelog_contributors",
|
||||
"deprecated_removed",
|
||||
"prompt_builder",
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
@@ -229,6 +232,14 @@ linkcheck_ignore = [r"https://java.com*", r"https://chocolatey.org*"]
|
||||
linkcheck_retries = 3
|
||||
|
||||
|
||||
# -- Options for markdown builder ----------------------------------------
|
||||
|
||||
markdown_http_base = os.environ.get(
|
||||
"READTHEDOCS_CANONICAL_URL", "https://docs.discord.red/en/stable"
|
||||
)
|
||||
markdown_uri_doc_suffix = ".html"
|
||||
|
||||
|
||||
# -- Options for extensions -----------------------------------------------
|
||||
|
||||
if dpy_version_info.releaselevel == "final":
|
||||
|
||||
@@ -7,9 +7,6 @@
|
||||
Bank
|
||||
====
|
||||
|
||||
Bank has now been separated from Economy for V3. New to bank is support for
|
||||
having a global bank.
|
||||
|
||||
***********
|
||||
Basic Usage
|
||||
***********
|
||||
|
||||
@@ -9,7 +9,7 @@ Bot
|
||||
Red
|
||||
^^^
|
||||
|
||||
.. autoclass:: Red
|
||||
.. autoclass:: Red()
|
||||
:members:
|
||||
:exclude-members: get_context, get_embed_color
|
||||
|
||||
|
||||
@@ -446,49 +446,6 @@ Of course, if we're less than responsible pet owners, there are consequences::
|
||||
"how poorly it was taken care of."
|
||||
)
|
||||
|
||||
|
||||
*************
|
||||
V2 Data Usage
|
||||
*************
|
||||
There has been much conversation on how to bring V2 data into V3 and, officially, we recommend that cog developers
|
||||
make use of the public interface in Config (using the categories as described in these docs) rather than simply
|
||||
copying and pasting your V2 data into V3. Using Config as recommended will result in a much better experience for
|
||||
you in the long run and will simplify cog creation and maintenance.
|
||||
|
||||
However.
|
||||
|
||||
We realize that many of our cog creators have expressed disinterest in writing converters for V2 to V3 style data.
|
||||
As a result we have opened up config to take standard V2 data and allow cog developers to manipulate it in V3 in
|
||||
much the same way they would in V2. The following examples will demonstrate how to accomplish this.
|
||||
|
||||
.. warning::
|
||||
|
||||
By following this method to use V2 data in V3 you may be at risk of data corruption if your cog is used on a bot
|
||||
with multiple shards. USE AT YOUR OWN RISK.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from redbot.core import Config, commands
|
||||
|
||||
|
||||
class ExampleCog(commands.Cog):
|
||||
def __init__(self):
|
||||
self.config = Config.get_conf(self, 1234567890)
|
||||
self.config.init_custom("V2", 1)
|
||||
self.data = {}
|
||||
|
||||
async def load_data(self):
|
||||
self.data = await self.config.custom("V2", "V2").all()
|
||||
|
||||
async def save_data(self):
|
||||
await self.config.custom("V2", "V2").set(self.data)
|
||||
|
||||
|
||||
async def setup(bot):
|
||||
cog = ExampleCog()
|
||||
await cog.load_data()
|
||||
await bot.add_cog(cog)
|
||||
|
||||
************************************
|
||||
Best practices and performance notes
|
||||
************************************
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
Mod log
|
||||
=======
|
||||
|
||||
Mod log has now been separated from Mod for V3.
|
||||
|
||||
***********
|
||||
Basic Usage
|
||||
***********
|
||||
|
||||
@@ -9,7 +9,7 @@ RPC
|
||||
RPC support is included in Red on a `provisional <developer-guarantees-exclusions>` basis.
|
||||
Backwards incompatible changes (up to and including removal of the RPC) may occur if deemed necessary.
|
||||
|
||||
V3 comes default with an internal RPC server that may be used to remotely control the bot in various ways.
|
||||
Red comes default with an internal RPC server that may be used to remotely control the bot in various ways.
|
||||
Cogs must register functions to be exposed to RPC clients.
|
||||
Each of those functions must only take JSON serializable parameters and must return JSON serializable objects.
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
.. role:: python(code)
|
||||
:language: python
|
||||
|
||||
========================
|
||||
Creating cogs for Red V3
|
||||
========================
|
||||
=====================
|
||||
Creating cogs for Red
|
||||
=====================
|
||||
|
||||
This guide serves as a tutorial on creating cogs for Red V3.
|
||||
This guide serves as a tutorial on creating cogs for Red.
|
||||
It will cover the basics of setting up a package for your
|
||||
cog and the basics of setting up the file structure. We will
|
||||
also point you towards some further resources that may assist
|
||||
@@ -111,8 +111,8 @@ Make sure that both files are saved.
|
||||
Testing your cog
|
||||
----------------
|
||||
|
||||
To test your cog, you will need a running instance of V3.
|
||||
Assuming you installed V3 as outlined above, run :code:`redbot-setup`
|
||||
To test your cog, you will need a running instance of Red.
|
||||
Assuming you installed Red as outlined above, run :code:`redbot-setup`
|
||||
and provide the requested information. Once that's done, run Red
|
||||
by doing :code:`redbot <instance name> --dev` to start Red.
|
||||
Complete the initial setup by providing a valid token and setting a
|
||||
@@ -169,6 +169,4 @@ Becoming an Approved Cog Creator
|
||||
Additional resources
|
||||
--------------------
|
||||
|
||||
Be sure to check out the :doc:`/guide_migration` for some resources
|
||||
on developing cogs for V3. This will also cover differences between V2 and V3 for
|
||||
those who developed cogs for V2.
|
||||
If you've developed cogs for V2, you might find `incompatible_changes/v2_migration` document helpful.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.. Publishing cogs for V3
|
||||
|
||||
Publishing cogs for Red V3
|
||||
==========================
|
||||
Publishing cogs for Red
|
||||
=======================
|
||||
|
||||
Users of Red install 3rd-party cogs using Downloader cog. To make your cog available
|
||||
to install for others, you will have to create a git repository
|
||||
|
||||
@@ -32,12 +32,11 @@ First, we would like to make something clear:
|
||||
Hosting on a VPS or Dedicated Server
|
||||
------------------------------------
|
||||
|
||||
| You can host Red in a VPS running Linux or Windows. Using a Linux VPS is the
|
||||
| You can host Red on a VPS running Linux or Windows. Using a Linux VPS is the
|
||||
recommended option. Dedicated servers also work but are overpowered and cost
|
||||
ineffective unless one plans to run a very large bot or use their server for
|
||||
more than just hosting Red. If you have already created an instance, Red can be moved to a different
|
||||
server for hosting with a backup/restore process. More information and guidance
|
||||
about this process is available in the `Red Support Server <https://discord.com/invite/red>`_.
|
||||
server for hosting using the :doc:`backup/restore process </backup_red>`.
|
||||
|
||||
.. warning::
|
||||
Please be aware that a Linux server is controlled through a command line.
|
||||
@@ -87,7 +86,7 @@ Average Providers
|
||||
| `OVH <https://us.ovhcloud.com/vps/>`_ is a company focused on providing hosting
|
||||
and cloud services with locations in Europe, North America and Asia Pacific.
|
||||
|
||||
| `Time4VPS <https://www.time4vps.eu/>`_ is a Lithuanian VPS provider mainly focused
|
||||
| `Time4VPS <https://www.time4vps.com/>`_ is a Lithuanian VPS provider mainly focused
|
||||
on lower cost.
|
||||
|
||||
| `GalaxyGate <https://galaxygate.net/>`_ is a VPS and dedicated server provider
|
||||
@@ -114,7 +113,7 @@ Average Providers
|
||||
| `LowEndBox <http://lowendbox.com/>`_ is a website where hosting providers are
|
||||
discussed and curated, often with lower costs and less known providers.
|
||||
|
||||
| `AlphaVps <https://alphavps.com>`_ is a Bulgaria VPS and dedicated server provider
|
||||
| `AlphaVps <https://alphavps.com>`_ is a Bulgarian VPS and dedicated server provider
|
||||
with locations in Los Angeles, New York, England, Germany and Bulgaria.
|
||||
|
||||
--------------------
|
||||
|
||||
@@ -10,3 +10,4 @@ Backward incompatible changes
|
||||
|
||||
future
|
||||
3.5
|
||||
v2_migration
|
||||
|
||||
@@ -38,6 +38,49 @@ per-server/member/user/role/channel or global basis. Be sure to check
|
||||
out :doc:`/framework_config` for the API docs for Config as well as a
|
||||
tutorial on using Config.
|
||||
|
||||
*************
|
||||
V2 Data Usage
|
||||
*************
|
||||
|
||||
There has been much conversation on how to bring V2 data into V3 and, officially, we recommend that cog developers
|
||||
make use of the public interface in Config (using the categories as described in these docs) rather than simply
|
||||
copying and pasting your V2 data into V3. Using Config as recommended will result in a much better experience for
|
||||
you in the long run and will simplify cog creation and maintenance.
|
||||
|
||||
However.
|
||||
|
||||
We realize that many of our cog creators have expressed disinterest in writing converters for V2 to V3 style data.
|
||||
As a result we have opened up config to take standard V2 data and allow cog developers to manipulate it in V3 in
|
||||
much the same way they would in V2. The following examples will demonstrate how to accomplish this.
|
||||
|
||||
.. warning::
|
||||
|
||||
By following this method to use V2 data in V3 you may be at risk of data corruption if your cog is used on a bot
|
||||
with multiple shards. USE AT YOUR OWN RISK.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from redbot.core import Config, commands
|
||||
|
||||
|
||||
class ExampleCog(commands.Cog):
|
||||
def __init__(self):
|
||||
self.config = Config.get_conf(self, 1234567890)
|
||||
self.config.init_custom("V2", 1)
|
||||
self.data = {}
|
||||
|
||||
async def load_data(self):
|
||||
self.data = await self.config.custom("V2", "V2").all()
|
||||
|
||||
async def save_data(self):
|
||||
await self.config.custom("V2", "V2").set(self.data)
|
||||
|
||||
|
||||
async def setup(bot):
|
||||
cog = ExampleCog()
|
||||
await cog.load_data()
|
||||
await bot.add_cog(cog)
|
||||
|
||||
----
|
||||
Bank
|
||||
----
|
||||
@@ -15,6 +15,7 @@ Welcome to Red - Discord Bot's documentation!
|
||||
install_guides/index
|
||||
bot_application_guide
|
||||
update_red
|
||||
backup_red
|
||||
about_venv
|
||||
autostart_windows
|
||||
autostart_mac
|
||||
@@ -61,7 +62,6 @@ Welcome to Red - Discord Bot's documentation!
|
||||
:maxdepth: 2
|
||||
:caption: Red Development Framework Reference:
|
||||
|
||||
guide_migration
|
||||
guide_cog_creation
|
||||
guide_slash_and_interactions
|
||||
guide_publish_cogs
|
||||
|
||||
@@ -8,6 +8,7 @@ To install without additional config backend support:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
:modifiers: red-install-guide-install-normal
|
||||
|
||||
python -m pip install -U pip wheel
|
||||
python -m pip install -U Red-DiscordBot
|
||||
@@ -16,6 +17,7 @@ Or, to install with PostgreSQL support:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
:modifiers: red-install-guide-install-postgres
|
||||
|
||||
python -m pip install -U pip wheel
|
||||
python -m pip install -U "Red-DiscordBot[postgres]"
|
||||
@@ -29,6 +31,7 @@ After installation, set up your instance with the following command:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
:modifiers: red-install-guide-setup
|
||||
|
||||
redbot-setup
|
||||
|
||||
@@ -40,6 +43,7 @@ Once done setting up the instance, run the following command to run Red:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
:modifiers: red-install-guide-run
|
||||
|
||||
redbot <your instance name>
|
||||
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
For safety reasons, DO NOT install Red with a root user. If you are unsure how to create
|
||||
a new user on Linux, see `DigitalOcean's tutorial: How To Create a New Sudo-enabled User
|
||||
<https://www.digitalocean.com/community/tutorials/how-to-create-a-new-sudo-enabled-user-on-ubuntu-20-04-quickstart>`_.
|
||||
<https://www.digitalocean.com/community/tutorials/how-to-create-a-new-sudo-enabled-user-on-ubuntu>`_.
|
||||
|
||||
@@ -12,7 +12,7 @@ Installing Red on Fedora Linux
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
Fedora Linux 41 and above has all required packages available in official repositories. Install
|
||||
Fedora Linux 42 and above has all required packages available in official repositories. Install
|
||||
them with dnf:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
@@ -24,7 +24,6 @@ we recommend **Ubuntu 24.04 LTS**.
|
||||
opensuse-tumbleweed
|
||||
oracle-linux-8
|
||||
oracle-linux-9
|
||||
raspberry-pi-os-11
|
||||
raspberry-pi-os-12
|
||||
rhel-8
|
||||
rhel-9
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
.. _install-raspberry-pi-os-11:
|
||||
|
||||
======================================================
|
||||
Installing Red on Raspberry Pi OS (Legacy) 11 Bullseye
|
||||
======================================================
|
||||
|
||||
.. include:: _includes/supported-arch-aarch64+armv7l.rst
|
||||
|
||||
.. note::
|
||||
|
||||
While we do provide support and install instructions for running Red
|
||||
on Raspberry Pi OS (Legacy) 11 Bullseye, we highly recommend installing/upgrading to
|
||||
the new version - Raspberry Pi OS 12 Bookworm.
|
||||
|
||||
If you're not sure what version you are using,
|
||||
you can check your version of Raspberry Pi OS by running:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
lsb_release -a
|
||||
|
||||
If you're running Bookworm already, read `install-raspberry-pi-os-12` document instead.
|
||||
|
||||
If you're using Bullseye, please consider performing a clean install of Bookworm if possible.
|
||||
|
||||
.. include:: _includes/linux-preamble.rst
|
||||
|
||||
-------------------------------
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
Raspberry Pi OS "Bullseye" has all required packages available in official repositories. Install them
|
||||
with apt:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
sudo apt update
|
||||
sudo apt -y install python3 python3-dev python3-venv git openjdk-17-jre-headless build-essential nano
|
||||
|
||||
.. Include common instructions:
|
||||
|
||||
.. include:: _includes/create-env-with-venv3.9.rst
|
||||
|
||||
.. include:: _includes/install-and-setup-red-unix.rst
|
||||
@@ -1,8 +1,8 @@
|
||||
.. _install-raspberry-pi-os-12:
|
||||
|
||||
=============================================
|
||||
Installing Red on Raspberry Pi OS 12 Bookworm
|
||||
=============================================
|
||||
======================================================
|
||||
Installing Red on Raspberry Pi OS (Legacy) 12 Bookworm
|
||||
======================================================
|
||||
|
||||
.. include:: _includes/supported-arch-aarch64+armv7l.rst
|
||||
|
||||
|
||||
@@ -133,6 +133,7 @@ Run **one** of the following set of commands, depending on what extras you want
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
:modifiers: red-install-guide-install-normal
|
||||
|
||||
python -m pip install -U pip wheel
|
||||
python -m pip install -U Red-DiscordBot
|
||||
@@ -141,6 +142,7 @@ Run **one** of the following set of commands, depending on what extras you want
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
:modifiers: red-install-guide-install-postgres
|
||||
|
||||
python -m pip install -U pip wheel
|
||||
python -m pip install -U Red-DiscordBot[postgres]
|
||||
@@ -153,6 +155,7 @@ After installation, set up your instance with the following command:
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
:modifiers: red-install-guide-setup
|
||||
|
||||
redbot-setup
|
||||
|
||||
@@ -164,6 +167,7 @@ Once done setting up the instance, run the following command to run Red:
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
:modifiers: red-install-guide-run
|
||||
|
||||
redbot <your instance name>
|
||||
|
||||
|
||||
@@ -25,13 +25,57 @@ Updating differs depending on the version you currently have. Next sections will
|
||||
:depth: 1
|
||||
|
||||
|
||||
Red 3.5.0 or newer
|
||||
******************
|
||||
Red 3.5.25 or newer
|
||||
*******************
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
If you have Red 3.5.0 or newer, you can upgrade by following these steps:
|
||||
If you have Red 3.5.25 or newer, you can upgrade by following these steps:
|
||||
|
||||
#. Shut your bot down.
|
||||
#. Activate your venv with the following command:
|
||||
|
||||
.. prompt:: batch
|
||||
|
||||
"%userprofile%\redenv\Scripts\activate.bat"
|
||||
#. Update Red with this command:
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
|
||||
redbot-update
|
||||
#. Start your bot.
|
||||
|
||||
Linux & Mac
|
||||
-----------
|
||||
|
||||
If you have Red 3.5.25 or newer, you can upgrade by following these steps:
|
||||
|
||||
#. Shut your bot down.
|
||||
#. Activate your virtual environment.
|
||||
|
||||
If you used ``venv`` for your virtual environment, use:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
source ~/redenv/bin/activate
|
||||
|
||||
#. Update Red with this command:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
|
||||
redbot-update
|
||||
#. Start your bot.
|
||||
|
||||
Red 3.5.0-3.5.24
|
||||
****************
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
If you have a Red version between 3.5.0 and 3.5.24, you can upgrade by following these steps:
|
||||
|
||||
#. Shut your bot down.
|
||||
#. Activate your venv with the following command:
|
||||
@@ -55,7 +99,7 @@ If you have Red 3.5.0 or newer, you can upgrade by following these steps:
|
||||
Linux & Mac
|
||||
-----------
|
||||
|
||||
If you have Red 3.5.0 or newer, you can upgrade by following these steps:
|
||||
If you have a Red version between 3.5.0 and 3.5.24, you can upgrade by following these steps:
|
||||
|
||||
#. Shut your bot down.
|
||||
#. Activate your virtual environment.
|
||||
@@ -108,7 +152,6 @@ If you have a Red version between 3.2.0 and 3.4.19, you can upgrade by following
|
||||
#. Start your bot with ``--no-cogs --load-cogs downloader`` flags, for example:
|
||||
|
||||
.. prompt:: batch
|
||||
|
||||
:prompts: (redenv) C:\\>
|
||||
|
||||
redbot <your instance name> --no-cogs --load-cogs downloader
|
||||
|
||||
@@ -50,32 +50,31 @@ their end-of-life date.
|
||||
================================ ======================= ============================================================
|
||||
Operating system version Supported architectures Ideally supported until
|
||||
================================ ======================= ============================================================
|
||||
Windows 10 x86-64 2025-10-14 (`End/Retirement Date <https://docs.microsoft.com/en-us/lifecycle/products/windows-10-home-and-pro>`__)
|
||||
Windows 10 x86-64 2026-10-13 (`End of Consumer Extended Security Updates (ESU) program <https://www.microsoft.com/en-us/windows/extended-security-updates>`__)
|
||||
Windows 11 x86-64 `Retirement Date <https://docs.microsoft.com/en-us/lifecycle/products/windows-11-home-and-pro-version-21h2>`__
|
||||
macOS 13 (Ventura) x86-64, aarch64 ~2025-10
|
||||
macOS 14 (Sonoma) x86-64, aarch64 ~2026-10
|
||||
macOS 15 (Sequoia) x86-64, aarch64 ~2027-10
|
||||
macOS 26 (Tahoe) x86-64, aarch64 ~2028-10
|
||||
Alma Linux 8 x86-64, aarch64 2029-05-31 (`security support <https://wiki.almalinux.org/release-notes/>`__)
|
||||
Alma Linux 9 x86-64, aarch64 2032-05-31 (`security support <https://wiki.almalinux.org/release-notes/>`__)
|
||||
Amazon Linux 2023 x86-64, aarch64 2028-03-15 (`end-of-life <https://docs.aws.amazon.com/linux/al2023/release-notes/support-info-by-support-statement.html#support-info-by-support-statement-eol>`__)
|
||||
Arch Linux x86-64 forever (support is only provided for an up-to-date system)
|
||||
CentOS Stream 9 x86-64, aarch64 2027-05-31 (`expected EOL <https://centos.org/stream9/#timeline>`__)
|
||||
CentOS Stream 9 x86-64, aarch64 2027-05-31 (`Expected EOL <https://centos.org/stream9/#timeline>`__)
|
||||
Debian 12 Bookworm x86-64, aarch64, armv7l 2026-06-10 (`End of life <https://wiki.debian.org/DebianReleases#Production_Releases>`__)
|
||||
Fedora Linux 41 x86-64, aarch64 2025-11-19 (`End of Life <https://docs.fedoraproject.org/en-US/releases/lifecycle/#_maintenance_schedule>`__)
|
||||
Fedora Linux 42 x86-64, aarch64 2026-05-13 (`End of Life <https://docs.fedoraproject.org/en-US/releases/lifecycle/#_maintenance_schedule>`__)
|
||||
openSUSE Leap 15.6 x86-64, aarch64 2025-12-31 (`end of maintenance life cycle <https://en.opensuse.org/Lifetime#openSUSE_Leap>`__)
|
||||
Fedora Linux 42 x86-64, aarch64 2026-05-13 (`End of Life <https://fedorapeople.org/groups/schedule/f-42/f-42-key-tasks.html>`__)
|
||||
Fedora Linux 43 x86-64, aarch64 2026-12-09 (`End of Life <https://fedorapeople.org/groups/schedule/f-43/f-43-key-tasks.html>`__)
|
||||
openSUSE Leap 15.6 x86-64, aarch64 2025-12-31 (`end of maintenance lifecycle <https://en.opensuse.org/Lifetime#openSUSE_Leap>`__)
|
||||
openSUSE Tumbleweed x86-64, aarch64 forever (support is only provided for an up-to-date system)
|
||||
Oracle Linux 8 x86-64, aarch64 2029-07-31 (`End of Premier Support <https://www.oracle.com/us/support/library/elsp-lifetime-069338.pdf>`__)
|
||||
Oracle Linux 9 x86-64, aarch64 2032-06-31 (`End of Premier Support <https://www.oracle.com/us/support/library/elsp-lifetime-069338.pdf>`__)
|
||||
Raspberry Pi OS (Legacy) 11 armv7l ~2025-10 (approximate date of release of Raspberry Pi OS 13)
|
||||
Raspberry Pi OS 12 aarch64, armv7l ~2025-10 (approximate date of release of Raspberry Pi OS 13)
|
||||
Raspberry Pi OS (Legacy) 12 aarch64, armv7l ~2027-10 (approximate date of release of Raspberry Pi OS 14)
|
||||
RHEL 8 (latest) x86-64, aarch64 2029-05-31 (`End of Maintenance Support <https://access.redhat.com/support/policy/updates/errata#Life_Cycle_Dates>`__)
|
||||
RHEL 8.10 x86-64, aarch64 2029-05-31 (`End of Extended Update Support <https://access.redhat.com/support/policy/updates/errata#Extended_Update_Support>`__)
|
||||
RHEL 9 (latest) x86-64, aarch64 2032-05-31 (`End of Maintenance Support <https://access.redhat.com/support/policy/updates/errata#Life_Cycle_Dates>`__)
|
||||
RHEL 9.4 x86-64, aarch64 2026-04-30 (`End of Extended Update Support <https://access.redhat.com/support/policy/updates/errata#Extended_Update_Support>`__)
|
||||
RHEL 9.6 x86-64, aarch64 2027-05-31 (`End of Extended Update Support <https://access.redhat.com/support/policy/updates/errata#Extended_Update_Support>`__)
|
||||
Rocky Linux 8 x86-64, aarch64 2029-05-31 (`(i) Planned EOL <https://rockylinux.org/download>`__)
|
||||
Rocky Linux 9 x86-64, aarch64 2032-05-31 (`(i) Planned EOL <https://rockylinux.org/download>`__)
|
||||
Rocky Linux 8 x86-64, aarch64 2029-05-31 (`End of Life <https://wiki.rockylinux.org/rocky/version/>`__)
|
||||
Rocky Linux 9 x86-64, aarch64 2032-05-31 (`End of Life <https://wiki.rockylinux.org/rocky/version/>`__)
|
||||
Ubuntu 22.04 LTS x86-64, aarch64 2027-06-30 (`End of Standard Support <https://wiki.ubuntu.com/Releases#Current>`__)
|
||||
Ubuntu 24.04 LTS x86-64, aarch64 2029-06-30 (`End of Standard Support <https://wiki.ubuntu.com/Releases#Current>`__)
|
||||
================================ ======================= ============================================================
|
||||
|
||||
@@ -289,19 +289,6 @@ class VersionInfo:
|
||||
return version("Red-DiscordBot")
|
||||
|
||||
|
||||
def _update_event_loop_policy():
|
||||
if _sys.implementation.name == "cpython":
|
||||
# Let's not force this dependency, uvloop is much faster on cpython
|
||||
try:
|
||||
import uvloop
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
import asyncio
|
||||
|
||||
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
|
||||
|
||||
|
||||
def _ensure_no_colorama():
|
||||
# a hacky way to ensure that nothing initialises colorama
|
||||
# if we're not running with legacy Windows command line mode
|
||||
@@ -334,12 +321,11 @@ def _early_init():
|
||||
# This function replaces logger so we preferably (though not necessarily) want that to happen
|
||||
# before importing anything that calls `logging.getLogger()`, i.e. `asyncio`.
|
||||
_update_logger_class()
|
||||
_update_event_loop_policy()
|
||||
_ensure_no_colorama()
|
||||
|
||||
|
||||
# This is bumped automatically by release workflow (`.github/workflows/scripts/bump_version.py`)
|
||||
_VERSION = "3.5.22"
|
||||
_VERSION = "3.5.25.dev1"
|
||||
|
||||
__version__, version_info = VersionInfo._get_version()
|
||||
|
||||
|
||||
@@ -25,9 +25,9 @@ import rich
|
||||
import redbot.logging
|
||||
from redbot import __version__
|
||||
from redbot.core.bot import Red, ExitCodes, _NoOwnerSet
|
||||
from redbot.core._cli import interactive_config, confirm, parse_cli_flags
|
||||
from redbot.core._cli import interactive_config, confirm, parse_cli_flags, new_event_loop
|
||||
from redbot.setup import get_data_dir, get_name, save_config
|
||||
from redbot.core import data_manager, _drivers
|
||||
from redbot.core import data_manager, _drivers, _downloader
|
||||
from redbot.core._debuginfo import DebugInfo
|
||||
from redbot.core._sharedlibdeprecation import SharedLibImportWarner
|
||||
|
||||
@@ -182,32 +182,10 @@ async def _edit_owner(red, owner, no_prompt):
|
||||
|
||||
def _edit_instance_name(old_name, new_name, confirm_overwrite, no_prompt):
|
||||
if new_name:
|
||||
name = new_name
|
||||
if name in _get_instance_names() and not confirm_overwrite:
|
||||
name = old_name
|
||||
print(
|
||||
"An instance with this name already exists.\n"
|
||||
"If you want to remove the existing instance and replace it with this one,"
|
||||
" run this command with --overwrite-existing-instance flag."
|
||||
)
|
||||
name = get_name(new_name, confirm_overwrite=confirm_overwrite)
|
||||
elif not no_prompt and confirm("Would you like to change the instance name?", default=False):
|
||||
name = get_name("")
|
||||
if name in _get_instance_names():
|
||||
print(
|
||||
"WARNING: An instance already exists with this name. "
|
||||
"Continuing will overwrite the existing instance config."
|
||||
)
|
||||
if not confirm(
|
||||
"Are you absolutely certain you want to continue with this instance name?",
|
||||
default=False,
|
||||
):
|
||||
print("Instance name will remain unchanged.")
|
||||
name = old_name
|
||||
else:
|
||||
print("Instance name updated.")
|
||||
else:
|
||||
print("Instance name updated.")
|
||||
print()
|
||||
name = get_name(confirm_overwrite=confirm_overwrite)
|
||||
print("Instance name updated.\n")
|
||||
else:
|
||||
name = old_name
|
||||
return name
|
||||
@@ -272,7 +250,7 @@ def early_exit_runner(
|
||||
"""
|
||||
This one exists to not log all the things like it's a full run of the bot.
|
||||
"""
|
||||
loop = asyncio.new_event_loop()
|
||||
loop = new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
try:
|
||||
if not cli_flags.instance_name:
|
||||
@@ -281,7 +259,7 @@ def early_exit_runner(
|
||||
return
|
||||
|
||||
data_manager.load_basic_configuration(cli_flags.instance_name)
|
||||
red = Red(cli_flags=cli_flags, description="Red V3", dm_help=None)
|
||||
red = Red(cli_flags=cli_flags)
|
||||
driver_cls = _drivers.get_driver_class()
|
||||
loop.run_until_complete(driver_cls.initialize(**data_manager.storage_details()))
|
||||
loop.run_until_complete(func(red, cli_flags))
|
||||
@@ -317,19 +295,23 @@ async def run_bot(red: Red, cli_flags: Namespace) -> None:
|
||||
redbot.logging.init_logging(
|
||||
level=cli_flags.logging_level,
|
||||
location=data_manager.core_data_path() / "logs",
|
||||
cli_flags=cli_flags,
|
||||
rich_logging=cli_flags.rich_logging,
|
||||
rich_tracebacks=cli_flags.rich_tracebacks,
|
||||
rich_traceback_extra_lines=cli_flags.rich_traceback_extra_lines,
|
||||
rich_traceback_show_locals=cli_flags.rich_traceback_show_locals,
|
||||
)
|
||||
|
||||
log.debug("====Basic Config====")
|
||||
log.debug("Data Path: %s", data_manager._base_data_path())
|
||||
log.debug("Storage Type: %s", data_manager.storage_type())
|
||||
|
||||
await _downloader._init(red)
|
||||
|
||||
# lib folder has to be in sys.path before trying to load any 3rd-party cog (GH-3061)
|
||||
# We might want to change handling of requirements in Downloader at later date
|
||||
LIB_PATH = data_manager.cog_data_path(raw_name="Downloader") / "lib"
|
||||
LIB_PATH.mkdir(parents=True, exist_ok=True)
|
||||
if str(LIB_PATH) not in sys.path:
|
||||
sys.path.append(str(LIB_PATH))
|
||||
lib_path = str(_downloader.LIB_PATH)
|
||||
if lib_path not in sys.path:
|
||||
sys.path.append(lib_path)
|
||||
|
||||
# "It's important to note that the global `working_set` object is initialized from
|
||||
# `sys.path` when `pkg_resources` is first imported, but is only updated if you do
|
||||
@@ -339,7 +321,7 @@ async def run_bot(red: Red, cli_flags: Namespace) -> None:
|
||||
# Source: https://setuptools.readthedocs.io/en/latest/pkg_resources.html#workingset-objects
|
||||
pkg_resources = sys.modules.get("pkg_resources")
|
||||
if pkg_resources is not None:
|
||||
pkg_resources.working_set.add_entry(str(LIB_PATH))
|
||||
pkg_resources.working_set.add_entry(lib_path)
|
||||
sys.meta_path.insert(0, SharedLibImportWarner())
|
||||
|
||||
if cli_flags.token:
|
||||
@@ -422,20 +404,13 @@ def handle_early_exit_flags(cli_flags: Namespace):
|
||||
sys.exit(ExitCodes.INVALID_CLI_USAGE)
|
||||
|
||||
|
||||
async def shutdown_handler(red, signal_type=None, exit_code=None):
|
||||
if signal_type:
|
||||
log.info("%s received. Quitting...", signal_type.name)
|
||||
# Do not collapse the below line into other logic
|
||||
# We need to renter this function
|
||||
# after it interrupts the event loop.
|
||||
sys.exit(ExitCodes.SHUTDOWN)
|
||||
elif exit_code is None:
|
||||
log.info("Shutting down from unhandled exception")
|
||||
red._shutdown_mode = ExitCodes.CRITICAL
|
||||
async def signal_shutdown_handler(red: Red, signal_type: signal.Signals) -> NoReturn:
|
||||
log.info("%s received. Quitting...", signal_type.name)
|
||||
sys.exit(ExitCodes.SHUTDOWN)
|
||||
|
||||
if exit_code is not None:
|
||||
red._shutdown_mode = exit_code
|
||||
|
||||
async def shutdown_handler(red: Red, exit_code: int) -> None:
|
||||
red._shutdown_mode = exit_code
|
||||
try:
|
||||
if not red.is_closed():
|
||||
await red.close()
|
||||
@@ -473,7 +448,8 @@ def red_exception_handler(red, red_task: asyncio.Future):
|
||||
except Exception as exc:
|
||||
log.critical("The main bot task didn't handle an exception and has crashed", exc_info=exc)
|
||||
log.warning("Attempting to die as gracefully as possible...")
|
||||
asyncio.create_task(shutdown_handler(red))
|
||||
log.info("Shutting down from unhandled exception")
|
||||
sys.exit(ExitCodes.CRITICAL)
|
||||
|
||||
|
||||
def main():
|
||||
@@ -484,7 +460,7 @@ def main():
|
||||
early_exit_runner(cli_flags, edit_instance)
|
||||
return
|
||||
try:
|
||||
loop = asyncio.new_event_loop()
|
||||
loop = new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
|
||||
if cli_flags.no_instance:
|
||||
@@ -499,7 +475,7 @@ def main():
|
||||
|
||||
data_manager.load_basic_configuration(cli_flags.instance_name)
|
||||
|
||||
red = Red(cli_flags=cli_flags, description="Red V3", dm_help=None)
|
||||
red = Red(cli_flags=cli_flags)
|
||||
|
||||
if os.name != "nt":
|
||||
# None of this works on windows.
|
||||
@@ -507,7 +483,7 @@ def main():
|
||||
signals = (signal.SIGHUP, signal.SIGTERM, signal.SIGINT)
|
||||
for s in signals:
|
||||
loop.add_signal_handler(
|
||||
s, lambda s=s: asyncio.create_task(shutdown_handler(red, s))
|
||||
s, lambda s=s: asyncio.create_task(signal_shutdown_handler(red, s))
|
||||
)
|
||||
|
||||
exc_handler = functools.partial(global_exception_handler, red)
|
||||
@@ -524,7 +500,7 @@ def main():
|
||||
log.warning("Please do not use Ctrl+C to Shutdown Red! (attempting to die gracefully...)")
|
||||
log.error("Received KeyboardInterrupt, treating as interrupt")
|
||||
if red is not None:
|
||||
loop.run_until_complete(shutdown_handler(red, signal.SIGINT))
|
||||
loop.run_until_complete(signal_shutdown_handler(red, signal.SIGINT))
|
||||
except SystemExit as exc:
|
||||
# We also have to catch this one here. Basically any exception which normally
|
||||
# Kills the python interpreter (Base Exceptions minus asyncio.cancelled)
|
||||
@@ -536,11 +512,11 @@ def main():
|
||||
exit_code_name = "UNKNOWN"
|
||||
log.info("Shutting down with exit code: %s (%s)", exit_code, exit_code_name)
|
||||
if red is not None:
|
||||
loop.run_until_complete(shutdown_handler(red, None, exc.code))
|
||||
loop.run_until_complete(shutdown_handler(red, exc.code))
|
||||
except Exception as exc: # Non standard case.
|
||||
log.exception("Unexpected exception (%s): ", type(exc), exc_info=exc)
|
||||
if red is not None:
|
||||
loop.run_until_complete(shutdown_handler(red, None, ExitCodes.CRITICAL))
|
||||
loop.run_until_complete(shutdown_handler(red, ExitCodes.CRITICAL))
|
||||
finally:
|
||||
# Allows transports to close properly, and prevent new ones from being opened.
|
||||
# Transports may still not be closed correctly on windows, see below
|
||||
|
||||
@@ -0,0 +1,237 @@
|
||||
import asyncio
|
||||
from pathlib import Path
|
||||
from typing import Any, Final, Optional, Tuple
|
||||
|
||||
import click
|
||||
from packaging.version import Version
|
||||
from python_discovery import PythonInfo
|
||||
|
||||
from redbot.core._cli import asyncio_run
|
||||
|
||||
from . import cmd, common, updater
|
||||
|
||||
|
||||
_CHECK_OTHER_PYTHON_INSTALLS_CMD_ARG_NAME: Final = "--check-other-python-installs"
|
||||
|
||||
|
||||
def _help_major_update_example() -> str:
|
||||
version = common.get_current_red_version().__replace__(dev=None, local=None)
|
||||
release = (version.major, version.minor + 1) + (0,) * (len(version.release) - 2)
|
||||
next_major_version = version.__replace__(release=release)
|
||||
return f"updating from Red {version} to Red {next_major_version}"
|
||||
|
||||
|
||||
def _help_minor_update_example() -> str:
|
||||
version = common.get_current_red_version().__replace__(dev=None, local=None)
|
||||
release = (version.major, version.minor, version.micro + 1) + (0,) * (len(version.release) - 3)
|
||||
next_minor_version = version.__replace__(release=release)
|
||||
return f"updating from Red {version} to Red {next_minor_version}"
|
||||
|
||||
|
||||
class _PythonInfoParamType(click.ParamType):
|
||||
name = "Python interpreter"
|
||||
|
||||
def convert(
|
||||
self, value: Any, param: Optional[click.Parameter], ctx: Optional[click.Context]
|
||||
) -> PythonInfo:
|
||||
if isinstance(value, PythonInfo):
|
||||
return value
|
||||
|
||||
try:
|
||||
return PythonInfo.from_exe(value)
|
||||
except RuntimeError:
|
||||
self.fail(f"{value!r} is not a valid Python executable.", param, ctx)
|
||||
|
||||
|
||||
@click.group(invoke_without_command=True)
|
||||
# command-specific options
|
||||
@click.option(
|
||||
"--include-instance",
|
||||
"included_instances",
|
||||
multiple=True,
|
||||
type=click.Choice(common.INSTANCE_LIST),
|
||||
help="The list of instances to backup and check cog compatibility for. If not specified,"
|
||||
" all instances that use the current virtual environment will be backed up and checked.",
|
||||
)
|
||||
@click.option(
|
||||
"--exclude-instance",
|
||||
"excluded_instances",
|
||||
multiple=True,
|
||||
type=click.Choice(common.INSTANCE_LIST),
|
||||
help="Exclude an instance from the list of instances to backup"
|
||||
" and check cog compatibility for.",
|
||||
)
|
||||
@click.option(
|
||||
"--backup-dir",
|
||||
default=None,
|
||||
type=click.Path(
|
||||
dir_okay=True, file_okay=False, resolve_path=True, writable=True, path_type=Path
|
||||
),
|
||||
help="The directory to place the backups of the virtual environment and instances.",
|
||||
)
|
||||
@click.option(
|
||||
"--no-backup",
|
||||
help="Do not make backups of the virtual environment and instances before update.",
|
||||
is_flag=True,
|
||||
)
|
||||
@click.option(
|
||||
"--red-version",
|
||||
"--version",
|
||||
type=common.VersionParamType(),
|
||||
default=None,
|
||||
help="Version of Red to update to instead of the latest.",
|
||||
)
|
||||
@click.option(
|
||||
"--no-major-updates",
|
||||
help=f"Skip major updates. For example: {_help_major_update_example()} is a major update"
|
||||
f" but {_help_minor_update_example()} isn't.",
|
||||
is_flag=True,
|
||||
)
|
||||
@click.option(
|
||||
"--no-full-changelog",
|
||||
help='Skip showing full changelog in a terminal user interface. The "Read before updating"'
|
||||
" sections will still be printed.",
|
||||
is_flag=True,
|
||||
)
|
||||
@click.option(
|
||||
"--no-cog-compatibility-check",
|
||||
help="Skip performing cog compatibility check before the update.",
|
||||
is_flag=True,
|
||||
)
|
||||
@click.option(
|
||||
"--new-python-interpreter",
|
||||
type=_PythonInfoParamType(),
|
||||
help="The new Python interpreter that should be used when creating a virtual environment"
|
||||
" for Red. This can either be a path to a Python executable or a name of a Python executable"
|
||||
" on the PATH.",
|
||||
)
|
||||
@click.option(
|
||||
"--update-cogs/--no-update-cogs",
|
||||
default=None,
|
||||
help="When this option is used, it determines whether the cogs should be updated after Red"
|
||||
" is updated. By default, you'll be asked, if you want to update.\n"
|
||||
"In non-interactive mode, cogs will be updated unless this option is used to override"
|
||||
" the default behavior.",
|
||||
)
|
||||
@click.option(
|
||||
# `pip install` having an option with the same name is coincidental,
|
||||
# this does not call `pip install` with the `--force-reinstall` option.
|
||||
# Not that there would be any point in doing so - we create a fresh virtual environment.
|
||||
"--force-reinstall",
|
||||
type=bool,
|
||||
is_flag=True,
|
||||
help="Force the update process to proceed even, if there is no new version detected."
|
||||
" This will essentially reinstall latest Red version into a fresh virtual environment. You can"
|
||||
" combine it with the --new-python-interpreter option to change Red's Python interpreter.",
|
||||
)
|
||||
@click.option(
|
||||
"--no-prompt",
|
||||
"interactive",
|
||||
type=bool,
|
||||
is_flag=True,
|
||||
default=True,
|
||||
help="Don't ask for user input during the process (non-interactive mode).\n"
|
||||
"NOTE: If you want to use this to automate Red updates, consider specifying --no-major-update"
|
||||
" to avoid performing major updates without making an explicit decision to.\n"
|
||||
"When performing a major update where the current Python interpreter is no longer compatible,"
|
||||
" the --new-python-interpreter option has to be specified or the command will fail.",
|
||||
)
|
||||
# global options
|
||||
@click.option(
|
||||
cmd.arg_names.DEBUG,
|
||||
"--verbose",
|
||||
"-v",
|
||||
"logging_level",
|
||||
count=True,
|
||||
help=(
|
||||
"Increase the verbosity of the logs, each usage of this flag increases the verbosity"
|
||||
" level by 1."
|
||||
),
|
||||
)
|
||||
@click.option(
|
||||
"--check-other-venvs",
|
||||
_CHECK_OTHER_PYTHON_INSTALLS_CMD_ARG_NAME,
|
||||
"ignore_prefix",
|
||||
help="Check the compatibility of cogs for instances that are normally ran with"
|
||||
" a different Python installation and/or virtual environment than the current one.",
|
||||
is_flag=True,
|
||||
)
|
||||
@click.pass_context
|
||||
def cli(
|
||||
ctx: click.Context,
|
||||
included_instances: Tuple[str, ...],
|
||||
excluded_instances: Tuple[str, ...],
|
||||
backup_dir: Optional[Path],
|
||||
no_backup: bool,
|
||||
red_version: Optional[Version],
|
||||
no_major_updates: bool,
|
||||
no_full_changelog: bool,
|
||||
no_cog_compatibility_check: bool,
|
||||
new_python_interpreter: Optional[PythonInfo],
|
||||
update_cogs: Optional[bool],
|
||||
force_reinstall: bool,
|
||||
interactive: bool,
|
||||
logging_level: int,
|
||||
ignore_prefix: bool,
|
||||
) -> None:
|
||||
common.ensure_supported_env()
|
||||
common.configure_logging(logging_level)
|
||||
|
||||
ctx.ensure_object(dict)
|
||||
ctx.obj["IGNORE_PREFIX"] = ignore_prefix
|
||||
|
||||
if ctx.invoked_subcommand is None:
|
||||
if included_instances:
|
||||
# de-duplicate with order intact
|
||||
instances = list(dict.fromkeys(included_instances))
|
||||
else:
|
||||
instances = list(common.INSTANCE_LIST)
|
||||
options = updater.UpdaterOptions(
|
||||
instances=instances,
|
||||
excluded_instances=set(excluded_instances),
|
||||
ignore_prefix=ignore_prefix,
|
||||
backup_dir=backup_dir,
|
||||
no_backup=no_backup,
|
||||
red_version=red_version,
|
||||
no_major_updates=no_major_updates,
|
||||
no_full_changelog=no_full_changelog,
|
||||
no_cog_compatibility_check=no_cog_compatibility_check,
|
||||
new_python_interpreter=new_python_interpreter,
|
||||
update_cogs=update_cogs,
|
||||
force_reinstall=force_reinstall,
|
||||
interactive=interactive,
|
||||
)
|
||||
app = updater.Updater(options)
|
||||
asyncio_run(app.run())
|
||||
# these should not be available to subcommands
|
||||
elif included_instances:
|
||||
raise click.NoSuchOption("--include-instance", ctx=ctx)
|
||||
elif excluded_instances:
|
||||
raise click.NoSuchOption("--exclude-instance", ctx=ctx)
|
||||
elif backup_dir is not None:
|
||||
raise click.NoSuchOption("--backup-dir", ctx=ctx)
|
||||
elif no_backup:
|
||||
raise click.NoSuchOption("--no-backup", ctx=ctx)
|
||||
elif red_version:
|
||||
raise click.NoSuchOption("--red-version", ctx=ctx)
|
||||
elif no_major_updates:
|
||||
raise click.NoSuchOption("--no-major-updates", ctx=ctx)
|
||||
elif no_cog_compatibility_check:
|
||||
raise click.NoSuchOption("--no-cog-compatibility-check", ctx=ctx)
|
||||
elif new_python_interpreter:
|
||||
raise click.NoSuchOption("--new-python-interpreter", ctx=ctx)
|
||||
elif update_cogs is True:
|
||||
raise click.NoSuchOption("--update-cogs", ctx=ctx)
|
||||
elif update_cogs is False:
|
||||
raise click.NoSuchOption("--no-update-cogs", ctx=ctx)
|
||||
elif not interactive:
|
||||
raise click.NoSuchOption("--no-prompt", ctx=ctx)
|
||||
elif force_reinstall:
|
||||
raise click.NoSuchOption("--force-reinstall", ctx=ctx)
|
||||
|
||||
|
||||
cli.add_command(cmd.cog_compatibility.check_cog_compatibility)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
cli()
|
||||
@@ -0,0 +1,144 @@
|
||||
import dataclasses
|
||||
import datetime
|
||||
import functools
|
||||
import os
|
||||
import re
|
||||
from typing import Any, Dict, List
|
||||
|
||||
import aiohttp
|
||||
import yarl
|
||||
from packaging.version import Version
|
||||
from typing_extensions import Self
|
||||
|
||||
|
||||
_CHANGELOG_PATTERN = re.compile(
|
||||
r"\n<!--+ +RED-CHANGELOG-BEGIN: (?P<version>.+) +--+>\n"
|
||||
r"(?P<content>[\s\S]+?)"
|
||||
r"\n<!--+ +RED-CHANGELOG-END +--+>"
|
||||
)
|
||||
_RTD_CANONICAL_URL = os.getenv("_RED_RTD_CANONICAL_URL") or "https://docs.discord.red/en/stable/"
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
class VersionChangelog:
|
||||
version: Version
|
||||
content: str
|
||||
_RELEASE_DATE_PATTERN = re.compile(
|
||||
r"^<!--+ +RED-CHANGELOG-RELEASE-DATE: (\d{4})-(\d{2})-(\d{2}) +--+>$",
|
||||
re.MULTILINE,
|
||||
)
|
||||
_CONTRIBUTORS_PATTERN = re.compile(
|
||||
r"^<!--+ +RED-CHANGELOG-CONTRIBUTORS: (?P<contributors>.+) +--+>$",
|
||||
re.MULTILINE,
|
||||
)
|
||||
_READ_BEFORE_UPDATING_SECTION_PATTERN = re.compile(
|
||||
r"\n<!--+ +RED-CHANGELOG-READ-BEFORE-UPDATE-BEGIN +--+>\n"
|
||||
r"(?P<content>[\s\S]+?)"
|
||||
r"\n<!--+ +RED-CHANGELOG-READ-BEFORE-UPDATE-END +--+>"
|
||||
)
|
||||
_USER_CHANGELOG_SECTION_PATTERN = re.compile(
|
||||
r"\n<!--+ +RED-CHANGELOG-USER-CHANGELOG-BEGIN +--+>\n"
|
||||
r"(?P<content>[\s\S]+?)"
|
||||
r"\n<!--+ +RED-CHANGELOG-USER-CHANGELOG-END +--+>"
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def from_json_dict(cls, data: Dict[str, Any]) -> Self:
|
||||
return cls(version=Version(data["version"]), content=data["content"])
|
||||
|
||||
def to_json_dict(self) -> Dict[str, Any]:
|
||||
return {"version": str(self.version), "content": self.content}
|
||||
|
||||
@functools.cached_property
|
||||
def release_date(self) -> datetime.date:
|
||||
return datetime.date(*map(int, self._RELEASE_DATE_PATTERN.search(self.content).groups()))
|
||||
|
||||
@functools.cached_property
|
||||
def contributors(self) -> List[str]:
|
||||
match = self._CONTRIBUTORS_PATTERN.search(self.content)
|
||||
if match is None:
|
||||
return []
|
||||
return match["contributors"].split()
|
||||
|
||||
@functools.cached_property
|
||||
def read_before_updating_section(self) -> str:
|
||||
return "\n".join(
|
||||
match["content"].strip()
|
||||
for match in self._READ_BEFORE_UPDATING_SECTION_PATTERN.finditer(self.content)
|
||||
)
|
||||
|
||||
@functools.cached_property
|
||||
def user_changelog_section(self) -> str:
|
||||
return "\n".join(
|
||||
match["content"].strip()
|
||||
for match in self._USER_CHANGELOG_SECTION_PATTERN.finditer(self.content)
|
||||
)
|
||||
|
||||
|
||||
Changelogs = Dict[Version, VersionChangelog]
|
||||
|
||||
|
||||
def parse_changelogs(content: str) -> Changelogs:
|
||||
changelogs = {}
|
||||
for match in _CHANGELOG_PATTERN.finditer(content):
|
||||
changelog = VersionChangelog(Version(match["version"]), match["content"])
|
||||
changelogs[changelog.version] = changelog
|
||||
|
||||
return changelogs
|
||||
|
||||
|
||||
def render_markdown(changelogs: Changelogs, *, minimal: bool = False) -> str:
|
||||
if not changelogs:
|
||||
return ""
|
||||
|
||||
parts = ["# Read before updating"]
|
||||
for changelog in reversed(changelogs.values()):
|
||||
parts.append(f"## {changelog.version}")
|
||||
parts.append(changelog.read_before_updating_section)
|
||||
|
||||
contributors = sorted(
|
||||
{
|
||||
contributor
|
||||
for changelog in changelogs.values()
|
||||
for contributor in changelog.contributors
|
||||
}
|
||||
)
|
||||
if contributors:
|
||||
contributor_thanks = (
|
||||
" \n**The releases below were made with help from the following people:** \n"
|
||||
)
|
||||
contributor_thanks += ", ".join(
|
||||
f"[@{contributor}](https://github.com/sponsors/{contributor})"
|
||||
for contributor in contributors
|
||||
)
|
||||
contributor_thanks += " \n**Thank you** \N{HEAVY BLACK HEART}\N{VARIATION SELECTOR-16}"
|
||||
parts.append(contributor_thanks)
|
||||
|
||||
# show the header both at the top and the bottom
|
||||
parts.append(parts[0])
|
||||
|
||||
return "\n".join(parts)
|
||||
|
||||
|
||||
def get_changelogs_between(
|
||||
changelogs: Changelogs, newer_than: Version, not_newer_than: Version
|
||||
) -> Changelogs:
|
||||
return {
|
||||
changelog_version: changelog
|
||||
for changelog_version, changelog in changelogs.items()
|
||||
if newer_than < changelog_version <= not_newer_than
|
||||
}
|
||||
|
||||
|
||||
async def fetch_changelogs() -> Changelogs:
|
||||
"""
|
||||
Fetch the Markdown-formatted changelog from Red's docs site.
|
||||
|
||||
Returns
|
||||
-------
|
||||
Dict[Version, VersionChangelog]
|
||||
A dict mapping versions to their changelogs. Sorted by version, newest first.
|
||||
"""
|
||||
async with aiohttp.ClientSession(raise_for_status=True) as session:
|
||||
async with session.get(yarl.URL(_RTD_CANONICAL_URL) / "_markdown/changelog.md") as resp:
|
||||
return parse_changelogs(await resp.text())
|
||||
@@ -0,0 +1,6 @@
|
||||
from . import arg_names, cog_compatibility
|
||||
|
||||
__all__ = (
|
||||
"arg_names",
|
||||
"cog_compatibility",
|
||||
)
|
||||
@@ -0,0 +1,6 @@
|
||||
from typing import Final
|
||||
|
||||
DEBUG: Final = "--debug"
|
||||
RED_VERSION: Final = "--red-version"
|
||||
PYTHON_VERSION: Final = "--python-version"
|
||||
CHECK_OTHER_PYTHON_INSTALLS: Final = "--check-other-python-installs"
|
||||
@@ -0,0 +1,215 @@
|
||||
import asyncio
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
from typing import Final, Optional, Tuple
|
||||
|
||||
import click
|
||||
from packaging.version import Version
|
||||
from rich.text import Text
|
||||
|
||||
from redbot._update import cog_compatibility_checker, common
|
||||
from redbot._update.cog_compatibility_checker import CompatibilitySummary
|
||||
from redbot.core import _drivers
|
||||
from redbot.core._cli import asyncio_run
|
||||
from redbot.core.utils._internal_utils import fetch_latest_red_version
|
||||
|
||||
from . import arg_names
|
||||
|
||||
|
||||
EXIT_INSTANCE_SITE_PREFIX_MISMATCH: Final = 4
|
||||
EXIT_INSTANCE_BACKEND_UNSUPPORTED: Final = 5
|
||||
CMD_NAME: Final = "check-cog-compatibility"
|
||||
_COMPATIBILITY_RESULTS_ENV_VAR = "_RED_UPDATE_COMPATIBILITY_RESULTS_FILE"
|
||||
|
||||
|
||||
@click.command(CMD_NAME)
|
||||
@click.argument(
|
||||
"instances",
|
||||
nargs=-1,
|
||||
type=click.Choice(common.INSTANCE_LIST),
|
||||
default=None,
|
||||
metavar="[INSTANCE_NAME]",
|
||||
)
|
||||
@click.option(
|
||||
arg_names.RED_VERSION,
|
||||
type=common.VersionParamType(),
|
||||
default=None,
|
||||
help="The Red version to check cog compatibility for."
|
||||
" If not provided, the information about latest available version will be fetched"
|
||||
" and the command will check whether installed cogs support that version.\n"
|
||||
"If this option is provided, --python-version also has to be provided.",
|
||||
)
|
||||
@click.option(
|
||||
arg_names.PYTHON_VERSION,
|
||||
type=common.VersionParamType(),
|
||||
default=None,
|
||||
help="The Python version to check cog compatibility for."
|
||||
" If not provided, the command will either use the current interpreter's version or,"
|
||||
" if that version is not compatible with the latest Red version, it will try to"
|
||||
" find the latest available CPython interpreter on the system and will check whether"
|
||||
" installed cogs support it.\n"
|
||||
"If this option is provided, --red-version also has to be provided.",
|
||||
)
|
||||
@click.pass_context
|
||||
def check_cog_compatibility(
|
||||
ctx: click.Context,
|
||||
instances: Tuple[str, ...],
|
||||
red_version: Optional[Version],
|
||||
python_version: Optional[Version],
|
||||
) -> None:
|
||||
"""
|
||||
Check if the installed cogs are compatible with the given version.
|
||||
"""
|
||||
if (red_version, python_version).count(None) == 1:
|
||||
raise click.BadParameter(
|
||||
"Either both --red-version and --python-version options"
|
||||
" have to be specified or neither.",
|
||||
param_hint=[arg_names.RED_VERSION, arg_names.PYTHON_VERSION],
|
||||
)
|
||||
|
||||
asyncio_run(
|
||||
_check_cog_compatibility_command_impl(
|
||||
red_version=red_version,
|
||||
python_version=python_version,
|
||||
instances=instances,
|
||||
ignore_prefix=ctx.obj["IGNORE_PREFIX"],
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
async def _check_cog_compatibility_command_impl(
|
||||
*,
|
||||
red_version: Optional[Version],
|
||||
python_version: Optional[Version],
|
||||
instances: Tuple[str, ...] = (),
|
||||
ignore_prefix: bool = False,
|
||||
) -> None:
|
||||
console = common.get_console()
|
||||
if red_version is None or python_version is None:
|
||||
with console.status("Checking latest version..."):
|
||||
latest = await fetch_latest_red_version()
|
||||
red_version = latest.version
|
||||
|
||||
python_version = Version(".".join(map(str, sys.version_info[:3])))
|
||||
if python_version not in latest.requires_python:
|
||||
interpreters = common.search_for_interpreters(latest.requires_python)
|
||||
_, python_version, _ = interpreters[0]
|
||||
|
||||
if len(instances) == 1:
|
||||
results_file = os.getenv(_COMPATIBILITY_RESULTS_ENV_VAR, "")
|
||||
try:
|
||||
results = await cog_compatibility_checker.check_instance(
|
||||
instances[0],
|
||||
latest_version=red_version,
|
||||
interpreter_version=python_version,
|
||||
ignore_prefix=ignore_prefix,
|
||||
)
|
||||
except _drivers.MissingExtraRequirements:
|
||||
if not results_file:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
Text(instances[0], style="bold"),
|
||||
" instance could not be checked as it uses a storage backend"
|
||||
" that is not supported by the current Red installation"
|
||||
" (some requirements are missing).",
|
||||
)
|
||||
raise SystemExit(EXIT_INSTANCE_BACKEND_UNSUPPORTED)
|
||||
except cog_compatibility_checker.InstanceSitePrefixMismatchError as exc:
|
||||
if not results_file:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
Text(exc.instance_name, style="bold"),
|
||||
" instance could not be checked as it is a part of"
|
||||
" a different Python installation and/or virtual environment.",
|
||||
)
|
||||
raise SystemExit(EXIT_INSTANCE_SITE_PREFIX_MISMATCH)
|
||||
if results_file:
|
||||
with open(results_file, "w", encoding="utf-8") as fp:
|
||||
json.dump(results.to_json_dict(), fp)
|
||||
return
|
||||
|
||||
if not instances:
|
||||
instances = tuple(common.INSTANCE_LIST)
|
||||
checked_instances = []
|
||||
for instance_name in instances:
|
||||
exit_code, _, _ = await call(
|
||||
instance_name,
|
||||
red_version=red_version,
|
||||
python_version=python_version,
|
||||
ignore_prefix=ignore_prefix,
|
||||
)
|
||||
if exit_code != EXIT_INSTANCE_SITE_PREFIX_MISMATCH:
|
||||
if exit_code:
|
||||
raise SystemExit(exit_code)
|
||||
checked_instances.append(instance_name)
|
||||
|
||||
if not checked_instances:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR, "There were no instances to check cog compatibility for."
|
||||
)
|
||||
raise SystemExit(1)
|
||||
|
||||
|
||||
async def call(
|
||||
instance_name: str,
|
||||
*,
|
||||
red_version: Version,
|
||||
python_version: Version,
|
||||
ignore_prefix: bool = False,
|
||||
return_results: bool = False,
|
||||
stdout: Optional[int] = None,
|
||||
) -> Tuple[int, Optional[str], Optional[CompatibilitySummary]]:
|
||||
debug_args = (arg_names.DEBUG,) * common.get_log_cli_level()
|
||||
args = [
|
||||
"-m",
|
||||
"redbot._update",
|
||||
*debug_args,
|
||||
CMD_NAME,
|
||||
instance_name,
|
||||
arg_names.RED_VERSION,
|
||||
str(red_version),
|
||||
arg_names.PYTHON_VERSION,
|
||||
str(python_version),
|
||||
]
|
||||
if ignore_prefix:
|
||||
args.append(arg_names.CHECK_OTHER_PYTHON_INSTALLS)
|
||||
env = os.environ.copy()
|
||||
|
||||
# terminal woes
|
||||
console = common.get_console()
|
||||
if console.is_terminal:
|
||||
env["TTY_COMPATIBLE"] = "1"
|
||||
# Rich only checks stdout for Windows console features:
|
||||
# https://github.com/Textualize/rich/blob/fc41075a3206d2a5fd846c6f41c4d2becab814fa/rich/_windows.py#L46
|
||||
env[common.INTERNAL_LEGACY_WINDOWS_ENV_VAR] = "1" if console.legacy_windows else "0"
|
||||
else:
|
||||
# Rich does not set legacy_windows correctly when is_terminal is False
|
||||
# https://github.com/Textualize/rich/issues/3647
|
||||
env[common.INTERNAL_LEGACY_WINDOWS_ENV_VAR] = "0"
|
||||
env["PYTHONIOENCODING"] = sys.stdout.encoding
|
||||
|
||||
results = None
|
||||
results_file = None
|
||||
if return_results:
|
||||
results_file = tempfile.NamedTemporaryFile(delete=False)
|
||||
try:
|
||||
if results_file is not None:
|
||||
results_file.close()
|
||||
env[_COMPATIBILITY_RESULTS_ENV_VAR] = str(results_file.name)
|
||||
|
||||
proc = await asyncio.create_subprocess_exec(sys.executable, *args, env=env, stdout=stdout)
|
||||
stdout_data, _ = await proc.communicate()
|
||||
decoded_stdout = None
|
||||
if stdout_data is not None:
|
||||
decoded_stdout = stdout_data.decode()
|
||||
exit_code = await proc.wait()
|
||||
if not exit_code and results_file is not None:
|
||||
with open(results_file.name, encoding="utf-8") as fp:
|
||||
results = CompatibilitySummary.from_json_dict(json.load(fp))
|
||||
finally:
|
||||
if results_file is not None:
|
||||
os.remove(results_file.name)
|
||||
|
||||
return exit_code, decoded_stdout, results
|
||||
@@ -0,0 +1,551 @@
|
||||
import dataclasses
|
||||
import enum
|
||||
import functools
|
||||
import itertools
|
||||
import os
|
||||
import sys
|
||||
from typing import Any, Dict, Iterable, Iterator, List, Mapping, Optional, Set, Tuple
|
||||
|
||||
import rich
|
||||
from packaging.version import Version
|
||||
from rich.text import Text
|
||||
from typing_extensions import Self
|
||||
|
||||
from redbot.core import _downloader, _drivers, data_manager
|
||||
from redbot.core._cli import parse_cli_flags
|
||||
from redbot.core.bot import Red
|
||||
from redbot.core.utils._internal_utils import detailed_progress
|
||||
|
||||
from . import common
|
||||
|
||||
|
||||
class InstanceSitePrefixMismatchError(Exception):
|
||||
"""The instance's last known sys.prefix is different from the current one."""
|
||||
|
||||
def __init__(self, instance_name: str, last_known_prefix: Optional[str]) -> None:
|
||||
self.instance_name = instance_name
|
||||
self.last_known_prefix = last_known_prefix
|
||||
super().__init__(
|
||||
f"The last known sys.prefix of {instance_name!r} is different from"
|
||||
" current process's sys.prefix.",
|
||||
)
|
||||
|
||||
|
||||
class SimpleCompatibilityStatus(common.OrderedEnum):
|
||||
UNSUPPORTED = enum.auto()
|
||||
POTENTIALLY_SUPPORTED = enum.auto()
|
||||
EXPLICITLY_SUPPORTED = enum.auto()
|
||||
|
||||
|
||||
class CompatibilityStatus(enum.Enum):
|
||||
# unsupported is <100, 200)
|
||||
UNSUPPORTED_PYTHON_VERSION = 100
|
||||
UNSUPPORTED_BOT_VERSION = 101
|
||||
# potentially supported is <200, 300)
|
||||
POTENTIALLY_SUPPORTED = 200
|
||||
# explicitly supported is <300, 400)
|
||||
EXPLICITLY_SUPPORTED_NON_BREAKING = 300
|
||||
EXPLICITLY_SUPPORTED_MIN_BOT_VERSION = 301
|
||||
EXPLICITLY_SUPPORTED_MAX_BOT_VERSION = 302
|
||||
EXPLICITLY_SUPPORTED_READY_TAG = 303
|
||||
|
||||
@property
|
||||
def simple_status(self) -> SimpleCompatibilityStatus:
|
||||
if self.unsupported:
|
||||
return SimpleCompatibilityStatus.UNSUPPORTED
|
||||
if self.potentially_supported:
|
||||
return SimpleCompatibilityStatus.POTENTIALLY_SUPPORTED
|
||||
if self.explicitly_supported:
|
||||
return SimpleCompatibilityStatus.EXPLICITLY_SUPPORTED
|
||||
raise RuntimeError("unreachable")
|
||||
|
||||
@property
|
||||
def unsupported(self) -> bool:
|
||||
return 100 <= self.value < 200
|
||||
|
||||
@property
|
||||
def potentially_supported(self) -> bool:
|
||||
return 200 <= self.value < 300
|
||||
|
||||
@property
|
||||
def explicitly_supported(self) -> bool:
|
||||
return 300 <= self.value < 400
|
||||
|
||||
def __ge__(self, other: Any) -> bool:
|
||||
if self.__class__ is other.__class__:
|
||||
return self.simple_status >= other.simple_status
|
||||
return NotImplemented
|
||||
|
||||
def __gt__(self, other: Any) -> bool:
|
||||
if self.__class__ is other.__class__:
|
||||
return self.simple_status > other.simple_status
|
||||
return NotImplemented
|
||||
|
||||
def __le__(self, other: Any) -> bool:
|
||||
if self.__class__ is other.__class__:
|
||||
return self.simple_status <= other.simple_status
|
||||
return NotImplemented
|
||||
|
||||
def __lt__(self, other: Any) -> bool:
|
||||
if self.__class__ is other.__class__:
|
||||
return self.simple_status < other.simple_status
|
||||
return NotImplemented
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
class CogCompatibilityInfo:
|
||||
name: str
|
||||
repo_name: str
|
||||
min_bot_version: Version
|
||||
max_bot_version: Version
|
||||
min_python_version: Version
|
||||
tags: Tuple[str, ...]
|
||||
compatibility_status: CompatibilityStatus = CompatibilityStatus.POTENTIALLY_SUPPORTED
|
||||
|
||||
@classmethod
|
||||
def from_installable(cls, installable: _downloader.Installable) -> Self:
|
||||
return cls(
|
||||
name=installable.name,
|
||||
repo_name=installable.repo_name,
|
||||
min_bot_version=installable.min_bot_version,
|
||||
max_bot_version=installable.max_bot_version,
|
||||
min_python_version=installable.min_python_version,
|
||||
tags=installable.tags,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def from_json_dict(cls, data: Dict[str, Any]) -> Self:
|
||||
return cls(
|
||||
name=data["name"],
|
||||
repo_name=data["repo_name"],
|
||||
min_bot_version=Version(data["min_bot_version"]),
|
||||
max_bot_version=Version(data["max_bot_version"]),
|
||||
min_python_version=Version(data["min_python_version"]),
|
||||
tags=tuple(data["tags"]),
|
||||
compatibility_status=CompatibilityStatus(data["compatibility_status"]),
|
||||
)
|
||||
|
||||
def to_json_dict(self) -> Dict[str, Any]:
|
||||
return {
|
||||
"name": self.name,
|
||||
"repo_name": self.repo_name,
|
||||
"min_bot_version": str(self.min_bot_version),
|
||||
"max_bot_version": str(self.max_bot_version),
|
||||
"min_python_version": str(self.min_python_version),
|
||||
"tags": self.tags,
|
||||
"compatibility_status": self.compatibility_status.value,
|
||||
}
|
||||
|
||||
|
||||
CogSupportDict = Dict[str, CogCompatibilityInfo]
|
||||
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class CompatibilityResults(Mapping[str, CogCompatibilityInfo]):
|
||||
latest_version: Version
|
||||
interpreter_version: Version
|
||||
|
||||
explicitly_supported: CogSupportDict = dataclasses.field(default_factory=dict)
|
||||
potentially_supported: CogSupportDict = dataclasses.field(default_factory=dict)
|
||||
incompatible_python_version: CogSupportDict = dataclasses.field(default_factory=dict)
|
||||
incompatible_bot_version: CogSupportDict = dataclasses.field(default_factory=dict)
|
||||
|
||||
@classmethod
|
||||
def from_json_dict(cls, data: Dict[str, Any]) -> Self:
|
||||
return cls(
|
||||
latest_version=Version(data["latest_version"]),
|
||||
interpreter_version=Version(data["interpreter_version"]),
|
||||
explicitly_supported={
|
||||
cog_name: CogCompatibilityInfo.from_json_dict(info_data)
|
||||
for cog_name, info_data in data["explicitly_supported"].items()
|
||||
},
|
||||
potentially_supported={
|
||||
cog_name: CogCompatibilityInfo.from_json_dict(info_data)
|
||||
for cog_name, info_data in data["potentially_supported"].items()
|
||||
},
|
||||
incompatible_python_version={
|
||||
cog_name: CogCompatibilityInfo.from_json_dict(info_data)
|
||||
for cog_name, info_data in data["incompatible_python_version"].items()
|
||||
},
|
||||
incompatible_bot_version={
|
||||
cog_name: CogCompatibilityInfo.from_json_dict(info_data)
|
||||
for cog_name, info_data in data["incompatible_bot_version"].items()
|
||||
},
|
||||
)
|
||||
|
||||
def to_json_dict(self) -> Dict[str, Any]:
|
||||
return {
|
||||
"latest_version": str(self.latest_version),
|
||||
"interpreter_version": str(self.interpreter_version),
|
||||
"explicitly_supported": {
|
||||
cog_name: info.to_json_dict()
|
||||
for cog_name, info in self.explicitly_supported.items()
|
||||
},
|
||||
"potentially_supported": {
|
||||
cog_name: info.to_json_dict()
|
||||
for cog_name, info in self.potentially_supported.items()
|
||||
},
|
||||
"incompatible_python_version": {
|
||||
cog_name: info.to_json_dict()
|
||||
for cog_name, info in self.incompatible_python_version.items()
|
||||
},
|
||||
"incompatible_bot_version": {
|
||||
cog_name: info.to_json_dict()
|
||||
for cog_name, info in self.incompatible_bot_version.items()
|
||||
},
|
||||
}
|
||||
|
||||
def __getitem__(self, key: str) -> CogCompatibilityInfo:
|
||||
for data in (
|
||||
self.explicitly_supported,
|
||||
self.potentially_supported,
|
||||
self.incompatible_python_version,
|
||||
self.incompatible_bot_version,
|
||||
):
|
||||
try:
|
||||
return data[key]
|
||||
except KeyError:
|
||||
pass
|
||||
raise KeyError(key)
|
||||
|
||||
def __iter__(self) -> Iterator[str]:
|
||||
return itertools.chain(
|
||||
self.explicitly_supported.keys(),
|
||||
self.potentially_supported.keys(),
|
||||
self.incompatible_python_version.keys(),
|
||||
self.incompatible_bot_version.keys(),
|
||||
)
|
||||
|
||||
def __len__(self) -> int:
|
||||
count = 0
|
||||
for data in (
|
||||
self.explicitly_supported,
|
||||
self.potentially_supported,
|
||||
self.incompatible_python_version,
|
||||
self.incompatible_bot_version,
|
||||
):
|
||||
count += len(data)
|
||||
return count
|
||||
|
||||
def __bool__(self) -> bool:
|
||||
return any(
|
||||
(
|
||||
self.explicitly_supported,
|
||||
self.potentially_supported,
|
||||
self.incompatible_python_version,
|
||||
self.incompatible_bot_version,
|
||||
)
|
||||
)
|
||||
|
||||
def print(self) -> None:
|
||||
major_version = Text(f"{self.latest_version.major}.{self.latest_version.minor}")
|
||||
if self.explicitly_supported:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_SUCCESS,
|
||||
"The following cogs are explicitly marked as supporting Red ",
|
||||
major_version,
|
||||
":\n",
|
||||
Text(", ").join(Text(cog, style="bold") for cog in self.explicitly_supported),
|
||||
)
|
||||
if self.potentially_supported:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_WARN,
|
||||
"The following cogs may support Red ",
|
||||
major_version,
|
||||
" but they haven't been explicitly marked as such:\n",
|
||||
Text(", ").join(Text(cog, style="bold") for cog in self.potentially_supported),
|
||||
)
|
||||
if self.incompatible_bot_version:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
"The following cogs do not support Red ",
|
||||
Text(str(self.latest_version)),
|
||||
":\n",
|
||||
Text(", ").join(Text(cog, style="bold") for cog in self.incompatible_bot_version),
|
||||
)
|
||||
if self.incompatible_python_version:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
"The following cogs do not support Python ",
|
||||
Text(str(self.interpreter_version)),
|
||||
":\n",
|
||||
Text(", ").join(
|
||||
Text(cog, style="bold") for cog in self.incompatible_python_version
|
||||
),
|
||||
)
|
||||
if not self.explicitly_supported and (
|
||||
self.potentially_supported
|
||||
or self.incompatible_bot_version
|
||||
or self.incompatible_python_version
|
||||
):
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"None of the checked cogs were explicitly marked as supporting Red ",
|
||||
major_version,
|
||||
".",
|
||||
)
|
||||
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class CompatibilitySummary:
|
||||
instance_name: str
|
||||
before_update: CompatibilityResults
|
||||
after_update: CompatibilityResults
|
||||
|
||||
@classmethod
|
||||
def from_json_dict(cls, data: Dict[str, Any]) -> Self:
|
||||
return cls(
|
||||
instance_name=data["instance_name"],
|
||||
before_update=CompatibilityResults.from_json_dict(data["before_update"]),
|
||||
after_update=CompatibilityResults.from_json_dict(data["after_update"]),
|
||||
)
|
||||
|
||||
def to_json_dict(self) -> Dict[str, Any]:
|
||||
return {
|
||||
"instance_name": self.instance_name,
|
||||
"before_update": self.before_update.to_json_dict(),
|
||||
"after_update": self.after_update.to_json_dict(),
|
||||
}
|
||||
|
||||
|
||||
class CogCompatibilityChecker:
|
||||
def __init__(
|
||||
self,
|
||||
bot: Red,
|
||||
*,
|
||||
latest_version: Version,
|
||||
interpreter_version: Version,
|
||||
ignore_prefix: bool = False,
|
||||
) -> None:
|
||||
self.bot = bot
|
||||
self.latest_version = latest_version
|
||||
self.interpreter_version = interpreter_version
|
||||
self.ignore_prefix = ignore_prefix
|
||||
self._console = common.get_console(stderr=True)
|
||||
self._stdout_console = common.get_console()
|
||||
|
||||
@functools.cached_property
|
||||
def current_version(self) -> Version:
|
||||
return common.get_current_red_version()
|
||||
|
||||
async def check(self) -> CompatibilitySummary:
|
||||
instance_name = data_manager.instance_name()
|
||||
if not self.ignore_prefix:
|
||||
last_known_prefix = await self.bot._config.last_system_info.python_prefix()
|
||||
same_install = False
|
||||
if last_known_prefix is not None:
|
||||
try:
|
||||
same_install = os.path.samefile(last_known_prefix, sys.prefix)
|
||||
except OSError:
|
||||
pass
|
||||
if not same_install:
|
||||
raise InstanceSitePrefixMismatchError(instance_name, last_known_prefix)
|
||||
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"Started checking cog compatibility for the ",
|
||||
Text(instance_name, style="bold"),
|
||||
" instance.",
|
||||
console=self._console,
|
||||
)
|
||||
status = Text.assemble(
|
||||
"Checking compatibility of cogs installed on the ",
|
||||
(instance_name, "bold"),
|
||||
" instance...",
|
||||
)
|
||||
with self._console.status(status):
|
||||
await _downloader._init_without_bot(self.bot._cog_mgr)
|
||||
|
||||
await self._update_repos()
|
||||
|
||||
installed_cogs = await _downloader.installed_cogs()
|
||||
repo_unknown = []
|
||||
to_check = set()
|
||||
|
||||
for cog in installed_cogs:
|
||||
if cog.repo is None:
|
||||
repo_unknown.append(cog)
|
||||
else:
|
||||
to_check.add(cog)
|
||||
|
||||
with self._console.status("Checking available cog updates..."):
|
||||
update_check_result = await _downloader.check_cog_updates(
|
||||
cogs=to_check,
|
||||
update_repos=False,
|
||||
env=_downloader.Environment(
|
||||
red_version=self.latest_version, python_version=self.interpreter_version
|
||||
),
|
||||
)
|
||||
self._console.print("Available cog updates checked.")
|
||||
|
||||
summary = CompatibilitySummary(
|
||||
instance_name=instance_name,
|
||||
before_update=self._evaluate_before_update_compatibility(to_check),
|
||||
after_update=self._evaluate_after_update_compatibility(
|
||||
to_check, update_check_result
|
||||
),
|
||||
)
|
||||
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"Finished checking cog compatibility for the ",
|
||||
Text(instance_name, style="bold"),
|
||||
" instance.",
|
||||
console=self._console,
|
||||
)
|
||||
|
||||
self._stdout_console.print()
|
||||
|
||||
# Note that when a cog can be updated
|
||||
# and its up-to-date version does not support the Red version we're updating to,
|
||||
# we don't check whether currently installed version of the cog supports that Red version.
|
||||
# This is intentional - we want to allow cog creators to mark something incompatible
|
||||
# after the fact.
|
||||
summary.after_update.print()
|
||||
|
||||
return summary
|
||||
|
||||
async def _update_repos(self) -> None:
|
||||
with detailed_progress(unit="repos", console=self._console) as progress:
|
||||
task_id = progress.add_task(
|
||||
"Updating repos", total=len(_downloader._repo_manager.repos)
|
||||
)
|
||||
updated_count = 0
|
||||
already_up_to_date_count = 0
|
||||
failed_count = 0
|
||||
for repo in _downloader._repo_manager.repos:
|
||||
progress.update(task_id, description=f"Updating {repo.name!r} repo")
|
||||
try:
|
||||
old, new = await repo.update()
|
||||
except _downloader.errors.UpdateError:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_WARN,
|
||||
"Could not update repo ",
|
||||
Text(repo.name, style="bold"),
|
||||
", the results for cogs from it may be inaccurate.",
|
||||
console=self._console,
|
||||
)
|
||||
failed_count += 1
|
||||
else:
|
||||
if old != new:
|
||||
updated_count += 1
|
||||
self._console.print("Updated repo", Text(repo.name, style="bold"))
|
||||
else:
|
||||
already_up_to_date_count += 1
|
||||
self._console.print(
|
||||
"Repo", Text(repo.name, style="bold"), "is already up-to-date."
|
||||
)
|
||||
progress.advance(task_id)
|
||||
|
||||
self._stdout_console.print(
|
||||
f"Successfully updated {updated_count} repos, failed to update {failed_count} repos.\n"
|
||||
f"{already_up_to_date_count} repos were already up-to-date.",
|
||||
highlight=True,
|
||||
)
|
||||
|
||||
def _fill_compatibility_results(
|
||||
self, results: CompatibilityResults, cogs: Iterable[_downloader.Installable]
|
||||
) -> None:
|
||||
latest_version = self.latest_version
|
||||
interpreter_version = self.interpreter_version
|
||||
breaking_update = self.current_version.release[:2] != self.latest_version.release[:2]
|
||||
|
||||
for cog in cogs:
|
||||
info = CogCompatibilityInfo.from_installable(cog)
|
||||
if cog.min_python_version > interpreter_version:
|
||||
info.compatibility_status = CompatibilityStatus.UNSUPPORTED_PYTHON_VERSION
|
||||
results.incompatible_python_version[cog.name] = info
|
||||
elif cog.min_bot_version > latest_version or (
|
||||
# max version should be ignored when it's lower than min version
|
||||
cog.min_bot_version <= cog.max_bot_version
|
||||
and cog.max_bot_version < latest_version
|
||||
):
|
||||
info.compatibility_status = CompatibilityStatus.UNSUPPORTED_BOT_VERSION
|
||||
results.incompatible_bot_version[cog.name] = info
|
||||
elif not breaking_update:
|
||||
info.compatibility_status = CompatibilityStatus.EXPLICITLY_SUPPORTED_NON_BREAKING
|
||||
results.explicitly_supported[cog.name] = info
|
||||
elif latest_version.release[:2] == cog.min_bot_version.release[:2]:
|
||||
# If cog creator explicitly set min_bot_version to 3.x.y,
|
||||
# then 3.x is explicitly supported.
|
||||
info.compatibility_status = (
|
||||
CompatibilityStatus.EXPLICITLY_SUPPORTED_MIN_BOT_VERSION
|
||||
)
|
||||
results.explicitly_supported[cog.name] = info
|
||||
elif latest_version.release[:2] == cog.max_bot_version.release[:2]:
|
||||
# If cog creator explicitly set max_bot_version to 3.x.y,
|
||||
# then 3.x is explicitly supported.
|
||||
info.compatibility_status = (
|
||||
CompatibilityStatus.EXPLICITLY_SUPPORTED_MAX_BOT_VERSION
|
||||
)
|
||||
results.explicitly_supported[cog.name] = info
|
||||
elif f"red-{latest_version.major}-{latest_version.minor}-ready" in cog.tags:
|
||||
# If cog creator explicitly added a "red-3.x-ready" tag,
|
||||
# then 3.x is explicitly supported.
|
||||
# This is similar to the meaning of "Programming Language :: Python :: 3.x"
|
||||
# classifiers in Python packaging.
|
||||
info.compatibility_status = CompatibilityStatus.EXPLICITLY_SUPPORTED_READY_TAG
|
||||
results.explicitly_supported[cog.name] = info
|
||||
else:
|
||||
# If we don't have any explicit signals from the cog's metadata that
|
||||
# Red 3.x is supported, the cog is only *potentially* supported by that version.
|
||||
info.compatibility_status = CompatibilityStatus.POTENTIALLY_SUPPORTED
|
||||
results.potentially_supported[cog.name] = info
|
||||
|
||||
def _evaluate_before_update_compatibility(
|
||||
self, to_check: Iterable[_downloader.Installable]
|
||||
) -> CompatibilityResults:
|
||||
results = CompatibilityResults(
|
||||
latest_version=self.latest_version, interpreter_version=self.interpreter_version
|
||||
)
|
||||
|
||||
self._fill_compatibility_results(results, to_check)
|
||||
|
||||
return results
|
||||
|
||||
def _evaluate_after_update_compatibility(
|
||||
self,
|
||||
to_check: Iterable[_downloader.Installable],
|
||||
update_check_result: _downloader.CogUpdateCheckResult,
|
||||
) -> CompatibilityResults:
|
||||
not_updatable = set(to_check)
|
||||
results = CompatibilityResults(
|
||||
latest_version=self.latest_version, interpreter_version=self.interpreter_version
|
||||
)
|
||||
|
||||
not_updatable.difference_update(update_check_result.incompatible_python_version)
|
||||
not_updatable.difference_update(update_check_result.incompatible_bot_version)
|
||||
not_updatable.difference_update(update_check_result.updatable_cogs)
|
||||
|
||||
self._fill_compatibility_results(results, update_check_result.incompatible_python_version)
|
||||
self._fill_compatibility_results(results, update_check_result.incompatible_bot_version)
|
||||
self._fill_compatibility_results(results, update_check_result.updatable_cogs)
|
||||
|
||||
# not_updatable should now only have cogs that were not updateable. Those cogs
|
||||
# are filled based on metadata of the currently installed ("before update") version.
|
||||
self._fill_compatibility_results(results, not_updatable)
|
||||
|
||||
return results
|
||||
|
||||
|
||||
async def check_instance(
|
||||
instance: str,
|
||||
*,
|
||||
latest_version: Version,
|
||||
interpreter_version: Version,
|
||||
ignore_prefix: bool = False,
|
||||
) -> CompatibilitySummary:
|
||||
data_manager.load_basic_configuration(instance)
|
||||
red = Red(cli_flags=parse_cli_flags([instance]))
|
||||
driver_cls = _drivers.get_driver_class()
|
||||
await driver_cls.initialize(**data_manager.storage_details())
|
||||
try:
|
||||
checker = CogCompatibilityChecker(
|
||||
red,
|
||||
latest_version=latest_version,
|
||||
interpreter_version=interpreter_version,
|
||||
ignore_prefix=ignore_prefix,
|
||||
)
|
||||
return await checker.check()
|
||||
finally:
|
||||
await driver_cls.teardown()
|
||||
@@ -0,0 +1,221 @@
|
||||
import enum
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
from operator import itemgetter
|
||||
from typing import Any, Final, Iterable, List, Literal, Optional, Tuple, Union
|
||||
|
||||
import click
|
||||
import rich
|
||||
from packaging.specifiers import SpecifierSet
|
||||
from packaging.version import Version
|
||||
from python_discovery import PythonInfo, get_interpreter
|
||||
from rich.console import Console, RenderableType
|
||||
from rich.logging import RichHandler
|
||||
from rich.table import Table
|
||||
from rich.text import Text
|
||||
|
||||
from redbot import __version__
|
||||
from redbot.core.utils._internal_utils import (
|
||||
cli_level_to_log_level,
|
||||
get_installed_extras,
|
||||
log_level_to_cli_level,
|
||||
)
|
||||
from redbot.core import data_manager
|
||||
|
||||
_instance_data = data_manager.load_existing_config()
|
||||
INSTANCE_LIST: Final = () if _instance_data is None else tuple(_instance_data.keys())
|
||||
|
||||
|
||||
ICON_SUCCESS = "[green]:white_heavy_check_mark-emoji:[/]"
|
||||
ICON_INFO = "[blue]:information-emoji:[/]"
|
||||
ICON_WARN = "[yellow]:warning-emoji:[/]"
|
||||
ICON_ERROR = "[red]:cross_mark-emoji:[/]"
|
||||
|
||||
INTERNAL_LEGACY_WINDOWS_ENV_VAR = "_RED_UPDATE_INTERNAL_LEGACY_WINDOWS"
|
||||
INTERNAL_UPDATER_METADATA_ENV_VAR = "_RED_UPDATE_INTERNAL_UPDATER_METADATA"
|
||||
_STDERR_CONSOLE: Optional[Console] = None
|
||||
|
||||
RUNNER_DIR_ENV_VAR: Final = "REDBOT_UPDATE_RUNNER_DIR"
|
||||
RUNNER_WRAPPER_EXE_ENV_VAR: Final = "REDBOT_UPDATE_RUNNER_WRAPPER_EXE"
|
||||
|
||||
OLD_VENV_BACKUP_DIR_NAME: Final = "redbot-update-old-venv-backup"
|
||||
|
||||
|
||||
def get_red_dependency_specifier(version: Version, extras: Iterable[str]) -> str:
|
||||
specifier_template = (
|
||||
os.getenv("_RED_UPDATE_PRETEND_SPECIFIER_TEMPLATE")
|
||||
or "Red-DiscordBot {extras} {versionspec}"
|
||||
)
|
||||
joined_extras = ",".join(extras)
|
||||
return specifier_template.format(
|
||||
extras=f"[{joined_extras}]" if joined_extras else "",
|
||||
versionspec=f"=={version}",
|
||||
)
|
||||
|
||||
|
||||
def get_current_red_version() -> Version:
|
||||
return Version(os.getenv("_RED_UPDATE_PRETEND_VERSION") or __version__)
|
||||
|
||||
|
||||
def get_current_python_version() -> Version:
|
||||
return Version(".".join(map(str, sys.version_info[:3])))
|
||||
|
||||
|
||||
def prefix_column(prefix: RenderableType, *parts: Union[str, Text]) -> Table:
|
||||
output = Table.grid(padding=(0, 2))
|
||||
output.add_column()
|
||||
output.add_column()
|
||||
text = Text()
|
||||
for renderable in parts:
|
||||
if isinstance(renderable, str):
|
||||
text.append_text(Text.from_markup(renderable))
|
||||
else:
|
||||
text.append_text(renderable)
|
||||
output.add_row(prefix, text)
|
||||
return output
|
||||
|
||||
|
||||
def print_with_prefix_column(
|
||||
prefix: RenderableType, *parts: Union[str, Text], console: Optional[Console] = None
|
||||
) -> None:
|
||||
if console is None:
|
||||
console = rich.get_console()
|
||||
console.print(prefix_column(prefix, *parts))
|
||||
|
||||
|
||||
def _apply_legacy_windows_workaround() -> None:
|
||||
# Rich does not properly support printing to stderr, when stdout is redirected...
|
||||
# This monkeypatch should be enough to workaround this for our purposes.
|
||||
# https://github.com/Textualize/rich/issues/4071
|
||||
if sys.platform == "win32" and not sys.stdout.isatty():
|
||||
import rich._win32_console
|
||||
|
||||
rich._win32_console.STDOUT = -12
|
||||
|
||||
|
||||
def configure_rich() -> None:
|
||||
_apply_legacy_windows_workaround()
|
||||
value = os.getenv(INTERNAL_LEGACY_WINDOWS_ENV_VAR, "")
|
||||
legacy_windows = int(value) if value else None
|
||||
rich.reconfigure(highlight=False, legacy_windows=legacy_windows)
|
||||
global _STDERR_CONSOLE
|
||||
_STDERR_CONSOLE = Console(highlight=False, stderr=True, legacy_windows=legacy_windows)
|
||||
|
||||
|
||||
def get_console(stderr: bool = False) -> Console:
|
||||
global _STDERR_CONSOLE
|
||||
if _STDERR_CONSOLE is None:
|
||||
raise RuntimeError("_STDERR_CONSOLE is not set")
|
||||
return _STDERR_CONSOLE if stderr else rich.get_console()
|
||||
|
||||
|
||||
def configure_logging(logging_level: int) -> None:
|
||||
configure_rich()
|
||||
level = cli_level_to_log_level(logging_level)
|
||||
base_logger = logging.getLogger("red")
|
||||
base_logger.setLevel(level)
|
||||
base_logger.addHandler(RichHandler(console=get_console(stderr=True), show_path=False))
|
||||
|
||||
|
||||
def get_logging_level() -> int:
|
||||
return logging.getLogger("red").level
|
||||
|
||||
|
||||
def get_log_cli_level() -> int:
|
||||
return log_level_to_cli_level(logging.getLogger("red").level)
|
||||
|
||||
|
||||
def ensure_supported_env() -> None:
|
||||
if sys.prefix == sys.base_prefix:
|
||||
print("redbot-update cannot be used when Red is installed outside a virtual environment.")
|
||||
raise SystemExit(1)
|
||||
if not (
|
||||
os.environ.get(RUNNER_DIR_ENV_VAR, "") and os.environ.get(RUNNER_WRAPPER_EXE_ENV_VAR, "")
|
||||
):
|
||||
print("redbot-update was called incorrectly.")
|
||||
raise SystemExit(1)
|
||||
|
||||
|
||||
def _get_system_interpreters(
|
||||
requires_python: SpecifierSet,
|
||||
) -> List[Tuple[str, Version, PythonInfo]]:
|
||||
interpreters = {}
|
||||
|
||||
def _append_interpreter(info: PythonInfo) -> Literal[False]:
|
||||
version = Version(info.version_str)
|
||||
if version in requires_python:
|
||||
# realpath call is needed because get_interpreter lists
|
||||
# /usr/bin and /bin as separate even though they're the same path
|
||||
interpreters[os.path.realpath(info.executable)] = (version, info)
|
||||
return False
|
||||
|
||||
get_interpreter("cpython", predicate=_append_interpreter)
|
||||
|
||||
ret = [(key, *value) for key, value in interpreters.items()]
|
||||
ret.sort(key=itemgetter(1), reverse=True)
|
||||
return ret
|
||||
|
||||
|
||||
def search_for_interpreters(
|
||||
requires_python: SpecifierSet,
|
||||
) -> List[Tuple[str, Version, PythonInfo]]:
|
||||
console = get_console()
|
||||
with console.status("Searching for compatible Python interpreters on your system..."):
|
||||
interpreters = _get_system_interpreters(requires_python)
|
||||
|
||||
if not interpreters:
|
||||
url = "https://docs.discord.red/en/stable/install_guides/"
|
||||
console.print(
|
||||
f"{ICON_ERROR} Could not find a compatible Python interpreter!\n"
|
||||
'Please follow the steps from the "Installing the pre-requirements" section'
|
||||
" of the install guide for your system:"
|
||||
)
|
||||
console.print(Text(url, style=f"link {url}"))
|
||||
console.print("Once you finish installing the pre-requirements, run this command again.")
|
||||
raise SystemExit(1)
|
||||
|
||||
return interpreters
|
||||
|
||||
|
||||
class OrderedEnum(enum.Enum):
|
||||
def __ge__(self, other: Any) -> bool:
|
||||
if self.__class__ is other.__class__:
|
||||
return self.value >= other.value
|
||||
return NotImplemented
|
||||
|
||||
def __gt__(self, other: Any) -> bool:
|
||||
if self.__class__ is other.__class__:
|
||||
return self.value > other.value
|
||||
return NotImplemented
|
||||
|
||||
def __le__(self, other: Any) -> bool:
|
||||
if self.__class__ is other.__class__:
|
||||
return self.value <= other.value
|
||||
return NotImplemented
|
||||
|
||||
def __lt__(self, other: Any) -> bool:
|
||||
if self.__class__ is other.__class__:
|
||||
return self.value < other.value
|
||||
return NotImplemented
|
||||
|
||||
|
||||
class VersionParamType(click.ParamType):
|
||||
name = "version"
|
||||
|
||||
def convert(
|
||||
self, value: Any, param: Optional[click.Parameter], ctx: Optional[click.Context]
|
||||
) -> Version:
|
||||
if isinstance(value, Version):
|
||||
if len(value.release) < 2:
|
||||
self.fail(
|
||||
f"{value!r} needs to have at least 2 release components (major and minor).",
|
||||
param,
|
||||
ctx,
|
||||
)
|
||||
return value
|
||||
|
||||
try:
|
||||
return self.convert(Version(value), param, ctx)
|
||||
except ValueError:
|
||||
self.fail(f"{value!r} is not a valid version number", param, ctx)
|
||||
@@ -0,0 +1,453 @@
|
||||
import asyncio
|
||||
import os
|
||||
import subprocess
|
||||
import shutil
|
||||
import sys
|
||||
import sysconfig
|
||||
from pathlib import Path
|
||||
from typing import Tuple
|
||||
|
||||
import click
|
||||
from rich.markdown import Markdown
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Confirm
|
||||
from rich.text import Text
|
||||
|
||||
from redbot import __version__
|
||||
from redbot.core import _downloader, _drivers, data_manager
|
||||
from redbot.core._cli import asyncio_run, parse_cli_flags
|
||||
from redbot.core.bot import Red
|
||||
|
||||
from . import changelog, cmd, common, runner
|
||||
from .updater import UpdaterMetadata, get_updater_metadata
|
||||
|
||||
|
||||
FINISH_UPDATE_CMD_NAME = "finish-update"
|
||||
_UPDATE_COGS_CMD_NAME = "update-cogs"
|
||||
_UPDATE_REPOS_OPTION_NAME = "--update-repos"
|
||||
_EXIT_INSTANCE_SITE_PREFIX_MISMATCH = 4
|
||||
_EXIT_INSTANCE_BACKEND_UNSUPPORTED = 5
|
||||
|
||||
|
||||
@click.group(invoke_without_command=True)
|
||||
@click.option(cmd.arg_names.DEBUG, "logging_level", count=True)
|
||||
def cli(logging_level: int) -> None:
|
||||
common.ensure_supported_env()
|
||||
common.configure_logging(logging_level)
|
||||
|
||||
|
||||
@cli.command(_UPDATE_COGS_CMD_NAME)
|
||||
@click.argument("instance_name")
|
||||
@click.option(_UPDATE_REPOS_OPTION_NAME, default=False, is_flag=True)
|
||||
def update_cogs(instance_name: str, update_repos: bool) -> None:
|
||||
asyncio.run(_update_cogs(instance_name, update_repos))
|
||||
|
||||
|
||||
async def _update_cogs(instance: str, update_repos: bool) -> None:
|
||||
data_manager.load_basic_configuration(instance)
|
||||
red = Red(cli_flags=parse_cli_flags([instance]))
|
||||
driver_cls = _drivers.get_driver_class()
|
||||
await driver_cls.initialize(**data_manager.storage_details())
|
||||
try:
|
||||
await _run_cog_update(red, update_repos=update_repos)
|
||||
except _drivers.MissingExtraRequirements:
|
||||
raise SystemExit(_EXIT_INSTANCE_BACKEND_UNSUPPORTED)
|
||||
finally:
|
||||
await driver_cls.teardown()
|
||||
|
||||
|
||||
async def _run_cog_update(bot: Red, *, update_repos: bool) -> None:
|
||||
stdout_console = common.get_console()
|
||||
console = common.get_console(stderr=True)
|
||||
|
||||
instance_name = data_manager.instance_name()
|
||||
last_known_prefix = await bot._config.last_system_info.python_prefix()
|
||||
same_install = False
|
||||
if last_known_prefix is not None:
|
||||
try:
|
||||
same_install = os.path.samefile(last_known_prefix, sys.prefix)
|
||||
except OSError:
|
||||
pass
|
||||
if not same_install:
|
||||
raise SystemExit(_EXIT_INSTANCE_SITE_PREFIX_MISMATCH)
|
||||
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"Started updating cogs for the ",
|
||||
Text(instance_name, style="bold"),
|
||||
" instance.",
|
||||
console=console,
|
||||
)
|
||||
status = Text.assemble(
|
||||
"Update cogs installed on the ", (instance_name, "bold"), " instance..."
|
||||
)
|
||||
with console.status(status):
|
||||
await _downloader._init_without_bot(bot._cog_mgr)
|
||||
result = await _downloader.update_cogs(update_repos=update_repos)
|
||||
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"Finished updating cogs for the ",
|
||||
Text(instance_name, style="bold"),
|
||||
" instance.",
|
||||
console=console,
|
||||
)
|
||||
|
||||
if not result.checked_cogs:
|
||||
stdout_console.print("There were no cogs to check.")
|
||||
return
|
||||
if not result.updates_available:
|
||||
stdout_console.print("All installed cogs are already up to date.")
|
||||
return
|
||||
|
||||
current_cog_versions_map = {cog.name: cog for cog in result.checked_cogs}
|
||||
if result.failed_reqs:
|
||||
console.print(
|
||||
"Failed to install requirements:",
|
||||
Text(", ").join(Text(req, style="bold") for req in result.failed_reqs),
|
||||
)
|
||||
return
|
||||
|
||||
message = Text("Cog update completed successfully.")
|
||||
|
||||
if result.updated_cogs:
|
||||
cogs_with_changed_eud_statement = set()
|
||||
for cog in result.updated_cogs:
|
||||
current_eud_statement = current_cog_versions_map[cog.name].end_user_data_statement
|
||||
if current_eud_statement != cog.end_user_data_statement:
|
||||
cogs_with_changed_eud_statement.add(cog.name)
|
||||
message.append("\nUpdated: ")
|
||||
message.append_text(
|
||||
Text(", ").join(Text(cog.name, style="bold") for cog in result.updated_cogs)
|
||||
)
|
||||
if cogs_with_changed_eud_statement:
|
||||
message.append("\nEnd user data statements of these cogs have changed: ")
|
||||
message.append_text(
|
||||
Text(", ").join(
|
||||
Text(cog_name, style="bold") for cog_name in cogs_with_changed_eud_statement
|
||||
)
|
||||
)
|
||||
message.append("\nYou can use ")
|
||||
message.append("[p]cog info <repo> <cog>", style="bold")
|
||||
message.append(" to see the updated statements.\n")
|
||||
# If the bot has any slash commands enabled, warn them to sync
|
||||
enabled_slash = await bot.list_enabled_app_commands()
|
||||
if any(enabled_slash.values()):
|
||||
message.append("\nYou may need to resync your slash commands with ")
|
||||
message.append("[p]slash sync")
|
||||
message.append(".")
|
||||
if result.failed_cogs:
|
||||
message.append("\nFailed to update cogs: ")
|
||||
message.append_text(
|
||||
Text(", ").join(Text(cog.name, style="bold") for cog in result.failed_cogs)
|
||||
)
|
||||
if not result.outdated_cogs:
|
||||
message = Text("No cogs were updated.")
|
||||
if result.failed_libs:
|
||||
message.append("\nFailed to install shared libraries: ")
|
||||
message.append_text(
|
||||
Text(", ").join(Text(lib.name, style="bold") for lib in result.failed_libs)
|
||||
)
|
||||
|
||||
stdout_console.print(message)
|
||||
|
||||
|
||||
@cli.command(FINISH_UPDATE_CMD_NAME)
|
||||
def finish_update() -> None:
|
||||
"""
|
||||
Entrypoint for finishing up the update that runs with the new version of Red.
|
||||
"""
|
||||
asyncio_run(_finish_update())
|
||||
|
||||
|
||||
async def _finish_update() -> None:
|
||||
assert runner.get_request_output().request_type is runner.RequestType.exec
|
||||
updater_metadata = get_updater_metadata()
|
||||
console = common.get_console()
|
||||
console.print()
|
||||
|
||||
if updater_metadata.options.interactive and not updater_metadata.options.update_cogs:
|
||||
msg = Text("It is highly recommended to update 3rd-party cogs after updating Red")
|
||||
if updater_metadata.breaking_update:
|
||||
msg.append(", especially after a major update")
|
||||
msg.append(".")
|
||||
console.print(msg)
|
||||
|
||||
cog_compatibility = updater_metadata.cog_compatibility
|
||||
if cog_compatibility is not None:
|
||||
unsupported_cogs = set()
|
||||
cogs_with_improved_compatibility = set()
|
||||
unaffected_cogs = set()
|
||||
for summary in cog_compatibility.checked.values():
|
||||
for before in summary.before_update.values():
|
||||
cog_name = before.name
|
||||
after = summary.after_update[cog_name]
|
||||
if after.compatibility_status.unsupported:
|
||||
unsupported_cogs.add(cog_name)
|
||||
elif after.compatibility_status.explicitly_supported:
|
||||
if before.compatibility_status.explicitly_supported:
|
||||
unaffected_cogs.add(cog_name)
|
||||
else:
|
||||
cogs_with_improved_compatibility.add(cog_name)
|
||||
elif before.compatibility_status.unsupported:
|
||||
cogs_with_improved_compatibility.add(cog_name)
|
||||
else:
|
||||
unaffected_cogs.add(cog_name)
|
||||
|
||||
if cogs_with_improved_compatibility:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"Updating will improve compatibility of ",
|
||||
Text(str(len(cogs_with_improved_compatibility)), style="bold"),
|
||||
" cogs.",
|
||||
)
|
||||
if unsupported_cogs:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_WARN,
|
||||
Text(str(len(unsupported_cogs)), style="bold"),
|
||||
" cogs will remain unsupported after updating:\n",
|
||||
Text(", ").join(
|
||||
Text(cog_name, style="bold") for cog_name in sorted(unsupported_cogs)
|
||||
),
|
||||
)
|
||||
|
||||
update_cogs = updater_metadata.options.update_cogs
|
||||
if update_cogs is None:
|
||||
if updater_metadata.options.interactive:
|
||||
update_cogs = Confirm.ask("Do you want to update all your cogs?", default=True)
|
||||
else:
|
||||
update_cogs = True
|
||||
if update_cogs:
|
||||
await _handle_cog_updates(updater_metadata)
|
||||
|
||||
with console.status("Cleaning up..."):
|
||||
backup_dir = Path(sys.prefix) / common.OLD_VENV_BACKUP_DIR_NAME
|
||||
shutil.rmtree(backup_dir)
|
||||
|
||||
changelog_markdown = changelog.render_markdown(updater_metadata.changelogs)
|
||||
if changelog_markdown:
|
||||
console.print(Panel(Markdown(changelog_markdown)))
|
||||
|
||||
console.print()
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_SUCCESS,
|
||||
"Update to Red ",
|
||||
Text(__version__, style="bold"),
|
||||
" has been finished!",
|
||||
)
|
||||
|
||||
if changelog_markdown:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
'Remember to follow instructions from the "Read before updating" section,'
|
||||
" if any were provided.",
|
||||
)
|
||||
|
||||
if updater_metadata.backup_dir:
|
||||
additional_text = ""
|
||||
if not updater_metadata.options.backup_dir:
|
||||
additional_text = (
|
||||
"\nNote that this is a temporary directory and may eventually get auto-removed"
|
||||
" by your system."
|
||||
)
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"If needed, you can find the backups of the virtual environment"
|
||||
" and the instances at: ",
|
||||
Text(str(updater_metadata.backup_dir), style="bold"),
|
||||
additional_text,
|
||||
)
|
||||
|
||||
|
||||
async def _handle_cog_updates(updater_metadata: UpdaterMetadata) -> None:
|
||||
cog_compatibility = updater_metadata.cog_compatibility
|
||||
console = common.get_console()
|
||||
|
||||
instances = (
|
||||
list(cog_compatibility.checked)
|
||||
if cog_compatibility is not None
|
||||
else updater_metadata.options.instances
|
||||
)
|
||||
checked_instances = {}
|
||||
failed_instances = []
|
||||
unsupported_storage_instances = []
|
||||
for instance_name in instances:
|
||||
if instance_name in updater_metadata.options.excluded_instances:
|
||||
continue
|
||||
exit_code, stdout = await _call_cog_update(
|
||||
instance_name, update_repos=cog_compatibility is None
|
||||
)
|
||||
if exit_code == _EXIT_INSTANCE_BACKEND_UNSUPPORTED:
|
||||
unsupported_storage_instances.append(instance_name)
|
||||
elif exit_code == _EXIT_INSTANCE_SITE_PREFIX_MISMATCH:
|
||||
pass
|
||||
elif exit_code:
|
||||
failed_instances.append(instance_name)
|
||||
print(stdout, end="")
|
||||
Text.assemble(
|
||||
"\N{UPWARDS ARROW} " * 3, "Failure for ", (instance_name, "bold"), " instance"
|
||||
)
|
||||
console.rule(
|
||||
Text.assemble(
|
||||
"\N{UPWARDS ARROW} " * 3,
|
||||
"Failure for ",
|
||||
(instance_name, "bold"),
|
||||
" instance above",
|
||||
" \N{UPWARDS ARROW}" * 3,
|
||||
),
|
||||
style="red",
|
||||
)
|
||||
else:
|
||||
checked_instances[instance_name] = stdout
|
||||
if stdout:
|
||||
console.print()
|
||||
|
||||
if checked_instances:
|
||||
for instance_name, stdout in checked_instances.items():
|
||||
console.rule(Text(instance_name, style="bold"))
|
||||
print(stdout, end="")
|
||||
console.rule()
|
||||
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"Finished updating cogs.",
|
||||
"\nThe results for each instance are shown above." if checked_instances else "",
|
||||
)
|
||||
if failed_instances:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
"Failure occurred while trying to perform update for following instances: ",
|
||||
Text(", ").join(
|
||||
Text(instance_name, style="bold") for instance_name in failed_instances
|
||||
),
|
||||
"\nScroll above to find the errors.",
|
||||
)
|
||||
if unsupported_storage_instances:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"The following instances were skipped as they use a storage backend that is"
|
||||
" not supported by the current Red installation (some requirements are missing): ",
|
||||
Text(", ").join(
|
||||
Text(instance_name, style="bold")
|
||||
for instance_name in unsupported_storage_instances
|
||||
),
|
||||
)
|
||||
if not checked_instances:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"There were no",
|
||||
(" other" if failed_instances or unsupported_storage_instances else ""),
|
||||
" instances to update cogs for.",
|
||||
)
|
||||
|
||||
|
||||
async def _call_cog_update(instance_name: str, *, update_repos: bool) -> Tuple[int, str]:
|
||||
debug_args = (cmd.arg_names.DEBUG,) * common.get_log_cli_level()
|
||||
args = [
|
||||
"-m",
|
||||
"redbot._update.internal",
|
||||
*debug_args,
|
||||
_UPDATE_COGS_CMD_NAME,
|
||||
instance_name,
|
||||
]
|
||||
if update_repos:
|
||||
args.append(_UPDATE_REPOS_OPTION_NAME)
|
||||
env = os.environ.copy()
|
||||
|
||||
# terminal woes
|
||||
console = common.get_console()
|
||||
if console.is_terminal:
|
||||
env["TTY_COMPATIBLE"] = "1"
|
||||
# Rich only checks stdout for Windows console features:
|
||||
# https://github.com/Textualize/rich/blob/fc41075a3206d2a5fd846c6f41c4d2becab814fa/rich/_windows.py#L46
|
||||
env[common.INTERNAL_LEGACY_WINDOWS_ENV_VAR] = "1" if console.legacy_windows else "0"
|
||||
else:
|
||||
# Rich does not set legacy_windows correctly when is_terminal is False
|
||||
# https://github.com/Textualize/rich/issues/3647
|
||||
env[common.INTERNAL_LEGACY_WINDOWS_ENV_VAR] = "0"
|
||||
env["PYTHONIOENCODING"] = sys.stdout.encoding
|
||||
|
||||
proc = await asyncio.create_subprocess_exec(
|
||||
sys.executable, *args, env=env, stdout=asyncio.subprocess.PIPE
|
||||
)
|
||||
stdout_data, _ = await proc.communicate()
|
||||
decoded_stdout = stdout_data.decode()
|
||||
exit_code = await proc.wait()
|
||||
|
||||
return exit_code, decoded_stdout
|
||||
|
||||
|
||||
@cli.command()
|
||||
@click.argument("base_executable")
|
||||
@click.argument("venv_dir", type=click.Path(path_type=Path))
|
||||
@click.argument("scripts_path", type=click.Path(path_type=Path))
|
||||
@click.argument("dependency_specifier")
|
||||
def reinstall(
|
||||
base_executable: str, venv_dir: Path, scripts_path: Path, dependency_specifier: str
|
||||
) -> None:
|
||||
assert runner.get_request_output().request_type is runner.RequestType.exec
|
||||
|
||||
console = common.get_console()
|
||||
with console.status("Creating a new virtual environment..."):
|
||||
subprocess.check_call((base_executable, "-m", "venv", str(venv_dir)))
|
||||
console.print("Created a new virtual environment.")
|
||||
executable = str(scripts_path / f"python{sysconfig.get_config_var('EXE')}")
|
||||
|
||||
common.print_with_prefix_column(common.ICON_INFO, "Starting the install process...")
|
||||
try:
|
||||
subprocess.check_call((executable, "-m", "pip", "install", "-U", "pip"))
|
||||
subprocess.check_call((executable, "-m", "pip", "install", dependency_specifier))
|
||||
except subprocess.CalledProcessError:
|
||||
console.print()
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
"Failed to install new version of Red.",
|
||||
)
|
||||
status = console.status("Attempting to restore old virtual environment...")
|
||||
status.start()
|
||||
try:
|
||||
_remove_new_venv(venv_dir)
|
||||
except Exception:
|
||||
status.stop()
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR, "Failed to remove newly created virtual environment."
|
||||
)
|
||||
raise SystemExit(1)
|
||||
try:
|
||||
_restore_old_venv(venv_dir)
|
||||
except Exception:
|
||||
status.stop()
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR, "Failed to restore old virtual environment."
|
||||
)
|
||||
else:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO, "The old virtual environment has been restored."
|
||||
)
|
||||
raise SystemExit(1)
|
||||
|
||||
# NOTE: this will run with the updated version of Red
|
||||
runner.make_exec_request(executable, "finish-update")
|
||||
|
||||
|
||||
def _remove_new_venv(venv_dir: Path) -> None:
|
||||
backup_dir = venv_dir / common.OLD_VENV_BACKUP_DIR_NAME
|
||||
wrapper_exe = runner.get_wrapper_executable()
|
||||
|
||||
for path in venv_dir.iterdir():
|
||||
if path == backup_dir or path == wrapper_exe:
|
||||
continue
|
||||
if path.is_dir():
|
||||
shutil.rmtree(path)
|
||||
else:
|
||||
path.unlink()
|
||||
|
||||
|
||||
def _restore_old_venv(venv_dir: Path) -> None:
|
||||
backup_dir = venv_dir / common.OLD_VENV_BACKUP_DIR_NAME
|
||||
for path in backup_dir.iterdir():
|
||||
path.rename(venv_dir / path.name)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
cli()
|
||||
@@ -0,0 +1,119 @@
|
||||
import enum
|
||||
import dataclasses
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from typing import Any, ClassVar, Dict, Iterable, NoReturn, Optional, Tuple, Union
|
||||
|
||||
from . import cmd, common
|
||||
|
||||
_RUNNER_DIR = Path(os.environ.get(common.RUNNER_DIR_ENV_VAR, ""))
|
||||
|
||||
|
||||
class RequestType(enum.Enum):
|
||||
exec = "exec"
|
||||
spawn_command = "spawn_command"
|
||||
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class RequestInput:
|
||||
request_type: ClassVar[RequestType]
|
||||
request_new_python_exe: str
|
||||
request_new_start_args: Tuple[str, ...]
|
||||
request_set_env_vars: Dict[str, Optional[str]]
|
||||
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class RequestOutput:
|
||||
request_type: RequestType
|
||||
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class ExecRequestInput(RequestInput):
|
||||
request_type: ClassVar = RequestType.exec
|
||||
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class ExecRequestOutput(RequestOutput):
|
||||
pass
|
||||
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class SpawnProcessRequestInput(RequestInput):
|
||||
request_type: ClassVar = RequestType.spawn_command
|
||||
command: str
|
||||
args: Tuple[str, ...]
|
||||
env: Optional[Dict[str, str]]
|
||||
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class SpawnProcessRequestOutput(RequestOutput):
|
||||
exit_code: int
|
||||
exited: bool
|
||||
pid: int
|
||||
sys: Any
|
||||
sys_usage: Dict[str, Any]
|
||||
system_time: int
|
||||
user_time: int
|
||||
|
||||
|
||||
def make_request(request: RequestInput) -> NoReturn:
|
||||
with open(_RUNNER_DIR / "request_input.json", "w", encoding="utf-8") as fp:
|
||||
data = dataclasses.asdict(request)
|
||||
data["request_type"] = request.request_type.value
|
||||
json.dump(data, fp)
|
||||
raise SystemExit(3)
|
||||
|
||||
|
||||
def get_request_output() -> Union[ExecRequestOutput, SpawnProcessRequestOutput]:
|
||||
with open(_RUNNER_DIR / "request_output.json", encoding="utf-8") as fp:
|
||||
data = json.load(fp)
|
||||
request_type = RequestType(data.pop("request_type"))
|
||||
if request_type == RequestType.exec:
|
||||
return ExecRequestOutput(request_type=request_type)
|
||||
elif request_type == RequestType.spawn_command:
|
||||
return SpawnProcessRequestOutput(request_type=request_type, **data)
|
||||
raise RuntimeError("unreachable code")
|
||||
|
||||
|
||||
def make_spawn_process_request(
|
||||
command: str,
|
||||
*args: str,
|
||||
env: Optional[Dict[str, str]] = None,
|
||||
new_start_args: Iterable[str],
|
||||
new_python_exe: str = sys.executable,
|
||||
set_env_vars: Optional[Dict[str, Optional[str]]] = None,
|
||||
) -> NoReturn:
|
||||
if set_env_vars is None:
|
||||
set_env_vars = {}
|
||||
debug_args = (cmd.arg_names.DEBUG,) * common.get_log_cli_level()
|
||||
request = SpawnProcessRequestInput(
|
||||
request_new_python_exe=new_python_exe,
|
||||
request_new_start_args=("-m", "redbot._update.internal", *debug_args, *new_start_args),
|
||||
request_set_env_vars=set_env_vars,
|
||||
command=command,
|
||||
args=args,
|
||||
env=env,
|
||||
)
|
||||
make_request(request)
|
||||
|
||||
|
||||
def make_exec_request(
|
||||
new_python_exe: str,
|
||||
*new_start_args: str,
|
||||
set_env_vars: Optional[Dict[str, Optional[str]]] = None,
|
||||
) -> NoReturn:
|
||||
if set_env_vars is None:
|
||||
set_env_vars = {}
|
||||
debug_args = (cmd.arg_names.DEBUG,) * common.get_log_cli_level()
|
||||
request = ExecRequestInput(
|
||||
request_new_python_exe=new_python_exe,
|
||||
request_new_start_args=("-m", "redbot._update.internal", *debug_args, *new_start_args),
|
||||
request_set_env_vars=set_env_vars,
|
||||
)
|
||||
make_request(request)
|
||||
|
||||
|
||||
def get_wrapper_executable() -> Path:
|
||||
return Path(os.environ[common.RUNNER_WRAPPER_EXE_ENV_VAR])
|
||||
@@ -0,0 +1,129 @@
|
||||
import enum
|
||||
|
||||
from rich.text import Text
|
||||
from textual.app import App, ComposeResult
|
||||
from textual.binding import Binding
|
||||
from textual.events import Click
|
||||
from textual.widgets import Footer, Markdown, MarkdownViewer, Static
|
||||
from typing_extensions import Self
|
||||
|
||||
from .changelog import Changelogs
|
||||
|
||||
|
||||
# See https://github.com/Textualize/textual/discussions/6449
|
||||
class MarkdownLinkTooltip(Static, inherit_css=False):
|
||||
DEFAULT_CSS = """
|
||||
MarkdownLinkTooltip {
|
||||
layer: _tooltips;
|
||||
margin: 1 0;
|
||||
padding: 1 2;
|
||||
background: $panel;
|
||||
width: auto;
|
||||
height: auto;
|
||||
constrain: inside inflect;
|
||||
max-width: 40;
|
||||
display: none;
|
||||
offset-x: -50%;
|
||||
}
|
||||
"""
|
||||
|
||||
|
||||
class _MarkdownViewer(MarkdownViewer):
|
||||
DEFAULT_CSS = """
|
||||
_MarkdownViewer {
|
||||
layers: default _tooltips;
|
||||
}
|
||||
"""
|
||||
|
||||
def compose(self) -> ComposeResult:
|
||||
yield from super().compose()
|
||||
yield MarkdownLinkTooltip()
|
||||
|
||||
def on_markdown_link_clicked(self, message: Markdown.LinkClicked) -> None:
|
||||
# We don't want the default behavior of opening the browser/navigating to a file on click.
|
||||
message.prevent_default()
|
||||
|
||||
tooltip = self.get_child_by_type(MarkdownLinkTooltip)
|
||||
tooltip.display = True
|
||||
# You can't cycle over the links in MarkdownViewer (see Textualize/textual#3555)
|
||||
# so using mouse position is fine.
|
||||
# Textualize/textual#3555: https://github.com/Textualize/textual/discussions/3555
|
||||
tooltip.absolute_offset = self.app.mouse_position
|
||||
# For some reason, links only render correctly when Text has a span over the whole text
|
||||
# with a link but not when Text just has a style applied to it directly, i.e.:
|
||||
# Text(message.href, style=f"link {message.href}")
|
||||
# will not work.
|
||||
tooltip.update(Text().append(message.href, style=f"link {message.href}"))
|
||||
|
||||
def on_click(self, message: Click) -> None:
|
||||
tooltip = self.get_child_by_type(MarkdownLinkTooltip)
|
||||
tooltip.display = False
|
||||
|
||||
|
||||
class ChangelogReaderResult(enum.Enum):
|
||||
QUIT = enum.auto()
|
||||
CONTINUE = enum.auto()
|
||||
|
||||
|
||||
class ChangelogReaderApp(App[ChangelogReaderResult], inherit_bindings=False):
|
||||
ENABLE_COMMAND_PALETTE = False
|
||||
BINDINGS = [
|
||||
Binding(key="ctrl+c", action="quit", description="Exit redbot-update"),
|
||||
Binding(key="q", action="continue", description="Finish reading the changelog"),
|
||||
]
|
||||
|
||||
def __init__(self, markdown_content: str) -> None:
|
||||
self.markdown_content = markdown_content
|
||||
super().__init__()
|
||||
|
||||
@classmethod
|
||||
def from_changelogs(cls, changelogs: Changelogs) -> Self:
|
||||
if not changelogs:
|
||||
return cls("")
|
||||
|
||||
parts = []
|
||||
contributors = sorted(
|
||||
{
|
||||
contributor
|
||||
for changelog in changelogs.values()
|
||||
for contributor in changelog.contributors
|
||||
}
|
||||
)
|
||||
if contributors:
|
||||
contributor_thanks = (
|
||||
"# Thanks to our contributors \N{HEAVY BLACK HEART}\N{VARIATION SELECTOR-16}\n"
|
||||
"**The releases below were made with help from the following people:** \n"
|
||||
)
|
||||
contributor_thanks += ", ".join(
|
||||
f"[@{contributor}](https://github.com/sponsors/{contributor})"
|
||||
for contributor in contributors
|
||||
)
|
||||
parts.append(contributor_thanks)
|
||||
|
||||
parts.append("# Read before updating")
|
||||
for changelog in reversed(changelogs.values()):
|
||||
if changelog.read_before_updating_section:
|
||||
parts.append(f"## {changelog.version}")
|
||||
parts.append(changelog.read_before_updating_section)
|
||||
|
||||
parts.append("# User changelog")
|
||||
for changelog in reversed(changelogs.values()):
|
||||
if changelog.user_changelog_section:
|
||||
parts.append(f"## {changelog.version}")
|
||||
parts.append(changelog.user_changelog_section)
|
||||
|
||||
return cls("\n".join(parts))
|
||||
|
||||
def compose(self) -> ComposeResult:
|
||||
markdown_viewer = _MarkdownViewer(
|
||||
self.markdown_content, show_table_of_contents=True, open_links=False
|
||||
)
|
||||
markdown_viewer.code_indent_guides = False
|
||||
yield markdown_viewer
|
||||
yield Footer()
|
||||
|
||||
def action_quit(self) -> None:
|
||||
self.exit(ChangelogReaderResult.QUIT)
|
||||
|
||||
def action_continue(self) -> None:
|
||||
self.exit(ChangelogReaderResult.CONTINUE)
|
||||
@@ -0,0 +1,736 @@
|
||||
import asyncio
|
||||
import dataclasses
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import tarfile
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
from typing import Any, Dict, List, NoReturn, Optional, Set
|
||||
|
||||
import click
|
||||
from packaging.version import Version
|
||||
from python_discovery import PythonInfo
|
||||
from rich.markdown import Markdown
|
||||
from rich.panel import Panel
|
||||
from rich.prompt import Confirm, IntPrompt, Prompt
|
||||
from rich.text import Text
|
||||
from typing_extensions import Self
|
||||
|
||||
from redbot.core.utils._internal_utils import (
|
||||
AvailableVersion,
|
||||
detailed_progress,
|
||||
fetch_available_red_versions,
|
||||
get_installed_extras,
|
||||
)
|
||||
|
||||
from . import changelog, cmd, common, runner
|
||||
from .cog_compatibility_checker import CompatibilitySummary
|
||||
from .tui import ChangelogReaderApp, ChangelogReaderResult
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
class UpdaterOptions:
|
||||
"""Update options specified by the user."""
|
||||
|
||||
instances: List[str]
|
||||
excluded_instances: Set[str]
|
||||
ignore_prefix: bool
|
||||
backup_dir: Optional[Path]
|
||||
no_backup: bool
|
||||
red_version: Optional[Version]
|
||||
no_major_updates: bool
|
||||
no_full_changelog: bool
|
||||
no_cog_compatibility_check: bool
|
||||
new_python_interpreter: Optional[PythonInfo]
|
||||
update_cogs: Optional[bool]
|
||||
force_reinstall: bool
|
||||
interactive: bool
|
||||
|
||||
@classmethod
|
||||
def from_json_dict(cls, data: Dict[str, Any]) -> Self:
|
||||
backup_dir = data["backup_dir"]
|
||||
red_version = data["red_version"]
|
||||
return cls(
|
||||
instances=data["instances"],
|
||||
excluded_instances=set(data["excluded_instances"]),
|
||||
ignore_prefix=data["ignore_prefix"],
|
||||
backup_dir=backup_dir and Path(data["backup_dir"]),
|
||||
no_backup=data["no_backup"],
|
||||
red_version=red_version and Version(red_version),
|
||||
no_major_updates=data["no_major_updates"],
|
||||
no_full_changelog=data["no_full_changelog"],
|
||||
no_cog_compatibility_check=data["no_cog_compatibility_check"],
|
||||
new_python_interpreter=(
|
||||
data["new_python_interpreter"]
|
||||
and PythonInfo.from_dict(data["new_python_interpreter"])
|
||||
),
|
||||
update_cogs=data["update_cogs"],
|
||||
force_reinstall=data["force_reinstall"],
|
||||
interactive=data["interactive"],
|
||||
)
|
||||
|
||||
def to_json_dict(self) -> Dict[str, Any]:
|
||||
data = dataclasses.asdict(self)
|
||||
data["excluded_instances"] = list(self.excluded_instances)
|
||||
data["backup_dir"] = self.backup_dir and str(self.backup_dir)
|
||||
data["red_version"] = self.red_version and str(self.red_version)
|
||||
data["new_python_interpreter"] = (
|
||||
self.new_python_interpreter and self.new_python_interpreter.to_dict()
|
||||
)
|
||||
return data
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
class UpdaterCompatibilitySummary:
|
||||
checked: Dict[str, CompatibilitySummary]
|
||||
failed: List[str]
|
||||
skipped: List[str]
|
||||
|
||||
@classmethod
|
||||
def from_json_dict(cls, data: Dict[str, Any]) -> Self:
|
||||
return cls(
|
||||
checked={
|
||||
instance_name: CompatibilitySummary.from_json_dict(results_data)
|
||||
for instance_name, results_data in data["checked"].items()
|
||||
},
|
||||
failed=data["failed"],
|
||||
skipped=data["skipped"],
|
||||
)
|
||||
|
||||
def to_json_dict(self) -> Dict[str, Any]:
|
||||
return {
|
||||
"checked": {
|
||||
instance_name: results.to_json_dict()
|
||||
for instance_name, results in self.checked.items()
|
||||
},
|
||||
"failed": self.failed,
|
||||
"skipped": self.skipped,
|
||||
}
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
class BackupResults:
|
||||
checked: List[str]
|
||||
failed: List[str]
|
||||
skipped: List[str] = dataclasses.field(default_factory=list)
|
||||
|
||||
@classmethod
|
||||
def from_json_dict(cls, data: Dict[str, List[str]]) -> Self:
|
||||
return cls(checked=data["checked"], failed=data["failed"], skipped=data["skipped"])
|
||||
|
||||
def to_json_dict(self) -> Dict[str, List[str]]:
|
||||
return dataclasses.asdict(self)
|
||||
|
||||
|
||||
_PYTHON_VERSION_PLACEHOLDER = Version("0.0.dev0")
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
class UpdaterMetadata:
|
||||
"""Metadata about the update process."""
|
||||
|
||||
# options specified by the user
|
||||
options: UpdaterOptions
|
||||
# info about Red version to update to (latest available or latest non-major update)
|
||||
latest: AvailableVersion
|
||||
latest_major: AvailableVersion
|
||||
# info about Red/Python versions that we're updating from
|
||||
current_version: Version = dataclasses.field(default_factory=common.get_current_red_version)
|
||||
current_python_version: Version = dataclasses.field(
|
||||
default_factory=common.get_current_python_version
|
||||
)
|
||||
# details about the interpreter that will be used for the new venv
|
||||
interpreter_info: PythonInfo = dataclasses.field(default_factory=PythonInfo.current_system)
|
||||
interpreter_version: Version = _PYTHON_VERSION_PLACEHOLDER
|
||||
interpreter_exe: str = ""
|
||||
# changelogs for version in (current_version, latest> range
|
||||
changelogs: changelog.Changelogs = dataclasses.field(default_factory=dict)
|
||||
# cog compatibility check results
|
||||
cog_compatibility: Optional[UpdaterCompatibilitySummary] = None
|
||||
# backup info
|
||||
to_backup: List[str] = dataclasses.field(default_factory=list)
|
||||
backup_dir: Optional[Path] = None
|
||||
backup_results: Optional[BackupResults] = None
|
||||
|
||||
def __post_init__(self) -> None:
|
||||
if self.interpreter_version is _PYTHON_VERSION_PLACEHOLDER:
|
||||
self.interpreter_version = Version(
|
||||
".".join(map(str, self.interpreter_info.version_info[:3]))
|
||||
)
|
||||
if not self.interpreter_exe:
|
||||
self.interpreter_exe = self.interpreter_info.system_executable
|
||||
|
||||
@classmethod
|
||||
def from_json_dict(cls, data: Dict[str, Any]) -> Self:
|
||||
"""
|
||||
Make an instance of this class from a dictionary,
|
||||
as returned by the `to_json_dict()` method.
|
||||
|
||||
This aims to maintain backwards compatibility with data generated by
|
||||
earlier Red versions as it may be called with such data
|
||||
after the last update step.
|
||||
"""
|
||||
backup_dir = data.get("backup_dir")
|
||||
return cls(
|
||||
options=UpdaterOptions.from_json_dict(data["options"]),
|
||||
latest=AvailableVersion.from_json_dict(data["latest"]),
|
||||
latest_major=AvailableVersion.from_json_dict(data["latest_major"]),
|
||||
current_version=Version(data["current_version"]),
|
||||
current_python_version=Version(data["current_python_version"]),
|
||||
interpreter_version=Version(data["interpreter_version"]),
|
||||
interpreter_info=PythonInfo.from_dict(data["interpreter_info"]),
|
||||
interpreter_exe=data["interpreter_exe"],
|
||||
changelogs={
|
||||
Version(raw_version): changelog.VersionChangelog.from_json_dict(raw_changelog)
|
||||
for raw_version, raw_changelog in data["changelogs"].items()
|
||||
},
|
||||
cog_compatibility=UpdaterCompatibilitySummary.from_json_dict(
|
||||
data["cog_compatibility"]
|
||||
),
|
||||
to_backup=data["to_backup"],
|
||||
backup_dir=backup_dir and Path(backup_dir),
|
||||
backup_results=BackupResults.from_json_dict(data["backup_results"]),
|
||||
)
|
||||
|
||||
def to_json_dict(self) -> Dict[str, Any]:
|
||||
return {
|
||||
"options": self.options.to_json_dict(),
|
||||
"latest": self.latest.to_json_dict(),
|
||||
"latest_major": self.latest_major.to_json_dict(),
|
||||
"current_version": str(self.current_version),
|
||||
"current_python_version": str(self.current_python_version),
|
||||
"interpreter_version": str(self.interpreter_version),
|
||||
"interpreter_info": self.interpreter_info.to_dict(),
|
||||
"interpreter_exe": self.interpreter_exe,
|
||||
"changelogs": {str(v): c.to_json_dict() for v, c in self.changelogs.items()},
|
||||
"cog_compatibility": self.cog_compatibility and self.cog_compatibility.to_json_dict(),
|
||||
"to_backup": self.to_backup,
|
||||
"backup_dir": self.backup_dir and str(self.backup_dir),
|
||||
"backup_results": self.backup_results and self.backup_results.to_json_dict(),
|
||||
}
|
||||
|
||||
@property
|
||||
def breaking_update(self) -> bool:
|
||||
return self.current_version.release[:2] != self.latest.version.release[:2]
|
||||
|
||||
|
||||
class Updater:
|
||||
metadata: UpdaterMetadata
|
||||
|
||||
def __init__(self, options: UpdaterOptions) -> None:
|
||||
self.options = options
|
||||
self.console = common.get_console()
|
||||
|
||||
@property
|
||||
def latest(self) -> AvailableVersion:
|
||||
return self.metadata.latest
|
||||
|
||||
@property
|
||||
def current_version(self) -> Version:
|
||||
return self.metadata.current_version
|
||||
|
||||
async def run(self) -> None:
|
||||
await self._prepare_metadata()
|
||||
|
||||
new_version_available = self.current_version < self.latest.version
|
||||
if not self.options.force_reinstall and not new_version_available:
|
||||
if self.current_version >= self.metadata.latest_major.version:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_SUCCESS,
|
||||
"You are already running the latest available version of Red.",
|
||||
)
|
||||
else:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"There are no non-major updates available.\n",
|
||||
"There is a new major version available: ",
|
||||
Text(str(self.metadata.latest_major.version), style="bold"),
|
||||
)
|
||||
return
|
||||
|
||||
if new_version_available:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_SUCCESS,
|
||||
"New version available: ",
|
||||
Text(str(self.latest.version), style="bold"),
|
||||
)
|
||||
|
||||
await self._show_changelog()
|
||||
self._check_python_requires()
|
||||
if self.options.no_cog_compatibility_check:
|
||||
self.console.print(
|
||||
"Will not make backups as --no-cog-compatibility-check option was passed."
|
||||
)
|
||||
else:
|
||||
await self._check_cog_compatibility()
|
||||
|
||||
if self.options.no_backup:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO, "Will not make backups as --no-backup option was passed."
|
||||
)
|
||||
else:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"The following instances will be backed up before performing the update: ",
|
||||
Text(", ").join(
|
||||
Text(instance_name, style="bold") for instance_name in self.metadata.to_backup
|
||||
),
|
||||
)
|
||||
if self.metadata.breaking_update:
|
||||
self.console.print(
|
||||
"[b]Remember that this is a major release and it may have some breaking changes"
|
||||
" that the bot or its cogs may be affected by.[/]"
|
||||
)
|
||||
if self.options.interactive and not Confirm.ask(
|
||||
f"Do you want to continue with the update to [b]Red {self.latest.version}[/]?"
|
||||
):
|
||||
return
|
||||
self.console.print()
|
||||
|
||||
if self.options.no_backup:
|
||||
self.console.print("Will not make backups as --no-backup option was passed.")
|
||||
else:
|
||||
await self._make_backups()
|
||||
|
||||
await self._update_with_fresh_venv()
|
||||
|
||||
async def _prepare_metadata(self) -> None:
|
||||
interpreter_info = self.options.new_python_interpreter or PythonInfo.current_system()
|
||||
with self.console.status("Checking latest version..."):
|
||||
available_versions = await fetch_available_red_versions()
|
||||
latest_major = available_versions[0]
|
||||
|
||||
self.metadata = UpdaterMetadata(
|
||||
self.options,
|
||||
latest=latest_major,
|
||||
latest_major=latest_major,
|
||||
interpreter_info=interpreter_info,
|
||||
)
|
||||
|
||||
if self.options.red_version:
|
||||
if self.options.red_version <= self.current_version:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR, "You can only update to a newer version of Red."
|
||||
)
|
||||
raise SystemExit(2)
|
||||
if (
|
||||
self.options.no_major_updates
|
||||
and self.options.red_version.release[:2] != self.current_version.release[:2]
|
||||
):
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
"Updating to the specified version would be a major update"
|
||||
" but --no-major-updates option was specified.",
|
||||
)
|
||||
raise SystemExit(2)
|
||||
for available_version in available_versions:
|
||||
if available_version.version == self.options.red_version:
|
||||
break
|
||||
else:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR, "The provided version does not seem to exist."
|
||||
)
|
||||
raise SystemExit(2)
|
||||
self.metadata.latest = available_version
|
||||
elif self.options.no_major_updates:
|
||||
for available_version in available_versions:
|
||||
if available_version.version.release[:2] == self.current_version.release[:2]:
|
||||
self.metadata.latest = available_version
|
||||
break
|
||||
else:
|
||||
if self.current_version < latest_major.version:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
"Could not find any version of Red that would not be a major update.",
|
||||
)
|
||||
raise SystemExit(1)
|
||||
|
||||
async def _show_changelog(self) -> None:
|
||||
with self.console.status("Fetching changelogs..."):
|
||||
changelogs = await changelog.fetch_changelogs()
|
||||
self.metadata.changelogs = changelogs = changelog.get_changelogs_between(
|
||||
changelogs, self.current_version, self.latest.version
|
||||
)
|
||||
common.print_with_prefix_column(common.ICON_SUCCESS, "Changelogs fetched.")
|
||||
|
||||
if not changelogs:
|
||||
return
|
||||
|
||||
if not self.options.interactive or self.options.no_full_changelog:
|
||||
self.console.print(Panel(Markdown(changelog.render_markdown(changelogs))))
|
||||
if self.options.interactive and not Confirm.ask("Do you want to continue?"):
|
||||
raise click.Abort()
|
||||
return
|
||||
|
||||
first_changelog_version = min(changelogs)
|
||||
last_changelog_version = max(changelogs)
|
||||
parts = []
|
||||
if first_changelog_version == last_changelog_version:
|
||||
parts.append(
|
||||
"You will now be presented with the changelog for"
|
||||
f" [b]Red {first_changelog_version}[/]."
|
||||
)
|
||||
else:
|
||||
parts.append(
|
||||
"You will now be presented with the changelogs for"
|
||||
f" [b]Red {first_changelog_version}[/]-[b]{last_changelog_version}[/]."
|
||||
)
|
||||
parts.append(
|
||||
f"\n[bold]{common.ICON_WARN}"
|
||||
' Make sure to read through the [green]"Read before updating"[/] section'
|
||||
f" before continuing. {common.ICON_WARN}[/bold]\n"
|
||||
)
|
||||
if self.metadata.breaking_update:
|
||||
parts.append(
|
||||
f"[bold]{common.ICON_WARN}"
|
||||
" Please note that this is a major release and it may have some changes that"
|
||||
" your bot or its cogs are affected by.[/bold]\n"
|
||||
)
|
||||
parts.append(
|
||||
"After the changelog is open and you're ready to continue, hit the [b]Q[/] key"
|
||||
" to close the changelog and continue the update process.\n\n"
|
||||
"Hit the [b]Enter[/] key to view the changelog."
|
||||
)
|
||||
self.console.input(Panel("".join(parts)), password=True)
|
||||
|
||||
viewer = ChangelogReaderApp.from_changelogs(changelogs)
|
||||
result = await viewer.run_async()
|
||||
if result is None:
|
||||
raise RuntimeError("Unexpected state")
|
||||
if result is ChangelogReaderResult.QUIT:
|
||||
raise click.Abort()
|
||||
|
||||
self.console.print("Changelog has been closed.\n")
|
||||
|
||||
def _check_python_requires(self) -> None:
|
||||
if self.metadata.interpreter_version in self.latest.requires_python:
|
||||
return
|
||||
if self.options.new_python_interpreter:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
"The latest version of Red requires a different Python version (",
|
||||
Text(str(self.latest.requires_python), style="bold"),
|
||||
") from the version of the interpreter passed to with the --new-python-interpreter"
|
||||
" option (",
|
||||
Text(str(self.metadata.interpreter_version), style="bold"),
|
||||
")",
|
||||
)
|
||||
raise SystemExit(1)
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_WARN if self.options.interactive else common.ICON_ERROR,
|
||||
"The latest version of Red requires a different Python version (",
|
||||
Text(str(self.latest.requires_python), style="bold"),
|
||||
") from the one that you are currently using (",
|
||||
Text(str(self.metadata.interpreter_version), style="bold"),
|
||||
")",
|
||||
(
|
||||
"\nredbot-update will have to recreate the virtual environment"
|
||||
" with a compatible version of Python."
|
||||
if self.options.interactive
|
||||
else ""
|
||||
),
|
||||
)
|
||||
if not self.options.interactive:
|
||||
raise SystemExit(1)
|
||||
interpreters = common.search_for_interpreters(self.latest.requires_python)
|
||||
|
||||
def _render_interpreter(interpreter_exe: str, interpreter_version: Version) -> Text:
|
||||
return Text.assemble(
|
||||
"CPython ",
|
||||
(str(interpreter_version), "repr.number"),
|
||||
" (",
|
||||
(interpreter_exe, "log.path"),
|
||||
")",
|
||||
)
|
||||
|
||||
text = Text("Found the following compatible Python interpreters on your system:")
|
||||
for idx, (interpreter_exe, interpreter_version, python_info) in enumerate(interpreters, 1):
|
||||
text.append_text(Text(f"\n{idx}. ", style="markdown.item.number"))
|
||||
text.append_text(_render_interpreter(interpreter_exe, interpreter_version))
|
||||
self.console.print(Panel(text))
|
||||
|
||||
while True:
|
||||
result = IntPrompt.ask(
|
||||
"\nEnter the number of the Python interpreter above that you want to use"
|
||||
" or type 0 to input the path to it yourself. Generally, you should choose"
|
||||
" the interpreter with the latest version on the above list.\n"
|
||||
"Enter your selection",
|
||||
default=1,
|
||||
)
|
||||
if result < 0 or result > len(interpreters):
|
||||
self.console.print("[prompt.invalid] This is not a valid choice.")
|
||||
continue
|
||||
|
||||
if result == 0:
|
||||
response = Prompt.ask(
|
||||
"Please input the path to the Python interpreter that you want to use"
|
||||
)
|
||||
if not response:
|
||||
self.console.print("[prompt.invalid] No path was provided.")
|
||||
continue
|
||||
info = PythonInfo.from_exe(response)
|
||||
interpreter_version = Version(info.version_str)
|
||||
if (
|
||||
info.implementation != "CPython"
|
||||
or interpreter_version not in self.latest.requires_python
|
||||
):
|
||||
self.console.print(
|
||||
"[prompt.invalid] The provided path points to an incompatible Python"
|
||||
" interpreter. Latest version requires CPython"
|
||||
f" {self.latest.requires_python} but the provided interpreter is"
|
||||
f" {info.implementation} {interpreter_version}."
|
||||
)
|
||||
continue
|
||||
self.metadata.interpreter_version = interpreter_version
|
||||
self.metadata.interpreter_info = info
|
||||
self.metadata.interpreter_exe = info.executable
|
||||
else:
|
||||
(
|
||||
self.metadata.interpreter_exe,
|
||||
self.metadata.interpreter_version,
|
||||
self.metadata.interpreter_info,
|
||||
) = interpreters[result - 1]
|
||||
|
||||
self.console.print(
|
||||
"\n[b]You selected:[/]",
|
||||
_render_interpreter(
|
||||
self.metadata.interpreter_exe, self.metadata.interpreter_version
|
||||
),
|
||||
)
|
||||
if Confirm.ask("Do you want to continue with this choice?"):
|
||||
self.console.print()
|
||||
break
|
||||
|
||||
async def _check_cog_compatibility(self) -> None:
|
||||
outputs = {}
|
||||
checked_instances = {}
|
||||
skipped_instances = []
|
||||
failed_instances = []
|
||||
unsupported_storage_instances = []
|
||||
for instance_name in self.options.instances:
|
||||
if instance_name in self.options.excluded_instances:
|
||||
skipped_instances.append(instance_name)
|
||||
continue
|
||||
exit_code, stdout, results = await cmd.cog_compatibility.call(
|
||||
instance_name,
|
||||
red_version=self.latest.version,
|
||||
python_version=self.metadata.interpreter_version,
|
||||
ignore_prefix=self.options.ignore_prefix,
|
||||
return_results=True,
|
||||
stdout=asyncio.subprocess.PIPE,
|
||||
)
|
||||
if exit_code == cmd.cog_compatibility.EXIT_INSTANCE_BACKEND_UNSUPPORTED:
|
||||
skipped_instances.append(instance_name)
|
||||
unsupported_storage_instances.append(instance_name)
|
||||
elif exit_code == cmd.cog_compatibility.EXIT_INSTANCE_SITE_PREFIX_MISMATCH:
|
||||
skipped_instances.append(instance_name)
|
||||
elif exit_code:
|
||||
failed_instances.append(instance_name)
|
||||
print(stdout, end="")
|
||||
Text.assemble(
|
||||
"\N{UPWARDS ARROW} " * 3,
|
||||
"Failure for ",
|
||||
(instance_name, "bold"),
|
||||
" instance",
|
||||
)
|
||||
self.console.rule(
|
||||
Text.assemble(
|
||||
"\N{UPWARDS ARROW} " * 3,
|
||||
"Failure for ",
|
||||
(instance_name, "bold"),
|
||||
" instance above",
|
||||
" \N{UPWARDS ARROW}" * 3,
|
||||
),
|
||||
style="red",
|
||||
)
|
||||
else:
|
||||
assert results is not None
|
||||
outputs[instance_name] = stdout
|
||||
checked_instances[instance_name] = results
|
||||
if stdout:
|
||||
self.console.print()
|
||||
self.console.print()
|
||||
if not self.options.no_backup:
|
||||
self.metadata.to_backup = [*checked_instances, *failed_instances]
|
||||
|
||||
if outputs:
|
||||
for instance_name, stdout in outputs.items():
|
||||
self.console.rule(Text(instance_name, style="bold"))
|
||||
print(stdout, end="")
|
||||
self.console.rule()
|
||||
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"Finished checking cog compatibility.",
|
||||
(
|
||||
"\nThe results for each of the checked instances are shown above."
|
||||
if checked_instances
|
||||
else ""
|
||||
),
|
||||
)
|
||||
if failed_instances:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
"Failure occurred while trying to check compatibility for following instances: ",
|
||||
Text(", ").join(
|
||||
Text(instance_name, style="bold") for instance_name in failed_instances
|
||||
),
|
||||
"\nScroll above to find the errors.",
|
||||
)
|
||||
if unsupported_storage_instances:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"The following instances were skipped as they use a storage backend that is"
|
||||
" not supported by the current Red installation (some requirements are missing): ",
|
||||
Text(", ").join(
|
||||
Text(instance_name, style="bold")
|
||||
for instance_name in unsupported_storage_instances
|
||||
),
|
||||
)
|
||||
if not checked_instances:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_INFO,
|
||||
"There were no",
|
||||
(" other" if failed_instances or unsupported_storage_instances else ""),
|
||||
" instances to check cog compatibility for.",
|
||||
)
|
||||
self.console.print()
|
||||
|
||||
self.metadata.cog_compatibility = UpdaterCompatibilitySummary(
|
||||
checked=checked_instances, failed=failed_instances, skipped=skipped_instances
|
||||
)
|
||||
|
||||
async def _make_backups(self) -> None:
|
||||
self.metadata.backup_dir = backup_dir = self.options.backup_dir or Path(
|
||||
tempfile.mkdtemp(prefix="redbot-update-backup-")
|
||||
)
|
||||
console = common.get_console()
|
||||
console.print("Backups will be created at:", Text(str(backup_dir), style="bold"))
|
||||
venv_archive = backup_dir / "venv.tar.gz"
|
||||
with console.status("Making a backup of the virtual environment directory..."):
|
||||
venv_dir = Path(sys.prefix)
|
||||
venv_files = []
|
||||
for current_dir, _, filenames in os.walk(venv_dir):
|
||||
target_dir = os.path.relpath(current_dir, venv_dir)
|
||||
if target_dir == ".":
|
||||
target_dir = ""
|
||||
for name in filenames:
|
||||
venv_files.append(
|
||||
(os.path.join(current_dir, name), os.path.join(target_dir, name))
|
||||
)
|
||||
with tarfile.open(venv_archive, "w:gz", compresslevel=6) as tar:
|
||||
with detailed_progress(unit="files") as progress:
|
||||
for src, arcname in progress.track(venv_files, description="Compressing..."):
|
||||
tar.add(src, arcname=arcname, recursive=False)
|
||||
console.print(
|
||||
"Created a backup of the virtual environment directory at:",
|
||||
Text(str(venv_archive), style="bold"),
|
||||
)
|
||||
|
||||
checked = []
|
||||
failed = []
|
||||
instance_backups_dir = backup_dir / "instance_backups"
|
||||
instance_backups_dir.mkdir()
|
||||
for instance_name in self.metadata.to_backup:
|
||||
console.print(
|
||||
"Making a backup of the", Text(instance_name, style="bold"), "instance..."
|
||||
)
|
||||
debug_args = (cmd.arg_names.DEBUG,) * common.get_log_cli_level()
|
||||
proc = await asyncio.create_subprocess_exec(
|
||||
sys.executable,
|
||||
"-m",
|
||||
"redbot.setup",
|
||||
"backup",
|
||||
*debug_args,
|
||||
instance_name,
|
||||
str(instance_backups_dir),
|
||||
)
|
||||
if await proc.wait():
|
||||
failed.append(instance_name)
|
||||
else:
|
||||
checked.append(instance_name)
|
||||
|
||||
self.metadata.backup_results = BackupResults(checked=checked, failed=failed)
|
||||
if self.metadata.cog_compatibility:
|
||||
self.metadata.backup_results.skipped.extend(self.metadata.cog_compatibility.skipped)
|
||||
|
||||
if failed:
|
||||
common.print_with_prefix_column(
|
||||
common.ICON_ERROR,
|
||||
"The following instances failed during backup: ",
|
||||
Text(", ").join(Text(instance_name, style="bold") for instance_name in failed),
|
||||
"\nScroll above to find the errors.",
|
||||
)
|
||||
# If a backup fails, we cannot allow non-interactive update to continue.
|
||||
# The user can choose to use options such as `--no-backup`, `--instance`,
|
||||
# and `--exclude-instance` to not have the backup step try to backup something
|
||||
# that it can't.
|
||||
if not self.options.interactive or not Confirm.ask(
|
||||
"Do you want to continue with the update regardless?"
|
||||
):
|
||||
raise SystemExit(1)
|
||||
|
||||
async def _update_with_fresh_venv(self) -> NoReturn:
|
||||
console = common.get_console()
|
||||
venv_dir = Path(sys.prefix)
|
||||
backup_dir = venv_dir / common.OLD_VENV_BACKUP_DIR_NAME
|
||||
try:
|
||||
backup_dir.mkdir()
|
||||
except FileExistsError:
|
||||
console.print(
|
||||
"Found that a partial backup of a virtual environment from a past failed update"
|
||||
" exists at",
|
||||
Text(str(backup_dir), style="bold"),
|
||||
"\nThe update will not proceed to avoid overriding it. If you are certain that"
|
||||
" you don't need to restore anything from it, remove it and try updating again.",
|
||||
)
|
||||
raise SystemExit(1)
|
||||
|
||||
with console.status("Determining extras to install..."):
|
||||
try:
|
||||
metadata = await self.latest.fetch_core_metadata()
|
||||
except TypeError:
|
||||
extras = get_installed_extras()
|
||||
else:
|
||||
known_extras = metadata.provides_extra or []
|
||||
extras = [extra for extra in get_installed_extras() if extra in known_extras]
|
||||
console.print("Extras to install have been determined.")
|
||||
|
||||
old_executable = Path(sys.executable)
|
||||
rel_executable = old_executable.relative_to(venv_dir)
|
||||
new_executable = backup_dir / rel_executable
|
||||
wrapper_exe = runner.get_wrapper_executable()
|
||||
|
||||
with console.status("Moving old virtual environment..."):
|
||||
for path in venv_dir.iterdir():
|
||||
if path == backup_dir or path == wrapper_exe:
|
||||
continue
|
||||
path.rename(backup_dir / path.name)
|
||||
console.print("Old virtual environment moved.")
|
||||
|
||||
with tempfile.NamedTemporaryFile(
|
||||
"w", encoding="utf-8", prefix="redbot-update-metadata-", suffix=".json", delete=False
|
||||
) as metadata_file:
|
||||
json.dump(self.metadata.to_json_dict(), metadata_file)
|
||||
|
||||
console.print()
|
||||
runner.make_exec_request(
|
||||
str(new_executable),
|
||||
"reinstall",
|
||||
# base executable for venv creation
|
||||
self.metadata.interpreter_exe,
|
||||
# venv dir
|
||||
str(venv_dir),
|
||||
# scripts path
|
||||
self.metadata.interpreter_info.sysconfig_path("scripts", {"base": str(venv_dir)}),
|
||||
# Red dependency specifier
|
||||
common.get_red_dependency_specifier(self.latest.version, extras),
|
||||
set_env_vars={common.INTERNAL_UPDATER_METADATA_ENV_VAR: metadata_file.name},
|
||||
)
|
||||
|
||||
|
||||
def get_updater_metadata() -> UpdaterMetadata:
|
||||
with open(os.environ[common.INTERNAL_UPDATER_METADATA_ENV_VAR], encoding="utf-8") as fp:
|
||||
return UpdaterMetadata.from_json_dict(json.load(fp))
|
||||
@@ -118,7 +118,7 @@ msgstr "\n"
|
||||
" Bewerk een rolkleur.\n\n"
|
||||
" Gebruik dubbele aanhalingstekens als de rol spaties bevat.\n"
|
||||
" Kleur moet in hexadecimaal formaat zijn.\n"
|
||||
" [Online kleur kiezer](http://www.w3schools. om/colors/colors_picker. sp)\n\n"
|
||||
" [Online kleur kiezer](http://www.w3schools.com/colors/colors_picker. sp)\n\n"
|
||||
" Voorbeelden:\n"
|
||||
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
|
||||
" `[p]editrole colour Test #ff9900`\n"
|
||||
@@ -126,7 +126,7 @@ msgstr "\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:275
|
||||
msgid "{author} ({author.id}) changed the colour of role '{role.name}'"
|
||||
msgstr ""
|
||||
msgstr "{author} ({author.id}) heeft de kleur van rol '{role.name} ' gewijzigd"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:294 redbot/cogs/admin/admin.py:327
|
||||
msgid "Done."
|
||||
@@ -149,7 +149,7 @@ msgstr "\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:308
|
||||
msgid "{author} ({author.id}) changed the name of role '{old_name}' to '{name}'"
|
||||
msgstr ""
|
||||
msgstr "{author} ({author.id}) heeft de naam van rol '{old_name}' veranderd naar '{name}'"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:332
|
||||
#, docstring
|
||||
@@ -181,7 +181,7 @@ msgstr "Verander hoe aankondigingen worden verzonden in deze gilde."
|
||||
#: redbot/cogs/admin/admin.py:367
|
||||
#, docstring
|
||||
msgid "Change the channel where the bot will send announcements."
|
||||
msgstr "Bewerk het kanaal waar deze bot aankondigingen maakt."
|
||||
msgstr "Bewerk het kanaal waar de bot aankondigingen maakt."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:370
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
@@ -361,5 +361,5 @@ msgstr "De rol \"{role_name}\" is geen geldige zelfrol."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:36
|
||||
msgid "This selfrole has more than one case insensitive match. Please ask a moderator to resolve the ambiguity, or use the role ID to reference the role."
|
||||
msgstr ""
|
||||
msgstr "Deze zelfrol heeft meer dan één hoofdlettergevoelig resultaat. Vraag een moderator om het dubbele resultaat op te lossen of gebruik de rol-ID om te verwijzen naar de rol."
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ msgstr "Tentei fazer uma coisa que o Discord negou permissão para fazer. O coma
|
||||
|
||||
#: redbot/cogs/admin/admin.py:25
|
||||
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 "Eu não posso dar {role.name} a {member.display_name} porque esse cargo é igual ou maior a meu cargo na hierarquia do Discord."
|
||||
msgstr "Eu não posso dar {role.name} a {member.display_name} porque esse cargo é igual ou maior ao meu cargo na hierarquia do Discord."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:31
|
||||
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."
|
||||
|
||||
@@ -361,5 +361,5 @@ msgstr "Rollen \"{role_name}\" är inte en giltig självroll."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:36
|
||||
msgid "This selfrole has more than one case insensitive match. Please ask a moderator to resolve the ambiguity, or use the role ID to reference the role."
|
||||
msgstr ""
|
||||
msgstr ".."
|
||||
|
||||
|
||||
@@ -114,7 +114,15 @@ msgid "\n"
|
||||
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
|
||||
" `[p]editrole colour Test #ff9900`\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
" Редагування кольору ролі.\n\n"
|
||||
" Використовуйте подвійні лапки, якщо роль містить пробіли.\n"
|
||||
" Колір повинен бути в шістнадцятковому форматі.\n"
|
||||
" [Онлайн-палітра кольорів](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
|
||||
" Приклади:\n"
|
||||
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
|
||||
" `[p]editrole colour Test #ff9900`\n"
|
||||
" "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:275
|
||||
msgid "{author} ({author.id}) changed the colour of role '{role.name}'"
|
||||
@@ -132,7 +140,12 @@ msgid "\n"
|
||||
" Example:\n"
|
||||
" `[p]editrole name \"The Transistor\" Test`\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
" Редагування назви ролі.\n\n"
|
||||
" Використовуйте подвійні лапки, якщо роль або ім'я містять пробіли.\n\n"
|
||||
" Наприклад:\n"
|
||||
" `[p]editrole name \"The Transistor\" Test`\n"
|
||||
" "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:308
|
||||
msgid "{author} ({author.id}) changed the name of role '{old_name}' to '{name}'"
|
||||
@@ -198,7 +211,11 @@ msgid "\n"
|
||||
" Server admins must have configured the role as user settable.\n"
|
||||
" NOTE: The role is case sensitive!\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
" Додайте собі роль себе.\n\n"
|
||||
" Адміністратори сервера повинні налаштувати роль як таку, що може бути встановлена користувачем.\n"
|
||||
" ПРИМІТКА: У ролі враховується регістр символів!\n"
|
||||
" "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:424
|
||||
#, docstring
|
||||
@@ -207,7 +224,11 @@ msgid "\n"
|
||||
" Server admins must have configured the role as user settable.\n"
|
||||
" NOTE: The role is case sensitive!\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
" Приберіть собі селф-роль.\n\n"
|
||||
" Адміністратори сервера повинні налаштувати роль як таку, що може бути встановлена користувачем.\n"
|
||||
" ПРИМІТКА: У ролі враховується регістр символів!\n"
|
||||
" "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:435
|
||||
#, docstring
|
||||
@@ -235,7 +256,10 @@ msgid "\n"
|
||||
" Add a role, or a selection of roles, to the list of available selfroles.\n\n"
|
||||
" NOTE: The role is case sensitive!\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
" Додайте роль або вибір ролей до списку доступних саморолей.\n\n"
|
||||
" ПРИМІТКА: У ролі враховується регістр символів!\n"
|
||||
" "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:465
|
||||
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
|
||||
@@ -259,7 +283,10 @@ msgid "\n"
|
||||
" Remove a role, or a selection of roles, from the list of available selfroles.\n\n"
|
||||
" NOTE: The role is case sensitive!\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
" Видалити роль або вибір ролей зі списку доступних саморолей.\n\n"
|
||||
" ПРИМІТКА: У ролі враховується регістр символів!\n"
|
||||
" "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:498
|
||||
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
|
||||
@@ -300,20 +327,20 @@ msgstr "Список з селф-ролями був очищений."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:546
|
||||
msgid "No changes have been made."
|
||||
msgstr ""
|
||||
msgstr "Жодних змін не внесено."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:551
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
msgstr "Заблокувати бота тільки на його поточних серверах."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:556
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
msgstr "Бот більше не прив'язаний до сервера."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:558
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
msgstr "Бот тепер заблокований сервером."
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:68
|
||||
msgid "I could not announce to the following server: "
|
||||
|
||||
@@ -16,6 +16,7 @@ from redbot.core.i18n import Translator
|
||||
from redbot.core.utils.chat_formatting import box, humanize_number
|
||||
from redbot.core.utils.menus import menu, start_adding_reactions
|
||||
from redbot.core.utils.predicates import MessagePredicate, ReactionPredicate
|
||||
from redbot.core.utils.views import SetApiView
|
||||
|
||||
from ...audio_dataclasses import LocalPath
|
||||
from ...converters import ScopeParser
|
||||
@@ -1280,26 +1281,38 @@ class AudioSetCommands(MixinMeta, metaclass=CompositeMetaClass):
|
||||
"6. Click on Create Credential at the top.\n"
|
||||
'7. At the top click the link for "API key".\n'
|
||||
"8. No application restrictions are needed. Click Create at the bottom.\n"
|
||||
"9. You now have a key to add to `{prefix}set api youtube api_key <your_api_key_here>`"
|
||||
).format(prefix=ctx.prefix)
|
||||
await ctx.maybe_send_embed(message)
|
||||
"9. Click the button below this message and set your API key"
|
||||
" with the data shown in Google Developers Console."
|
||||
)
|
||||
await ctx.send(
|
||||
message,
|
||||
view=SetApiView(default_service="youtube", default_keys={"api_key": ""}),
|
||||
)
|
||||
|
||||
@command_audioset.command(name="spotifyapi")
|
||||
@commands.is_owner()
|
||||
async def command_audioset_spotifyapi(self, ctx: commands.Context):
|
||||
"""Instructions to set the Spotify API tokens."""
|
||||
message = _(
|
||||
"1. Go to Spotify developers and log in with your Spotify account.\n"
|
||||
"(https://developer.spotify.com/dashboard/applications)\n"
|
||||
'2. Click "Create An App".\n'
|
||||
"3. Fill out the form provided with your app name, etc.\n"
|
||||
'4. When asked if you\'re developing commercial integration select "No".\n'
|
||||
"5. Accept the terms and conditions.\n"
|
||||
"6. Copy your client ID and your client secret into:\n"
|
||||
"`{prefix}set api spotify client_id <your_client_id_here> "
|
||||
"client_secret <your_client_secret_here>`"
|
||||
).format(prefix=ctx.prefix)
|
||||
await ctx.maybe_send_embed(message)
|
||||
"1. Go to Spotify for Developers and log in with your Spotify account."
|
||||
" If this is your first time, you'll be asked to accept the terms and conditions.\n"
|
||||
"(https://developer.spotify.com/dashboard)\n"
|
||||
'2. Click "Create app".\n'
|
||||
"3. Fill out the form provided with your app name and description."
|
||||
" These can be anything you want. Website field can be left empty.\n"
|
||||
"4. Add `https://localhost` to your Redirect URIs. This will not be used"
|
||||
" but is required when filling out the form.\n"
|
||||
'5. Select "Web API" when asked which API/SDKs you are planning to use.\n'
|
||||
"6. Confirm that you agree to the terms and conditions and save the application.\n"
|
||||
"7. Click the button below this message and set your client ID and your client secret"
|
||||
" with the data shown in Spotify's dashboard."
|
||||
)
|
||||
await ctx.send(
|
||||
message,
|
||||
view=SetApiView(
|
||||
default_service="spotify", default_keys={"client_id": "", "client_secret": ""}
|
||||
),
|
||||
)
|
||||
|
||||
@command_audioset.command(name="countrycode")
|
||||
@commands.guild_only()
|
||||
|
||||
@@ -3143,7 +3143,30 @@ msgid "Remove duplicate tracks from a saved playlist.\n\n"
|
||||
" `[p]playlist dedupe MyGlobalPlaylist --scope Global`\n"
|
||||
" `[p]playlist dedupe MyPersonalPlaylist --scope User`\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "Lösche doppelte Lieder von deiner Playlist.\n\n"
|
||||
" **Nutzungsweise**:\n"
|
||||
" `[p]playlist delete playlist_name_OR_id [args]`\n\n"
|
||||
" **Argumente**:\n"
|
||||
" Die folgenden sind optional:\n"
|
||||
" --scope <scope>\n"
|
||||
" --author [user]\n"
|
||||
" --guild [guild] **Kann nur vom Bot Besitzer verwendet werden**\n\n"
|
||||
" **Scope** ist einer der folgenden:\n"
|
||||
" Global\n"
|
||||
" Guild\n"
|
||||
" User\n\n"
|
||||
" **Author** ist einer der folgenden:\n"
|
||||
" User ID\n"
|
||||
" User Mention\n"
|
||||
" User Name#123\n\n"
|
||||
" **Guild** ist einer der folgenden:\n"
|
||||
" Guild ID\n"
|
||||
" Exact guild name\n\n"
|
||||
" Beispielnutzung:\n"
|
||||
" `[p]playlist delete MyGuildPlaylist`\n"
|
||||
" `[p]playlist delete MyGlobalPlaylist --scope Global`\n"
|
||||
" `[p]playlist delete MyPersonalPlaylist --scope User`\n"
|
||||
" "
|
||||
|
||||
#: redbot/cogs/audio/core/commands/playlists.py:619
|
||||
msgid "Removed {track_diff} duplicated tracks from {name} (`{id}`) [**{scope}**] playlist."
|
||||
|
||||
@@ -2574,7 +2574,7 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/commands/player.py:615
|
||||
msgid "Couldn't get a valid track."
|
||||
msgstr ""
|
||||
msgstr "Kon geen geldige track ophalen."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/player.py:621
|
||||
#: redbot/cogs/audio/core/commands/player.py:758
|
||||
@@ -2582,7 +2582,7 @@ msgstr ""
|
||||
#: redbot/cogs/audio/core/commands/player.py:895
|
||||
#: redbot/cogs/audio/core/commands/playlists.py:1898
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
msgstr "Kan track niet ophalen"
|
||||
|
||||
#: redbot/cogs/audio/core/commands/player.py:622
|
||||
#: redbot/cogs/audio/core/commands/player.py:759
|
||||
|
||||
@@ -1106,7 +1106,14 @@ msgid "Sets the caching level.\n\n"
|
||||
" 5: Enables all Caches\n\n"
|
||||
" If you wish to disable a specific cache use a negative number.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "Define o nível de cache.\n\n"
|
||||
"O nível pode ser um dos seguintes:\n\n"
|
||||
"0: Desativa toda a cache\n"
|
||||
"1: Ativa a cache do Spotify\n"
|
||||
"2: Ativa a cache do YouTube\n"
|
||||
"3: Ativa a cache do Lavalink\n"
|
||||
"5: Ativa todos os caches\n\n"
|
||||
"Se pretender desativar um cache específico, utilize um número negativo "
|
||||
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1374
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1419
|
||||
@@ -1116,17 +1123,17 @@ msgstr "Idade máxima: [{max_age}]\n"
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1375
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1420
|
||||
msgid "Spotify cache: [{spotify_status}]\n"
|
||||
msgstr ""
|
||||
msgstr "Cache do Spotify: [{spotify_status}]"
|
||||
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1376
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1421
|
||||
msgid "Youtube cache: [{youtube_status}]\n"
|
||||
msgstr ""
|
||||
msgstr "Youtube cache: [{youtube_status}]"
|
||||
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1377
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1422
|
||||
msgid "Lavalink cache: [{lavalink_status}]\n"
|
||||
msgstr ""
|
||||
msgstr "Lavalink cache: [{lavalink_status}]"
|
||||
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1437
|
||||
#, docstring
|
||||
@@ -1134,7 +1141,8 @@ msgid "Sets the cache max age.\n\n"
|
||||
" This commands allows you to set the max number of days before an entry in the cache becomes\n"
|
||||
" invalid.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "Define o tempo máximo da cache.\n\n"
|
||||
"Este comando permite definir o número máximo de dias antes que uma entrada na cache se torne inválida"
|
||||
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1444
|
||||
msgid "Cache age cannot be less than 7 days. If you wish to disable it run {prefix}audioset cache.\n"
|
||||
@@ -1149,11 +1157,12 @@ msgstr "Eu defini a idade do cache para {age} dias"
|
||||
msgid "Toggle persistent queues.\n\n"
|
||||
" Persistent queues allows the current queue to be restored when the queue closes.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "Alternar filas persistentes.\n\n"
|
||||
"As filas persistentes permitem que a fila atual seja restaurada quando a fila é fechada."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1468
|
||||
msgid "Persisting queues: {true_or_false}."
|
||||
msgstr ""
|
||||
msgstr "Filas persistentes: {true_or_false}."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1476
|
||||
#, docstring
|
||||
@@ -1169,7 +1178,7 @@ msgstr "Falha ao desligar Lavalink"
|
||||
#: redbot/cogs/audio/core/commands/llset.py:198
|
||||
#: redbot/cogs/audio/core/commands/llset.py:746
|
||||
msgid "Please reload Audio (`{prefix}reload audio`)."
|
||||
msgstr ""
|
||||
msgstr "Por favor, recarregue áudio (`{prefix}recarregar áudio`)."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/audioset.py:1492
|
||||
msgid "Restarting Lavalink"
|
||||
@@ -1234,7 +1243,7 @@ msgstr "Desconectar do canal de voz."
|
||||
#: redbot/cogs/audio/core/commands/miscellaneous.py:103
|
||||
#: redbot/cogs/audio/core/commands/playlists.py:1125
|
||||
msgid "Nothing playing."
|
||||
msgstr ""
|
||||
msgstr "Nada a tocar."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:49
|
||||
#: redbot/cogs/audio/core/commands/controller.py:55
|
||||
@@ -1251,7 +1260,7 @@ msgstr "Há outras pessoas a ouvir - vote para saltar em vez disso."
|
||||
#: redbot/cogs/audio/core/commands/controller.py:56
|
||||
#: redbot/cogs/audio/core/commands/controller.py:62
|
||||
msgid "You need the DJ role to disconnect."
|
||||
msgstr ""
|
||||
msgstr "Precisa do cargo de DJ para desconectar."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:61
|
||||
msgid "Unable to Disconnect"
|
||||
@@ -1259,7 +1268,7 @@ msgstr "Não foi possível desconectar"
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:65
|
||||
msgid "Disconnecting..."
|
||||
msgstr ""
|
||||
msgstr "Desconectando..."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:87
|
||||
#, docstring
|
||||
@@ -1270,7 +1279,8 @@ msgstr "A reproduzir."
|
||||
#: redbot/cogs/audio/core/commands/queue.py:81
|
||||
msgid "\n"
|
||||
" Requested by: **{track.requester}**"
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
"Solicitado por: **{track.requester}**\n"
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:114
|
||||
msgid "Nothing."
|
||||
@@ -1308,7 +1318,7 @@ msgstr "Não é possível gerenciar as faixas"
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:213
|
||||
msgid "You must be in the voice channel to pause or resume."
|
||||
msgstr ""
|
||||
msgstr "Deve estar no canal de voz para pausar ou retomar."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:219
|
||||
msgid "You need the DJ role to pause or resume tracks."
|
||||
@@ -1645,7 +1655,7 @@ msgstr "Repetir faixas: {true_or_false}."
|
||||
#: redbot/cogs/audio/core/commands/controller.py:791
|
||||
#, docstring
|
||||
msgid "Remove a specific track number from the queue."
|
||||
msgstr ""
|
||||
msgstr "Remover um número de faixa específico da fila."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:800
|
||||
msgid "Nothing queued."
|
||||
@@ -1664,7 +1674,7 @@ msgstr "Você precisa ter o cargo de DJ para remover faixas."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:811
|
||||
msgid "You must be in the voice channel to manage the queue."
|
||||
msgstr ""
|
||||
msgstr "Precisa estar no canal de voz para gerenciar a fila."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:819
|
||||
#: redbot/cogs/audio/core/commands/controller.py:892
|
||||
@@ -1686,27 +1696,27 @@ msgstr "Removido 0 faixas, nada corresponde à URL fornecida."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:858
|
||||
msgid "Removed {removed_tracks} tracks from queue which matched the URL provided."
|
||||
msgstr ""
|
||||
msgstr "Faixas {removed_tracks} removidas da fila que correspondem ao URL fornecido."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:868
|
||||
#, docstring
|
||||
msgid "Bump a track number to the top of the queue."
|
||||
msgstr ""
|
||||
msgstr "Coloque um número de faixa no topo da fila."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:879
|
||||
#: redbot/cogs/audio/core/commands/controller.py:885
|
||||
#: redbot/cogs/audio/core/commands/controller.py:891
|
||||
#: redbot/cogs/audio/core/commands/player.py:152
|
||||
msgid "Unable To Bump Track"
|
||||
msgstr ""
|
||||
msgstr "Não é possível fazer pular a faixa"
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:880
|
||||
msgid "You must be in the voice channel to bump a track."
|
||||
msgstr ""
|
||||
msgstr "Deve estar no canal de voz para pular a faixa."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:886
|
||||
msgid "You need the DJ role to bump tracks."
|
||||
msgstr ""
|
||||
msgstr "Precisa ter o cargo de DJ para pular faixas."
|
||||
|
||||
#: redbot/cogs/audio/core/commands/controller.py:902
|
||||
msgid "Moved track to the top of the queue."
|
||||
@@ -1720,7 +1730,11 @@ msgid "Equalizer management.\n\n"
|
||||
" 6.3k, 10k, and 16k Hz.\n"
|
||||
" Setting a band value to -0.25 nullifies it while +0.25 is double.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "Gestão do equalizador.\n\n"
|
||||
"As posições das bandas são de 1 a 15 e os valores variam de -0,25 a 1,0.\n"
|
||||
"Os nomes das bandas são 25, 40, 63, 100, 160, 250, 400, 630, 1k, 1,6k, 2,5k, 4k,\n"
|
||||
"6,3k, 10k e 16k Hz.\n"
|
||||
"Definir um valor de banda como -0,25 anula-o, enquanto +0,25 o duplica. \n"
|
||||
|
||||
#: redbot/cogs/audio/core/commands/equalizer.py:73
|
||||
#, docstring
|
||||
|
||||
@@ -79,8 +79,11 @@ HUMANIZED_PERM = {
|
||||
"create_events": _("Create Events"),
|
||||
"use_external_sounds": _("Use External Sounds"),
|
||||
"send_voice_messages": _("Send Voice Messages"),
|
||||
"set_voice_channel_status": _("Set Voice Channel Status"),
|
||||
"send_polls": _("Create Polls"),
|
||||
"use_external_apps": _("Use External Apps"),
|
||||
"pin_messages": _("Pin Messages"),
|
||||
"bypass_slowmode": _("Bypass Slowmode"),
|
||||
}
|
||||
|
||||
DANGEROUS_COMMANDS = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Arabic\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "تعيين حالة القناة الصوتية"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "تثبيت الرسائل"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "تجاوز الوضع البطيء"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "تمكين"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "معطل"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "لم يتم العثور على دور DJ. تعطيل وضع DJ."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "بيئة غير صالحة"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Czech\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Nastavit stav hlasového kanálu"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Připnout zprávy"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Obejít pomalý režim"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Povoleno"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Zakázáno"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "Momentálně se mi nedaří získat skladbu z uzlu Lavalink, zkuste to za pár minut znovu."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Danish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Sæt Stemme Kanalstatus"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Pin Beskeder"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Bypass Langsom Tilstand"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: German\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,116 +208,128 @@ msgid "Send Voice Messages"
|
||||
msgstr "Sprachnachrichten senden"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Sprachkanalstatus festlegen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr "Umfragen erstellen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr "Externe Applikationen verwenden"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Nachrichten anheften"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Langsamer Modus umgehen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr "Dieser Befehl ändert den ausführbaren Pfad von Java, Dies ist nützlich, wenn Sie mehrere Installationen von Java haben und die Standardinstallation Probleme verursacht. Bitte ändern Sie dies nicht, außer Sie sind sicher, dass die von Ihnen angegebene Java-Version von Red unterstützt wird. Die Unterstützten Versionen sind derzeit {supported_java_versions}."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr "Dieser Befehl wird die maximale RAM-Zuordnung für den verwalteten Lavalink-Knoten ändern In der Regel müssen Sie dies nie ändern, bevor Sie eine Änderung in Erwägung ziehen, wenden Sie sich bitte an unser Support-Team."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr "Dieser Befehl wird den gemanagten Lavalink-Knoten deaktivieren, wenn Sie diesen Befehl umschalten, müssen Sie einen externen Lavalink-Knoten angeben, mit dem eine Verbindung hergestellt werden soll. Falls Sie dies nicht tun, wird Audio nicht mehr funktionieren."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr "Dieser Befehl wird verwendet, um die IP anzugeben, die Red für die Verbindung zu einem externen Lavalink-Knoten verwendet. "
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr "Dieser Befehl wird verwendet, um das Authentifizierungspasswort anzugeben, das Red verwendet, um sich mit einem externen Lavalink-Knoten zu verbinden."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr "Dieser Befehl wird zwischen gesicherten und ungesicherten Verbindungen zu einem externen Lavalink-Knoten umgeschaltet."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr "Dieser Befehl wird verwendet, um den Verbindungsport anzugeben, der von Red verwendet wird, um sich mit einem externen Lavalink-Knoten zu verbinden."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr "Dieser Befehl legt fest, an welche Netzwerkschnittstelle und IP der Knoten Lavalink sich binden wird standardmäßig ist dies 'localhost', ändern Sie dies nur, wenn der verwaltete Lavalink-Knoten an eine bestimmte IP/Schnittstelle gebunden werden soll."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr "Dieser Befehl ändert das Authentifizierungspasswort, das benötigt wird, um sich mit diesem verwalteten Knoten zu verbinden. Der Standardwert ist 'youshallnotpass'."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr "Dieser Befehl ändert den Verbindungs-Port, um sich mit diesem verwalteten Knoten zu verbinden. Ändern Sie dies nur, wenn der Standardport '2333' Konflikte mit bestehenden Anwendungen verursacht."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr "Dieser Befehl schaltet die Unterstützung von direkten Url-Streams wie Icecast oder Shoutcast-Streams um. Ein Beispiel ist <http://ice1.somafm.com/gsclassic-128-mp3>; das Deaktivieren dieser Option macht es den Bot unmöglich, einen direkten Url-Stream zu spielen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr "Dieser Befehl schaltet die Unterstützung der lokalen Audiowiedergabe um. Ein Beispiel ist `/mnt/data/my_super_funky_track. p3`; Deaktivieren dieser Option führt dazu, dass der Bot keine lokalen Track-Inhalte abspielen kann."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr "Dieser Befehl schaltet die Unterstützung der SoundCloud-Wiedergabe um. Ein Beispiel ist <https://soundcloud.com/user-103858850/tilla>; die Deaktivierung wird es den Bot unmöglich machen, SoundCloud-Inhalte abzuspielen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr "Dieser Befehl schaltet die Unterstützung der YouTube-Wiedergabe um (Spotify hängt von YouTube ab). Wenn Sie dies deaktivieren, wird der Bot nicht in der Lage sein, YouTube-Inhalte abzuspielen: Dies schließt Spotify ein."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr "Dieser Befehl aktiviert oder deaktiviert die Unterstützung der Wiedergabe von Twitch-Inhalten. Ein Beispiel dafür ist https://twitch.tv/monstercat; Wenn Sie dies deaktivieren, kann der Bot keinen Twitch-Inhalt abspielen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr "Dieser Befehl aktiviert oder deaktiviert die Unterstützung der Wiedergabe von Vimeo-Inhalten. Ein Beispiel dafür ist https://vimeo.com/157743578; Wenn Sie dies deaktivieren, kann der Bot keinen Vimeo-Inhalt abspielen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr "Diese Einstellung steuert den Framebuffer des verwalteten Knotens. Ändern Sie dies nicht, es sei denn, Sie werden dazu aufgefordert."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr "Diese Einstellung steuert den JDA-NAS-Puffer des verwalteten Knotens. Ändern Sie dies nicht, es sei denn, Sie werden dazu aufgefordert."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr "Dieser Befehl wird alle Einstellungen zurücksetzen, die von `[p]llset` geändert wurden."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr "Sie haben versucht, den verwalteten Lavalink-Knoten von Audio auf einer nicht unterstützten Architektur auszuführen. Es stehen nur Einstellungsbefehle zur Verfügung."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr "Mir fehlen die Berechtigungen, um Nachrichten in diesem Server zu senden. Bitte kümmern Sie sich so bald wie möglich darum."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Mir fehlen Berechtigungen auf diesem Server, bitte richten Sie dies so bald wie möglich an.\n\n"
|
||||
"Erwartete Berechtigungen:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiviert"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktiviert"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr "Sie sollten diesen Kommand nicht nutzen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
@@ -327,58 +339,58 @@ msgstr "\n"
|
||||
"Wenn Sie fortfahren möchten, geben Sie dieses token, Groß- und Kleinschreibung beachtend und ohne Leerzeichen, in Ihrer nächsten Nachricht ein.\n\n"
|
||||
"{confirm_token}"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "Keine DJ-Rolle gefunden. DJ-Modus deaktiviert."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` ist kein gültiger Wert für `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Argument kann nicht analysiert werden"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Ungültiges Argument"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "Das Argument, das du für `{}` angegeben hast, ist ungültig: Ich erwartete ein `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Ungültige Umgebung"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr "Die Verbindung zum Lavalink Knoten ist verloren gegangen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Keine Player verfügbar"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Die Bot ist nicht mit einem Sprachkanal verbunden."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Tracks können nicht abgerufen werden"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "Ich bin momentan nicht in der Lage, einen Titel von Lavalink zu bekommen. Versuchen Sie es in ein paar Minuten erneut."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Es gab ein Problem bei der Kommunikation mit Discord."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Dieser Fehler wurde dem Bot-Besitzer gemeldet."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,116 +208,128 @@ msgid "Send Voice Messages"
|
||||
msgstr "Enviar mensajes de voz"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Establecer estado del canal de voz"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Anclar mensajes"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Modo lento bypass"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr "Este comando cambiará la asignación máxima de RAM para el nodo de Lavalink administrado, por lo general nunca tendría que cambiar esto, antes de considerarlo por favor consulte a nuestro equipo de soporte."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr "Este comando desactivará el nodo Lavalink administrado, si activa este comando debe especificar un nodo Lavalink externo al que conectar, si no lo hace, Audio dejará de funcionar."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr "Este comando se utiliza para especificar la IP que será utilizada por Red para conectarse a un nodo Lavalink externo. "
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr "Este comando se utiliza para especificar la contraseña de autenticación usada por Red para conectarse a un nodo Lavalink externo."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr "Este comando se usa para alternar entre conexiones seguras y no seguras a un nodo Lavalink externo."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr "Este comando se utiliza para especificar el puerto de conexión utilizado por Red para conectarse a un nodo Lavalink externo."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr "Este comando especifica a qué interfaz de red e IP se enlazará el nodo Lavalink administrado, por defecto esto es 'localhost', sólo cambie esto si desea que el nodo Lavalink administrado se conecte a una IP/interfaz específica."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr "Este comando cambia la contraseña de autenticación necesaria para conectarse a este nodo administrado. El valor por defecto es 'youshallnotpass'."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr "Este comando cambia el puerto de conexión usado para conectarse a este nodo administrado, sólo cambiar esto si el puerto por defecto '2333' está causando conflictos con aplicaciones existentes."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr "Este comando activa el soporte de streams de url directos como los streams Icecast o Shoutcast. Un ejemplo es <http://ice1.somafm.com/gsclassic-128-mp3>; deshabilitar esto hará que el bot no pueda reproducir ningún contenido directo de vapor de url."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr "Este comando activa el soporte para la reproducción de audio de pistas locales. Un ejemplo es `/mnt/data/my_super_funky_track.mp3`; deshabilitar esto hará que el bot no pueda reproducir ningún contenido local de la pista."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr "Este comando activa el soporte de la reproducción de SoundCloud. Un ejemplo es <https://soundcloud.com/user-103858850/tilla>; deshabilitar esto hará que el bot no pueda reproducir ningún contenido de SoundCloud."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr "Este comando activa el soporte de la reproducción de YouTube (Spotify depende de YouTube). Desactivar esto hará que el bot no pueda reproducir ningún contenido de YouTube: esto incluye Spotify."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr "Este comando activa el soporte de la reproducción de Twitch. Un ejemplo de esto es <https://twitch.tv/monstercat>; deshabilitar esto hará que el bot no pueda reproducir ningún contenido de Twitch."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr "Este comando activa el soporte de la reproducción de Vimeo. Un ejemplo de esto es <https://vimeo.com/157743578>; deshabilitar esto hará que el bot no pueda reproducir ningún contenido de Vimeo."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr "Esta configuración controla el framebuffer del nodo administrado, no cambie esto a menos que se lo indique."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr "Esta configuración controla el buffer JDA-NAS del nodo administrado, no cambie esto a menos que se le indique."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr "Este comando reiniciará todas las configuraciónes cambiada por `[p]llset`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr "Has intentado ejecutar el nodo Lavalink administrado del Cog Audio en una arquitectura no soportada. Sólo los comandos relacionados con la configuración estarán disponibles."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr "No tengo permisos para enviar mensajes en este servidor. Por favor, solucione tan pronto como pueda."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "No tengo permisos en este servidor, por favor solucione esto tan pronto como sea posible.\n\n"
|
||||
"Permisos esperados:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Activado"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Desactivado"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr "No deberías estar ejecutando este comando."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
@@ -327,58 +339,58 @@ msgstr "\n"
|
||||
"Si desea continuar, introduzca este token sensible a mayúsculas y minúsculas sin espacios como su siguiente mensaje.\n\n"
|
||||
"{confirm_token}"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "No se ha encontrado el rol de DJ. Desactivando el modo DJ."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` no es un valor válido para `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "No se puede analizar el argumento"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Argumento no válido"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "El argumento que has dado para `{}` no es válido: esperaba un `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Entorno no válido"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr "La conexión al nodo Lavalink se ha perdido."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Jugador no disponible"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "El bot no está conectado a un canal de voz."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "No se puede cargar la canción"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "No puedo obtener una canción desde el nodo de Lavalink en este momento, inténtalo de nuevo en unos minutos."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Hubo un problema de comunicación con Discord."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Este error ha sido reportado al propietario del bot."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Estonian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Finnish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,174 +208,186 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Aseta Äänikanavan Tila"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Kiinnitä Viestit"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Ohita Hidastila"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Minulta puuttuu oikeuksia tällä palvelimella, korjaathan tämän mahdollisimman pian.\n\n"
|
||||
"Puuttuvat oikeudet:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Käytössä"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Ei käytössä"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "DJ-roolia ei löydy. Poistetaan DJ-tila käytöstä."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` ei ole kelvollinen arvo kohteelle `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Argumentin käsittely epäonnistui"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Virheellinen argumentti"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "Argumentti jonka annoit kohteelle `{}` ei ole kelvollinen: Oletin että saan`{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Virheellinen ympäristö"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Toistinta ei saatavilla"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Botti ei ole yhdistettynä puhekanavaan."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Kappaletta ei voitu hakea"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Ongelma Discordin kanssa kommunikoitaessa."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Tämä virhe ilmoitettiin botin omistajalle."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: French\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,174 +208,186 @@ msgid "Send Voice Messages"
|
||||
msgstr "Envoyer des messages vocaux"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Définir le statut du canal vocal"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Épingler les messages"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Contournez le mode Lenteur"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr "Cette commande va changer l'allocation maximale de RAM pour le noeud Lavalink géré, généralement vous n'aurez jamais à changer cela, avant d'envisager de le modifier, veuillez consulter notre équipe d'assistance."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr "Cette commande désactivera le noeud Lavalink géré, Si vous activez cette commande, vous devez spécifier un noeud Lavalink externe auquel vous devez vous connecter, si vous ne le faites pas, Audio arrêtera de fonctionner."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr "Cette commande est utilisée pour spécifier l'adresse IP qui sera utilisée par Red pour se connecter à un noeud Lavalink externe. "
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr "Cette commande est utilisée pour spécifier le mot de passe d'authentification utilisé par Red pour se connecter à un noeud Lavalink externe."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr "Cette commande est utilisée pour basculer entre les connexions sécurisées et non sécurisées vers un noeud Lavalink externe."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr "Cette commande est utilisée pour spécifier le port de connexion qui sera utilisée par Red pour se connecter à un noeud Lavalink externe."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr "Cette commande spécifie à quelle interface réseau et à quelle adresse IP le noeud Lavalink géré sera lié, par défaut, c'est 'localhost', seulement changer cela si vous voulez que le noeud Lavalink géré soit lié à une adresse IP/interface spécifique."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr "Cette commande modifie le mot de passe requis pour se connecter à ce nœud géré. La valeur par défaut est 'youshallnotpass'."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr "Cette commande modifie le port de connexion utilisé pour se connecter à ce nœud géré. À changer seulement si le port par défaut '2333' provoque des bugs avec des applications existantes."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr "Cette commande active le support des URL directes comme les flux Icecast ou Shoutcast. Par exemple :<http://ice1.somafm.com/gsclassic-128-mp3>. Le désactiver rendra le bot incapable de jouer le contenu d'une URL directe."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Il me manque des permissions sur ce serveur. Veuillez régler ce problème dès que possible.\n\n"
|
||||
"Permissions attendues :\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Activé"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Désactivé"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "Aucun rôle DJ détecté. Désactivation du mode DJ."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` n'est pas une valeur valide pour `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Impossible d'analyser l'argument"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Argument invalide"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "L'argument que vous avez donné pour `{}` n'est pas valide : je m'attendais à `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Environnement invalide"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr "La connexion avec Lavalink a été perdue."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Aucun lecteur audio disponible"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Le bot n'est pas connecté à un salon vocal."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Impossible d'obtenir la piste"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "Je ne parviens actuellement pas à avoir une musique depuis Lavalink. Réessayez dans quelques minutes."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Il y a eu un problème de communication avec Discord."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Cette erreur a été signalée au propriétaire du bot."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hindi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Croatian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,116 +208,128 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr "Ova naredba će promijeniti maksimalnu dodjelu RAM-a upravljanom Lavalink čvoru. Inače ovo nikada nećete morati mijenjati. Prije nego što razmislite o promjeni, obratite se našem timu za podršku."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr "Ova naredba će onemogućiti upravljani Lavalink čvor, ako uključite ovu naredbu, morate navesti vanjski Lavalink čvor na koji ćete se povezati, ako to ne učinite Audio će prestat raditi."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr "Ova naredba se koristi za određivanje IP adrese koju Red koristi za povezivanje na eksterni Lavalink čvor. "
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr "Ova naredba se koristi za određivanje lozinke koju Red koristi za povezivanje na eksterni Lavalink čvor."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr "Ova naredba se koristi za prebacivanje između sigurnih i nesigurnih veza na eksterni Lavalink čvor."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr "Ova naredba se koristi za određivanje port-a koji Red koristi za spajanje na eksterni Lavalink čvor."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr "Ova naredba određuje na koje mrežno sučelje i IP će se upravljani Lavalink čvor vezati, prema zadanim postavkama ovo je 'localhost', promijenite ovo jedino ako želite da se upravljani Lavalink čvor veže na određeni IP/sučelje."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr "Ova naredba mijenja lozinku potrebnu za povezivanje s ovim upravljanim čvorom. Zadana vrijednost je 'youshallnotpass'."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr "Ova naredba mijenja port koji se koristi za povezivanje s ovim upravljanim čvorom, promijenite ga jedino ako zadani port '2333' uzrokuje sukobe s postojećim aplikacijama."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr "Ova naredba će resetirati svaku postavku koju je promijenio `[p]llset`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr "Pokušali ste pokrenuti Audio-upravljan Lavalink čvor na nepodržanoj arhitekturi. Biti će dostupne samo naredbe povezane s postavkama."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Nedostaju mi dozvole u ovom serveru, riješite to što prije moguće.\n\n"
|
||||
"Očekivane dozvole:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Aktivirano"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktivirano"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr "Ne biste trebali pokretati ovu naredbu."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
@@ -327,58 +339,58 @@ msgstr "\n"
|
||||
"Ako želite nastaviti, unesite ovaj token, pazeći na velika i mala slova, bez razmaka kao sljedeću poruku.\n\n"
|
||||
"{confirm_token}"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "Nije pronađena DJ uloga. Onemogućavam DJ način rada."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` nije važeća vrijednost za `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Nije moguće obradit argument"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Neispravan Argument"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "Argument koji ste dali za `{}` nije valjan: očekivao sam `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Neispravno Okruženje"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr "Veza s Lavalinkom je izgubljena."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Nema dostupnog Playera"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Bot nije spojen na glasovni kanal."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Nije moguće dobiti pjesmu"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "Trenutno ne mogu dobiti pjesmu od Lavalinka, pokušajte ponovno za par minuta."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Došlo je do problema u komunikaciji s Discordom."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Greška je prijavljena vlasniku bota."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Letiltva"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Diaktifkan"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Dinonaktifkan"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Italian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Imposta Stato Canale Vocale"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Messaggi PIN"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Modalità Bypass Lenta"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Abilitato"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Disabilitato"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Japanese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "ボイスチャンネルの状態を設定"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "僅用於中文"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Bypass Slowmode"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "現在、Lavalinkノードからトラックを取得できません。数分後にもう一度お試しください。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Korean\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,174 +208,186 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "저에게 이 서버에 대한 몇가지 권한이 누락된 것 같아요, 최대한 빠르게 해당 권한을 부여해 주세요. \n\n"
|
||||
"누락되었다고 예상되어지는 권한입니다.:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "활성화됨"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "비활성화됨"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "DJ역할을 찾지 못했습니다. DJ역할을 비활성화합니다."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` 은 `{command}`의 적합한 값이 아니에요"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "인수룰 구분할 수 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "잘못된 인수입니다."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "`{}`에 대해 제공 한 인수가 유효하지 않습니다.`{}`를 예상했습니다."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "잘못된 환경입니다."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "사용가능한 플레이어가 없습니다."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "봇이 음성체널에 접속해 있지 않아요."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "트랙을 찾을수 없습니다"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "디스코드와 통신하는데 문제가 있습니다."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "봇 관리자에게 해당 에러가 보고되었습니다."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Norwegian Bokmal\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,174 +208,186 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Sett talekanal status"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Fest meldinger"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Omgå treg modus"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr "Denne kommandoen vil endre den maksimale RAM fordelingen for den administrerte Lavalink-noden, normalt vil du aldri måtte endre dette før du vurderer å endre det, vennligst kontakt vårt supportteam."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr "Denne kommandoen vil deaktivere den administrerte lavalunk-noden, hvis du slår av og på denne kommandoen må du angi en ekstern Lavalink node for å koble til, hvis du ikke gjør det, vil lyd slutte å virke."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr "Denne kommandoen brukes til å angi IP som skal brukes ved Rød for å koble til en ekstern Lavalink node. "
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr "Denne kommandoen brukes til å angi godkjenningspassord som brukes av Red til å koble til en ekstern Lavalink node."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr "Denne kommandoen brukes veksling mellom sikrede og usikrede forbindelser til en ekstern Lavalink node."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr "Denne kommandoen brukes til å angi tilkoblingsporten som brukes av Red til å koble til en ekstern Lavalink node."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr "Denne kommandoen angir hvilken nettverkstilkobling og IP den administrerte Lavalink noden vil binde seg til som standard er dette 'localhost', endrer bare dette hvis du vil at Lavalink den håndterte noden skal bindes til en bestemt IP/grensesnitt."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr "Kommandoen endrer godkjenningspassordet som kreves for å koble til denne administrerte node.Standardverdien er 'dushallnotpass'."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Jeg mangler tillatelser i denne serveren, Vennligst adresse dette så snart som mulig.\n\n"
|
||||
"Forventede tillatelser:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Aktivert"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktivert"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "Ingen DJ rolle funnet. Deaktivering av DJ modus."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` er ikke en gyldig verdi for `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Kan ikke analysere argument"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Ugyldig Argument"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "Argumentet du ga for `{}` er ikke gyldig: Jeg forventet en `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Ugyldig miljø"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Ingen spiller tilgjengelig"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Botten er ikke koblet til en talekanal."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Kunne ikke motta spor"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Det var et problem som kommuniserte med Discord."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Denne feilen er rapportert til bot eieren."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Dutch\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -17,43 +17,43 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/cog.py:218
|
||||
msgid "Auto Play started."
|
||||
msgstr ""
|
||||
msgstr "Auto Play gestart."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:35
|
||||
msgid "Create Instant Invite"
|
||||
msgstr ""
|
||||
msgstr "Directe uitnodiging maken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:36
|
||||
msgid "Kick Members"
|
||||
msgstr ""
|
||||
msgstr "Leden kicken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:37
|
||||
msgid "Ban Members"
|
||||
msgstr ""
|
||||
msgstr "Leden verbannen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:38
|
||||
msgid "Administrator"
|
||||
msgstr ""
|
||||
msgstr "Beheerder"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:39
|
||||
msgid "Manage Channels"
|
||||
msgstr ""
|
||||
msgstr "Kanalen beheren"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:40
|
||||
msgid "Manage Server"
|
||||
msgstr ""
|
||||
msgstr "Server beheren"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:41
|
||||
msgid "Add Reactions"
|
||||
msgstr ""
|
||||
msgstr "Reacties toevoegen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:42
|
||||
msgid "View Audit Log"
|
||||
msgstr ""
|
||||
msgstr "Auditlogboek bekijken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:43
|
||||
msgid "Priority Speaker"
|
||||
msgstr ""
|
||||
msgstr "Prioriteitsspreker"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:44
|
||||
msgid "Video"
|
||||
@@ -61,326 +61,342 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:45
|
||||
msgid "Read Text Channels & See Voice Channels"
|
||||
msgstr ""
|
||||
msgstr "Tekstkanalen lezen & spraakkanalen bekijken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:46
|
||||
msgid "Send Messages"
|
||||
msgstr ""
|
||||
msgstr "Berichten verzenden"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:47
|
||||
msgid "Send Text-to-speech Messages"
|
||||
msgstr ""
|
||||
msgstr "Tekst-naar-spraakberichten verzenden"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:48
|
||||
msgid "Manage Messages"
|
||||
msgstr ""
|
||||
msgstr "Berichten beheren"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:49
|
||||
msgid "Embed Links"
|
||||
msgstr ""
|
||||
msgstr "Links insluiten"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:50
|
||||
msgid "Attach Files"
|
||||
msgstr ""
|
||||
msgstr "Bestanden bijvoegen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:51
|
||||
msgid "Read Message History"
|
||||
msgstr ""
|
||||
msgstr "Berichtengeschiedenis lezen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:52
|
||||
msgid "Mention @everyone, @here, and All Roles"
|
||||
msgstr ""
|
||||
msgstr "Vermelding @everyone, @here en alle rollen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:53
|
||||
msgid "Use External Emojis"
|
||||
msgstr ""
|
||||
msgstr "Externe emoji's gebruiken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:54
|
||||
msgid "View Server Insights"
|
||||
msgstr ""
|
||||
msgstr "Serverinzichten bekijken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:55
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
msgstr "Verbinden"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:56
|
||||
msgid "Speak"
|
||||
msgstr ""
|
||||
msgstr "Spreken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:57
|
||||
msgid "Mute Members"
|
||||
msgstr ""
|
||||
msgstr "Leden dempen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:58
|
||||
msgid "Deafen Members"
|
||||
msgstr ""
|
||||
msgstr "Leden doven"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:59
|
||||
msgid "Move Members"
|
||||
msgstr ""
|
||||
msgstr "Leden verplaatsen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:60
|
||||
msgid "Use Voice Activity"
|
||||
msgstr ""
|
||||
msgstr "Spraakactiviteit gebruiken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:61
|
||||
msgid "Change Nickname"
|
||||
msgstr ""
|
||||
msgstr "Bijnaam wijzigen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:62
|
||||
msgid "Manage Nicknames"
|
||||
msgstr ""
|
||||
msgstr "Bijnamen beheren"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:63
|
||||
msgid "Manage Roles"
|
||||
msgstr ""
|
||||
msgstr "Rollen beheren"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:64
|
||||
msgid "Manage Webhooks"
|
||||
msgstr ""
|
||||
msgstr "Webhooks beheren"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:65
|
||||
msgid "Manage Expressions"
|
||||
msgstr ""
|
||||
msgstr "Expressies beheren"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:66
|
||||
msgid "Use Application Commands"
|
||||
msgstr ""
|
||||
msgstr "Applicatiecommando's gebruiken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:67
|
||||
msgid "Request to Speak"
|
||||
msgstr ""
|
||||
msgstr "Verzoeken om te spreken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:68
|
||||
msgid "Manage Events"
|
||||
msgstr ""
|
||||
msgstr "Evenementen beheren"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:69
|
||||
msgid "Manage Threads"
|
||||
msgstr ""
|
||||
msgstr "Threads beheren"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:70
|
||||
msgid "Create Public Threads"
|
||||
msgstr ""
|
||||
msgstr "Openbare threads maken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:71
|
||||
msgid "Create Private Threads"
|
||||
msgstr ""
|
||||
msgstr "Privéthreads maken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:72
|
||||
msgid "Use External Stickers"
|
||||
msgstr ""
|
||||
msgstr "Externe stickers gebruiken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:73
|
||||
msgid "Send Messages in Threads"
|
||||
msgstr ""
|
||||
msgstr "Berichten in threads verzenden"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:74
|
||||
msgid "Use Activities"
|
||||
msgstr ""
|
||||
msgstr "Activiteiten gebruiken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:75
|
||||
msgid "Time out members"
|
||||
msgstr ""
|
||||
msgstr "Leden een time-out geven"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:76
|
||||
msgid "View Creator Monetization Analytics"
|
||||
msgstr ""
|
||||
msgstr "Statistieken over inkomsten van creators bekijken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:77
|
||||
msgid "Use Soundboard"
|
||||
msgstr ""
|
||||
msgstr "Soundboard gebruiken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:78
|
||||
msgid "Create Expressions"
|
||||
msgstr ""
|
||||
msgstr "Expressies maken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:79
|
||||
msgid "Create Events"
|
||||
msgstr ""
|
||||
msgstr "Evenementen maken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:80
|
||||
msgid "Use External Sounds"
|
||||
msgstr ""
|
||||
msgstr "Externe geluiden gebruiken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:81
|
||||
msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
msgstr "Spraakberichten verzenden"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Spraakkanaal status instellen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr "Peilingen maken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
msgstr "Externe apps gebruiken"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Berichten vastzetten"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Slowmode omzeilen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
msgstr "Dit commando wijzigt het uitvoerbare pad van Java, dit is handig als je meerdere installaties van Java hebt en de standaard installatie problemen veroorzaakt. Wijzig dit alsjeblieft niet, tenzij je zeker weet dat de Java-versie die je opgeeft, wordt ondersteund door Red. De ondersteunde versies zijn momenteel Java {supported_java_versions}."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
msgstr "Dit commando wijzigt de maximale RAM-toewijzing voor de beheerde Lavalink-node. Normaal gesproken hoef je dit nooit te wijzigen. Raadpleeg ons ondersteuningsteam voordat je overweegt dit te wijzigen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
msgstr "Dit commando schakelt de beheerde Lavalink-node uit. Als je dit commando gebruikt, moet je een externe Lavalink-node specificeren om mee te verbinden. Als je dit niet doet, stopt Audio met werken."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr "Dit commando wordt gebruikt om het IP-adres op te geven dat Red zal gebruiken om verbinding te maken met een externe Lavalink-node. "
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr "Dit commando wordt gebruikt om het authenticatiewachtwoord op te geven dat Red gebruikt om verbinding te maken met een externe Lavalink-node."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr "Dit commando wordt gebruikt om de verbindingspoort op te geven die Red gebruikt om verbinding te maken met een externe Lavalink-node."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
msgstr "Dit commando specificeert aan welke netwerkinterface en IP de beheerde Lavalink-node zal binden. Standaard is dit 'localhost'. Wijzig dit alleen als je wilt dat de beheerde Lavalink-node aan een specifiek IP/interface bindt."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
msgstr "Dit commando wijzigt het authenticatiewachtwoord dat vereist is om verbinding te maken met deze beheerde node. De standaardwaarde is 'youshallnotpass'."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
msgstr "Dit commando wijzigt de verbindingspoort die wordt gebruikt om verbinding te maken met deze beheerde node. Wijzig dit alleen als de standaardpoort '2333' conflicten veroorzaakt met bestaande applicaties."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
msgstr "Dit commando schakelt de ondersteuning voor directe URL-streams zoals Icecast- of Shoutcast-streams in of uit. Een voorbeeld is <http://ice1.somafm.com/gsclassic-128-mp3>; het uitschakelen hiervan zorgt ervoor dat de bot geen directe URL-streaminhoud kan afspelen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
msgstr "Dit commando schakelt de ondersteuning voor het afspelen van lokale audiobestanden in of uit. Een voorbeeld is `/mnt/data/my_super_funky_track.mp3`; het uitschakelen hiervan zorgt ervoor dat de bot geen lokale bestanden kan afspelen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
msgstr "Dit commando schakelt de ondersteuning voor SoundCloud-playback in of uit. Een voorbeeld is <https://soundcloud.com/user-103858850/tilla>; het uitschakelen hiervan zorgt ervoor dat de bot geen SoundCloud-inhoud kan afspelen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
msgstr "Dit commando schakelt de ondersteuning voor YouTube-playback in of uit (Spotify is afhankelijk van YouTube). Het uitschakelen hiervan zorgt ervoor dat de bot geen YouTube-inhoud kan afspelen: dit is inclusief Spotify."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
msgstr "Dit commando schakelt de ondersteuning voor Twitch-playback in of uit. Een voorbeeld hiervan is <https://twitch.tv/monstercat>; het uitschakelen hiervan zorgt ervoor dat de bot geen Twitch-inhoud kan afspelen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
msgstr "Dit commando schakelt de ondersteuning voor Vimeo-playback in of uit. Een voorbeeld hiervan is <https://vimeo.com/157743578>; het uitschakelen hiervan zorgt ervoor dat de bot geen Vimeo-inhoud kan afspelen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
msgstr "Deze instelling beheert de framebuffer van de beheerde node, wijzig dit niet tenzij geïnstrueerd."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
msgstr "Deze instelling beheert de JDA-NAS-buffer van de beheerde node, wijzig dit niet tenzij geïnstrueerd."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
msgstr "Dit commando zal elke instelling resetten die is gewijzigd door `[p]llset`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
msgstr "Je hebt geprobeerd Audio's beheerde Lavalink-node te draaien op een niet-ondersteunde architectuur. Alleen instelling gerelateerde commando's zullen beschikbaar zijn."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
msgstr "Ik mis rechten om berichten te verzenden in deze server. Los dit alsjeblieft zo snel mogelijk op."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
msgstr "Ik mis rechten in deze server. Los dit alsjeblieft zo snel mogelijk op.\n\n"
|
||||
"Verwachte rechten:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Ingeschakeld"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Uitgeschakeld"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr "Je zou dit commando niet moeten uitvoeren."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
"{template}\n"
|
||||
"Als je wilt doorgaan, voer dan dit hoofdlettergevoelige token zonder spaties in als je volgende bericht.\n\n"
|
||||
"{confirm_token}"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
msgstr "Geen DJ-rol gevonden. DJ-modus wordt uitgeschakeld."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
msgstr "`{user_input}` is geen geldige waarde voor `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
msgstr "Argument parseren mislukt"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
msgstr "Ongeldig argument"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
msgstr "Het argument dat je opgaf voor `{}` is niet geldig: ik verwachtte een `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
msgstr "Ongeldige omgeving"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
msgstr "Verbinding met de Lavalink-node is verbroken."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
msgstr "Geen speler beschikbaar"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
msgstr "De bot is niet verbonden met een spraakkanaal."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
msgstr "Kan track niet ophalen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
msgstr "Ik kan op dit moment geen track ophalen van de Lavalink-node, probeer het over een paar minuten opnieuw."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
msgstr "Er was een probleem met de communicatie met Discord."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
msgstr "Deze fout is gemeld aan de boteigenaar."
|
||||
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:175
|
||||
msgid "Couldn't get a valid track."
|
||||
msgstr ""
|
||||
msgstr "Kon geen geldige track ophalen."
|
||||
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:210
|
||||
msgid "Now Playing"
|
||||
@@ -396,20 +412,21 @@ msgstr "Wachtrij beëindigd."
|
||||
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:301
|
||||
msgid "Multiple Errors Detected"
|
||||
msgstr ""
|
||||
msgstr "Meerdere fouten gedetecteerd"
|
||||
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:302
|
||||
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 "De audiospeler wordt gesloten omdat er meerdere fouten zijn gedetecteerd. Als dit aanhoudt, informeer dan de boteigenaar, aangezien de Audio-cog tijdelijk onbeschikbaar kan zijn."
|
||||
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:316
|
||||
msgid "Track Stuck"
|
||||
msgstr ""
|
||||
msgstr "Track vastgelopen"
|
||||
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:317
|
||||
msgid "Playback of the song has stopped due to an unexpected error.\n"
|
||||
"{error}"
|
||||
msgstr ""
|
||||
msgstr "Het afspelen van het nummer is gestopt vanwege een onverwachte fout.\n"
|
||||
"{error}"
|
||||
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:323
|
||||
msgid "Track Error"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Polish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,116 +208,128 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Ustaw status kanału głosowego"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Przypnij wiadomości"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Omijanie trybu wolniejszego"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr "Ta komenda zmieni maksymalną alokację pamięci RAM dla zarządzanego węzła Lavalink, zwykle nigdy nie musisz tego zmieniać, zanim zastanowimy się nad jego zmianą, skontaktuj się z naszym zespołem pomocy technicznej."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr "Ta komenda wyłączy zarządzany węzeł Lavalink jeśli włączysz to polecenie musisz określić zewnętrzny węzeł Lavalink aby się połączyć, jeśli nie zrobisz tego dźwięk przestanie działać."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr "Ta komenda jest używana do określenia adresu IP, który będzie używany przez Czerwony do połączenia z zewnętrznym węzłem Lavalink. "
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr "To polecenie jest używane do określenia hasła uwierzytelniania używanego przez Czerwonego do połączenia z zewnętrznym węzłem Lavalink."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr "To polecenie jest używane do przełączania pomiędzy zabezpieczonymi i niezabezpieczonymi połączeniami do zewnętrznego węzła Lavalink."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr "Ta komenda jest używana do określenia portu połączenia używanego przez Czerwoną do połączenia z zewnętrznym węzłem Lavalink."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr "Ta komenda określa, z którym interfejsem sieciowym i IP zarządzany węzeł Lavalink będzie powiązany, domyślnie to jest 'localhost', tylko jeśli chcesz, aby zarządzany węzeł Lavalink wiązał się z określonym IP/interfejsem."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr "Ta komenda zmienia hasło uwierzytelniania wymagane do połączenia z tym zarządzanym węzłem. Wartością domyślną jest 'youshallnotpass'."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr "Ta komenda zmienia port połączenia używany do połączenia z tym zarządzanym węzłem, zmień to tylko wtedy, gdy domyślny port '2333' powoduje konflikt z istniejącymi aplikacjami."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr "Ta komenda przełącza obsługę bezpośrednich strumieni url takich jak Icecast lub Shoutcast. Przykładem jest <http://ice1.somafm.com/gsclassic-128-mp3>; wyłączenie tego sprawi, że bot nie będzie w stanie odtworzyć żadnej bezpośredniej zawartości pary Url."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr "Ta komenda przełącza obsługę lokalnego odtwarzania dźwięku. Przykładem jest `/mnt/data/my_super_funky_track.mp3`; wyłączenie tego sprawi, że bot nie będzie mógł odtworzyć lokalnej zawartości śladu."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr "Ta komenda przełącza obsługę odtwarzania SoundCloud. Przykładem jest <https://soundcloud.com/user-103858850/tilla>; wyłączenie tego sprawi, że bot nie będzie mógł odtwarzać żadnych treści SoundCloud."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr "Ta komenda przełącza obsługę odtwarzania YouTube (Spotify zależy od YouTube). Wyłączenie tej opcji sprawi, że bot nie będzie mógł odtworzyć żadnej zawartości YouTube: w tym Spotify."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr "Ta komenda przełącza obsługę odtwarzania na Twitchu. Przykładem tego jest <https://twitch.tv/monstercat>; wyłączenie tego sprawi, że bot nie będzie mógł odtworzyć żadnych treści Twitcha."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr "Ta komenda przełącza obsługę odtwarzania Vimeo. Przykładem tego jest <https://vimeo.com/157743578>; wyłączenie tego sprawi, że bot nie będzie mógł odtworzyć żadnej zawartości Vimeo."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr "To ustawienie kontroluje bufor ramki zarządzanego węzła, nie zmieniaj tego bez instrukcji."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr "To ustawienie kontroluje bufor JDA-NAS zarządzanego węzła, nie zmieniaj tego bez instrukcji."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr "Ta komenda zresetuje każde ustawienie zmienione przez `[p]llset`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr "Próbowałeś uruchomić węzeł Lavalink zarządzany przez Audio na nieobsługiwanej architekturze. Dostępne będą tylko polecenia związane z ustawieniami."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr "Brakuje mi uprawnień do wysyłania wiadomości na tym serwerze. Skontaktuj się z nim tak szybko, jak to możliwe."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Brakuje mi uprawnień na tym serwerze, prosimy o przekierowanie tego adresu tak szybko, jak to możliwe.\n\n"
|
||||
"Oczekiwane uprawnienia:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Włączone"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Wyłączone"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr "Nie powinieneś uruchamiać tego polecenia."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
@@ -327,58 +339,58 @@ msgstr "\n"
|
||||
"Jeśli chcesz kontynuować, wprowadź ten token uwzględniający wielkość liter bez spacji jako następna wiadomość.\n\n"
|
||||
"{confirm_token}"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "Nie znaleziono roli DJ. Wyłączanie trybu DJ."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` nie jest poprawną wartością dla `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Nie można przeanalizować argumentu"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Nieprawidłowy argument"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "Argument który podałeś dla `{}` jest nieprawidłowy: oczekiwałem/am `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Nieprawidłowe środowisko"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr "Połączenie z węzłem Lavalink zostało utracone."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Brak dostępnego odtwarzacza"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Bot nie jest podłączony do kanału głosowego."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Nie można pobrać utworu"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "W tej chwili nie mogę pobrać ścieżki z węzła Lavalink, spróbuj ponownie za kilka minut."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Wystąpił problem z komunikacją z Discordem."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Ten błąd został zgłoszony właścicielowi bota."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,174 +208,186 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Definir estado do canal de voz"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Fixar Mensagens"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Ignorar Modo Lentidão"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Faltam permissões neste servidor. Por favor, resolva isso assim que possível.\n\n"
|
||||
"Permissões esperadas:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Habilitado"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Desabilitado"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "Nenhum cargo de DJ encontrado. Desabilitando o modo DJ."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` não é um valor válido para `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Não foi possível analisar o argumento"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Argumento inválido"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "O argumento que você deu para `{}` não é válido: eu esperava por `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Ambiente inválido"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Nenhum reprodutor disponível"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "O bot não está conectado a um canal de voz."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Não foi possível obter a faixa"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "Não foi possível obter uma faixa do nó do Lavalink no momento, tente novamente em alguns minutos."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Ocorreu um problema de comunicação com o Discord."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Este erro foi reportado ao proprietário do bot."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Portuguese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,115 +208,127 @@ msgid "Send Voice Messages"
|
||||
msgstr "Enviar Mensagens de Voz"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Definir estado do canal de voz"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr "Criar Votações"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr "Usar Aplicações Externas"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Fixar Mensagens"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Ignorar Modo Lentidão"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr "Este comando irá alterar a alocação máxima de RAM para o nó gerenciado Lavalink, Normalmente você nunca precisará mudar isto, antes de considerar alterá-lo por favor consulte nossa equipe de suporte."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr "Este comando desativará o nó Lavalink gerenciado, se você alternar este comando você deve especificar um nó Lavalink externo a se conectar, se você não fizer isso o Áudio irá parar de funcionar."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr "Este comando é usado para especificar o IP que será usado pelo Red para conectar a um nó Lavalink externo. "
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr "Este comando é usado para especificar a senha de autenticação usada pelo Red para conectar a um nó externo Lavalink."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr "Este comando é usado para alternar entre conexões seguras e não seguras para um nó Lavalink externo."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr "Este comando é usado para especificar a porta de conexão usada pelo Red para conectar a um nó de Lavalink externo."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr "Este comando especifica a qual interface de rede e IP o nó Lavalink gerenciado será vinculado, por padrão isto é 'localhost', só mude isso se você quiser que o nó gerenciado de Lavalink vincule a um IP/interface específico."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr "Este comando altera a senha de autenticação necessária para conectar a este nó gerenciado. O valor padrão é 'youshallnotpass'."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr "Este comando altera a porta de conexão utilizada para conectar a este nó gerenciado, somente mude isso se a porta padrão '2333' estiver causando conflitos com aplicações existentes."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr "Este comando alterna o suporte a streams de url diretas como Icecast ou Shoutcast fluxos. Um exemplo é <http://ice1.somafm.com/gsclassic-128-mp3>format@@1; desabilitar isso não fará com que o bot não possa reproduzir qualquer conteúdo Steam Url direta."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr "Este comando alterna o suporte à reprodução de áudio local. Um exemplo é `/mnt/data/my_super_funky_track. p3`; desabilitar isto fará com que o bot não possa reproduzir qualquer conteúdo local."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr "Este comando alterna o suporte à reprodução do SoundCloud. Um exemplo é <https://soundcloud.com/user-103858850/tilla>; desabilitar isso fará com que o bot não possa reproduzir conteúdo do SoundCloud."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr "Este comando alterna o suporte da reprodução do YouTube (Spotify depende do YouTube). Desabilitar isso fará com que o bot não possa reproduzir qualquer conteúdo do YouTube: isso inclui o Spotify."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr "Esse comando alterna o apoio da reprodução do Twitch. Um exemplo disso é <https://twitch.tv/monstercat>; desabilitar isso fará com que o bot não possa jogar qualquer conteúdo da Twitch."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr "Este comando alterna o suporte da reprodução Vimeo. Um exemplo disso é <https://vimeo.com/157743578>; desabilitar isso fará com que o bot não possa jogar nenhum conteúdo Vimeo."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr "Esta configuração controla o framework gerenciado, não altere isso a menos que instruído."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr "Esta configuração controla o buffer JDA-NAS do nó gerenciado, não muda isso a menos que instruído."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr "Este comando irá redefinir todas as configurações alteradas por `[p]llset`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr "Você tentou executar o nó Lavalink gerenciado do Áudio em uma arquitetura não suportada. Somente comandos relacionados a configurações estarão disponíveis."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr "Faltam permissões para enviar mensagens neste servidor. Por favor, resolva isso o mais rápido possível."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Não tenho permissores neste servidor, Por favor resolva o mais rápido possível:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Ativado"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Desactivado"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr "Você não deve estar executando este comando."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
@@ -326,58 +338,58 @@ msgstr "\n"
|
||||
"Se você deseja continuar, insira este token sensível a maiúsculas e minúsculas sem espaços como a sua próxima mensagem.\n\n"
|
||||
"{confirm_token}"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "Nenhum cargo de DJ encontrado. Desativando o modo DJ."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` não é um valor válido para `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Incapaz de analisar Argumento"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Argumento Inválido"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "O argumento que você deu para `{}` não é válido: eu estava esperando um `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Ambiente inválido"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr "A conexão com o node Lavalink foi perdida."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Nenhum jogador disponível"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "O bot não está conectado a um canal de voz."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Não foi possível obter a faixa"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "Não consigo obter uma faixa do nó de Lavalink no momento, tente novamente em alguns minutos."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Houve um problema na comunicação com o Discord."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Este erro foi denunciado ao dono do bot."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Russian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,116 +208,128 @@ msgid "Send Voice Messages"
|
||||
msgstr "Отправлять голосовые сообщения"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Установить состояние голосового канала"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr "Создавать опросы"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr "Использовать внешние приложения"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Закрепить сообщения"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Пропустить медленный режим"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr "Эта команда изменит путь к исполняемому файлу Java. Это полезно, если у вас несколько установок Java, и стандартная вызывает проблемы. Пожалуйста, не изменяйте этот параметр, если вы не уверены, что указанная вами версия Java поддерживается Red. В настоящее время поддерживаются версии Java {supported_java_versions}."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr "Эта команда изменит максимальное распределение оперативной памяти для управляемого узла Lavalink, обычно вам никогда не придется изменять это значение, но прежде чем изменять его, пожалуйста, проконсультируйтесь с нашей службой поддержки."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr "Эта команда отключит управляемый узел Lavalink, если вы включите эту команду, вы должны указать внешний узел Lavalink для подключения, если вы этого не сделаете, Audio перестанет работать."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr "Эта команда используется для указания IP-адреса, который будет использовать Red для подключения к внешнему узлу Lavalink. "
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr "Эта команда используется для указания пароля аутентификации, используемого Red для подключения к внешнему узлу Lavalink."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr "Эта команда используется для переключения между безопасными и небезопасными соединениями с внешним Lavalink узлом."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr "Эта команда используется для указания порта соединения, используемого Red для подключения к внешнему узлу Lavalink."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr "Эта команда определяет, к какому сетевому интерфейсу и IP будет привязываться управляемый узел Lavalink по умолчанию это 'localhost', только если вы хотите, чтобы управляемый узел Lavalink связался с определенным IP/интерфейсом."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr "Эта команда меняет пароль аутентификации, необходимый для подключения к управляемому узлу. Значение по умолчанию 'youshallnotpass'."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr "Эта команда изменяет порт соединения, используемый для подключения к управляемому узлу. Изменять только если порт по умолчанию ('2333') вызывает конфликты с существующими приложениями."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr "Эта команда переключает поддержку URL стримов таких, как Icecast или Shoutcast. Примером является <http://ice1.somafm.com/gsclassic-128-mp3>; при отключении бот не сможет воспроизвести содержание URL стрима."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr "Эта команда переключает поддержку воспроизведения локального трека. Примером может служить `/mnt/data/my_super_funky_track.mp3`; при отключении бот не сможет воспроизводить локальные трека."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr "Эта команда переключает поддержку воспроизведения с SoundCloud. Пример <https://soundcloud.com/user-103858850/tilla>; при отключении бот не сможет воспроизводить содержимое с SoundCloud."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr "Эта команда переключает поддержку воспроизведения YouTube и Spotify. При отключении бот не сможет воспроизводить контента с YouTube и Spotify."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr "Эта команда переключает поддержку воспроизведения с Twitch. Пример <https://twitch.tv/monstercat>; при отключении бот не сможет воспроизводить содержимое c Twitch."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr "Эта команда переключает поддержку воспроизведения с Vimeo. Пример <https://vimeo.com/157743578>; при отключении бот не сможет воспроизводить содержимое с Vimeo."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr "Этот параметр управляет буфером кадров управляемого узла, не меняйте его без указаний."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr "Этот параметр управляет JDA-NAS буфером управляемого узла, не меняйте его без указаний."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr "Эта команда сбросит все параметры, измененные с помощью `[p]llset`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr "Вы попытались запустить управляемый узел Lavalink на неподдерживаемой архитектуре. Будут доступны только команды, связанные с настройками."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr "У меня отсутствуют разрешения на отправку сообщений на этом сервере. Пожалуйста, устраните это как можно скорее."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Мне не хватает полномочий на этом сервере, Пожалуйста, решите эту проблему как можно скорее.\n\n"
|
||||
"Ожидаемые полномочия:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Включено"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Отключено"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr "Вам не следует запускать эту команду."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
@@ -327,58 +339,58 @@ msgstr "\n"
|
||||
"Если вы хотите продолжить, введите чувствительный к регистру код без пробелов в качестве следующего сообщения.\n\n"
|
||||
"{confirm_token}"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "Роль DJ не найдена. Отключение режима DJ."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` не является допустимым значением для `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Не удается разобрать аргумент"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Недопустимый аргумент"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "Аргумент, который вы привели для `{}`, недействителен: Я ожидал `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Неверное окружение"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr "Соединение с Lavalink узлом было потеряно."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Нет доступных проигрывателей"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Бот не подключен к голосовому каналу."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Не удается получить трек"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "Я не могу получить трек от Lavalink, повторите попытку через несколько минут."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Возникла проблема со связью с Discord."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Об этой ошибке было сообщено владельцу бота."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Slovak\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Aktivované"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktivované"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "Nie je tu nájdená žiadna DJ rola. Vypínam DJ mód."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Žiaden prehrávač nie je dostupný"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Bot nie je pripojený na hlasový kanál."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Nepodarilo sa získať stopu"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Vyskytla sa chyba pri komunikácii s Discordom."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Táto chyba bola nahlásená vlastníkovi bota."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Slovenian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,174 +208,186 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Nimam nekaterih dovoljenj, prosim odpravi to težavo čim hitreje:\n\n"
|
||||
"Potrebna dovoljenja:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Omogočeno"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Onemogočeno"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "DJ rola ne obstaja. Izklapljam DJ način."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "Vrednost `{user_input}` ni veljavna za `{command}`"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Argumenta ni mogoče razčleniti"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Neveljaven argument"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "Podani argument za `{}` ni veljaven: Pričakoval sem `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Neveljavno okolje"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Na voljo ni noben predvajalnik"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Bot ni povezan do zvočnega kanala."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Skladbe ni mogoče dobiti"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Prišlo je do težave pri komunikaciji z Discordom."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Napaka je bila posredovana lastniku bota."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Swedish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Ange röstkanalstatus"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Fäst meddelanden"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Förbifart Slowmode"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Turkish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,174 +208,186 @@ msgid "Send Voice Messages"
|
||||
msgstr "Sesli Mesaj Gönder"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr "."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr "Ses modülünün Lavalink sunucusunu desteklenmeyen bir mimaride çalıştırmayı denediniz. Yalnızca ayarlarla ilgili komutlar kullanılabilir."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Bu sunucuda gerekli izinlere sahip değilim, lütfen bu sorunu en kısa zamanda çözün.\n\n"
|
||||
"Beklediğim İzinler:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Etkinleştirildi"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Devre dışı bırakıldı"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr "Bu komutu çalıştırmamalısın."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "DJ rolü bulunamadı. DJ modu kapatılıyor."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` `{command}` için geçerli bir değer değil"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Değişken işlenemedi"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Geçersiz argüment"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "`{}` için sunduğunuz değişken geçersiz, ben bir `{}` bekliyordum."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "Geçersiz Ortam"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr "Lavalink'e bağlanırken bir bağlantı hatası oluştu."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Kullanılabilir müzik çalar yok"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Bot her hangi bir ses kanalında değil."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Parça alınamıyor"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "Şu anda Lavalink'ten şarkıyı çalamıyorum, lütfen birkaç dakika sonra tekrar deneyin."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Discord ile haberleşirken sorun oluştu."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Hata bot sahibine bildirildi."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "Встановити статус голосового каналу"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "Прикріплювати повідомлення"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "Обхід свідомості"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Увімкнено"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Вимкнено"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Vietnamese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,174 +208,186 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "Tôi bị thiếu quyền trong máy chủ này.\n\n"
|
||||
"Những quyền cần thiết:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "Đã bật"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "Đã tắt"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "Tôi không thấy role DJ nào cả, đang tắt chế độ DJ."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "Không thể đối chiếu cú pháp"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "Giá trị không hợp lệ"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "Có gì đó không đúng với `{}`: Tôi tưởng bạn muốn `{}`."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "Tôi chưa bật trình phát nhạc"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "Nhưng mà Tôi chưa vào kênh thoại nào."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "Tôi không lấy được nhạc. Thử lại lần nữa đi"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "Hmm hình như có vấn đề khi kết nối với Discord."
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "Lỗi này Tôi đã báo cáo với chủ sở hữu."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,173 +208,185 @@ msgid "Send Voice Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr "设置语音频道状态"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr "置顶消息"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr "旁路缓慢模式"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "已启用"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "已禁用"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
"{confirm_token}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-01-26 22:03+0000\n"
|
||||
"POT-Creation-Date: 2026-03-04 01:51+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Traditional\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -208,116 +208,128 @@ msgid "Send Voice Messages"
|
||||
msgstr "傳送語音訊息"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:82
|
||||
msgid "Create Polls"
|
||||
msgid "Set Voice Channel Status"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:83
|
||||
msgid "Create Polls"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:84
|
||||
msgid "Use External Apps"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:87
|
||||
#: redbot/cogs/audio/core/events/dpy.py:85
|
||||
msgid "Pin Messages"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:86
|
||||
msgid "Bypass Slowmode"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:90
|
||||
msgid "This command will change the executable path of Java, this is useful if you have multiple installations of Java and the default one is causing issues. Please don't change this unless you are certain that the Java version you are specifying is supported by Red. The supported versions are currently Java {supported_java_versions}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:93
|
||||
#: redbot/cogs/audio/core/events/dpy.py:96
|
||||
msgid "This command will change the maximum RAM allocation for the managed Lavalink node, usually you will never have to change this, before considering changing it please consult our support team."
|
||||
msgstr "此命令將更改託管 Lavalink 節點的最大 RAM 分配,通常您永遠不必更改它,在考慮更改它之前請諮詢我們的開發團隊。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:98
|
||||
#: redbot/cogs/audio/core/events/dpy.py:101
|
||||
msgid "This command will disable the managed Lavalink node, if you toggle this command you must specify an external Lavalink node to connect to, if you do not do so Audio will stop working."
|
||||
msgstr "此命令將禁用託管的 Lavalink 節點,如果您切換此命令,則必須指定要連接的外部 Lavalink 節點,否則Audio將停止工作。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:103
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
msgid "This command is used to specify the IP which will be used by Red to connect to an external Lavalink node. "
|
||||
msgstr "此命令用於指定 Red 將用於連接到外部 Lavalink 節點的 IP。 "
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:106
|
||||
#: redbot/cogs/audio/core/events/dpy.py:109
|
||||
msgid "This command is used to specify the authentication password used by Red to connect to an external Lavalink node."
|
||||
msgstr "該命令用於指定 Red 連接到外部 Lavalink 節點時使用的認證密碼。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:110
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
msgid "This command is used toggle between secured and unsecured connections to an external Lavalink node."
|
||||
msgstr "此命令用於在與外部 Lavalink 節點的安全和不安全連接之間切換。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:113
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
msgid "This command is used to specify the connection port used by Red to connect to an external Lavalink node."
|
||||
msgstr "該命令用於指定Red用於連接外部Lavalink節點的連接端口。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:116
|
||||
#: redbot/cogs/audio/core/events/dpy.py:119
|
||||
msgid "This command specifies which network interface and IP the managed Lavalink node will bind to, by default this is 'localhost', only change this if you want the managed Lavalink node to bind to a specific IP/interface."
|
||||
msgstr "此命令指定託管 Lavalink 節點將綁定到哪個網絡接口和 IP,默認情況下這是“localhost”,僅當您希望託管 Lavalink 節點綁定到特定 IP/接口時才需更改此設置。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:121
|
||||
#: redbot/cogs/audio/core/events/dpy.py:124
|
||||
msgid "This command changes the authentication password required to connect to this managed node.The default value is 'youshallnotpass'."
|
||||
msgstr "此命令為更改連接到此受管節點所需的身份驗證密碼。默認值為“youshallnotpass”。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:125
|
||||
#: redbot/cogs/audio/core/events/dpy.py:128
|
||||
msgid "This command changes the connection port used to connect to this managed node, only change this if the default port '2333' is causing conflicts with existing applications."
|
||||
msgstr "此命令更改用於連接到此受管節點的連接端口,僅當默認端口“2333”與現有應用程序發生衝突時才更改此端口。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:129
|
||||
#: redbot/cogs/audio/core/events/dpy.py:132
|
||||
msgid "This command toggles the support of direct url streams like Icecast or Shoutcast streams. An example is <http://ice1.somafm.com/gsclassic-128-mp3>; disabling this will make the bot unable to play any direct url steam content."
|
||||
msgstr "此命令切換對直接 url 直播的支持,如 Icecast 或 Shoutcast 。 如: <http://ice1.somafm.com/gsclassic-128-mp3>; 禁用此功能將使機器人無法播放任何直接 url 蒸汽內容。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:139
|
||||
#: redbot/cogs/audio/core/events/dpy.py:142
|
||||
msgid "This command toggles the support of local track audio playback. An example is `/mnt/data/my_super_funky_track.mp3`; disabling this will make the bot unable to play any local track content."
|
||||
msgstr "此命令切換對本地軌道音頻播放的支持。 如: `/mnt/data/my_super_funky_track.mp3`; 禁用此功能將使機器人無法播放任何本地曲目內容。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:144
|
||||
#: redbot/cogs/audio/core/events/dpy.py:147
|
||||
msgid "This command toggles the support of SoundCloud playback. An example is <https://soundcloud.com/user-103858850/tilla>; disabling this will make the bot unable to play any SoundCloud content."
|
||||
msgstr "此命令切換對 SoundCloud 的播放支持。 如: <https://soundcloud.com/user-103858850/tilla>; 禁用此功能將使機器人無法播放任何 SoundCloud 內容。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:149
|
||||
#: redbot/cogs/audio/core/events/dpy.py:152
|
||||
msgid "This command toggles the support of YouTube playback (Spotify depends on YouTube). Disabling this will make the bot unable to play any YouTube content: this includes Spotify."
|
||||
msgstr "此命令切換對 YouTube 的播放支持(Spotify 取決於 YouTube)。 禁用此功能將使機器人無法播放任何 YouTube 內容,包括 Spotify。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:154
|
||||
#: redbot/cogs/audio/core/events/dpy.py:157
|
||||
msgid "This command toggles the support of Twitch playback. An example of this is <https://twitch.tv/monstercat>; disabling this will make the bot unable to play any Twitch content."
|
||||
msgstr "此命令切換對 Twitch 的播放支持。 如: <https://twitch.tv/monstercat>; 禁用此功能將使機器人無法播放任何 Twitch 內容。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:159
|
||||
#: redbot/cogs/audio/core/events/dpy.py:162
|
||||
msgid "This command toggles the support of Vimeo playback. An example of this is <https://vimeo.com/157743578>; disabling this will make the bot unable to play any Vimeo content."
|
||||
msgstr "此命令切換對 Vimeo 的播放支持。 如: <https://vimeo.com/157743578>; 禁用此功能將使機器人無法播放任何 Vimeo 內容。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:164
|
||||
#: redbot/cogs/audio/core/events/dpy.py:167
|
||||
msgid "This setting controls the managed node's framebuffer, do not change this unless instructed."
|
||||
msgstr "此設置控制受管節點的幀緩衝區,除非有官方指示,否則不要更改此設置。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:168
|
||||
#: redbot/cogs/audio/core/events/dpy.py:171
|
||||
msgid "This setting controls the managed node's JDA-NAS buffer, do not change this unless instructed."
|
||||
msgstr "此設置控制受管節點的 JDA-NAS 緩衝區,除非有官方指示,否則不要更改此設置。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:172
|
||||
#: redbot/cogs/audio/core/events/dpy.py:175
|
||||
msgid "This command will reset every setting changed by `[p]llset`."
|
||||
msgstr "此指令將重置由 `[p]llset` 更改的所有設定值。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:189
|
||||
#: redbot/cogs/audio/core/events/dpy.py:192
|
||||
msgid "You have attempted to run Audio's managed Lavalink node on an unsupported architecture. Only settings related commands will be available."
|
||||
msgstr "您已嘗試在不受支持的架構上運行託管Audio的 Lavalink 節點。 目前只有與設置相關的命令可用。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:211
|
||||
#: redbot/cogs/audio/core/events/dpy.py:214
|
||||
msgid "I'm missing permissions to send messages in this server. Please address this as soon as possible."
|
||||
msgstr "我缺少在此伺務器中發送消息的權限。 請盡快解決這個問題。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:237
|
||||
#: redbot/cogs/audio/core/events/dpy.py:240
|
||||
msgid "I'm missing permissions in this server, Please address this as soon as possible.\n\n"
|
||||
"Expected Permissions:\n"
|
||||
msgstr "我缺少此伺務器的權限,請盡快解決此問題。\n\n"
|
||||
"預期權限:\n"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Enabled"
|
||||
msgstr "已啟用"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:244
|
||||
#: redbot/cogs/audio/core/events/dpy.py:247
|
||||
msgid "Disabled"
|
||||
msgstr "已停用"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:275
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
msgid "You should not be running this command."
|
||||
msgstr "您不應該使用此指令。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:278
|
||||
#: redbot/cogs/audio/core/events/dpy.py:281
|
||||
msgid "\n"
|
||||
"{template}\n"
|
||||
"If you wish to continue, enter this case sensitive token without spaces as your next message.\n\n"
|
||||
@@ -327,58 +339,58 @@ msgstr "\n"
|
||||
"如果您想繼續,請輸入這個不帶空格區分大小寫的令牌作為您的下一條消息。\n\n"
|
||||
"{confirm_token}"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:326
|
||||
#: redbot/cogs/audio/core/events/dpy.py:329
|
||||
msgid "No DJ role found. Disabling DJ mode."
|
||||
msgstr "沒有找到DJ身分組。 自動停用DJ模式中。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:336
|
||||
#: redbot/cogs/audio/core/events/dpy.py:339
|
||||
msgid "`{user_input}` is not a valid value for `{command}`"
|
||||
msgstr "`{user_input}` 不是 `{command}` 的有效數值"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:344
|
||||
#: redbot/cogs/audio/core/events/dpy.py:347
|
||||
msgid "Unable To Parse Argument"
|
||||
msgstr "無法分析參數"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:356
|
||||
#: redbot/cogs/audio/core/events/dpy.py:365
|
||||
#: redbot/cogs/audio/core/events/dpy.py:359
|
||||
#: redbot/cogs/audio/core/events/dpy.py:368
|
||||
msgid "Invalid Argument"
|
||||
msgstr "無效的參數"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:357
|
||||
#: redbot/cogs/audio/core/events/dpy.py:360
|
||||
msgid "The argument you gave for `{}` is not valid: I was expecting a `{}`."
|
||||
msgstr "您為 `{}` 提供的參數無效:我支持的是 `{}`。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:375
|
||||
#: redbot/cogs/audio/core/events/dpy.py:378
|
||||
msgid "Invalid Environment"
|
||||
msgstr "無效的環境。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:376
|
||||
#: redbot/cogs/audio/core/events/dpy.py:379
|
||||
msgid "Connection to Lavalink node has been lost."
|
||||
msgstr "與 Lavalink 節點的連接已丟失。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:384
|
||||
#: redbot/cogs/audio/core/events/dpy.py:387
|
||||
msgid "No Player Available"
|
||||
msgstr "沒有可用的播放器"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:385
|
||||
#: redbot/cogs/audio/core/events/dpy.py:388
|
||||
msgid "The bot is not connected to a voice channel."
|
||||
msgstr "機器人未連接到語音頻道。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:393
|
||||
#: redbot/cogs/audio/core/events/dpy.py:396
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:183
|
||||
msgid "Unable to Get Track"
|
||||
msgstr "無法獲取歌曲。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:394
|
||||
#: redbot/cogs/audio/core/events/dpy.py:397
|
||||
#: redbot/cogs/audio/core/events/lavalink.py:184
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
msgstr "我目前無法從 Lavalink 節點獲取曲目,請過幾分鐘再試。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:405
|
||||
#: redbot/cogs/audio/core/events/dpy.py:408
|
||||
msgid "There was an issue communicating with Discord."
|
||||
msgstr "與 Discord 通信時出現問題。"
|
||||
|
||||
#: redbot/cogs/audio/core/events/dpy.py:406
|
||||
#: redbot/cogs/audio/core/events/dpy.py:409
|
||||
msgid "This error has been reported to the bot owner."
|
||||
msgstr "此錯誤已報告給機器人所有者。"
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@ msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/tasks/startup.py:273
|
||||
msgid "Couldn't get a valid track."
|
||||
msgstr ""
|
||||
msgstr "Kon geen geldige track ophalen."
|
||||
|
||||
#: redbot/cogs/audio/core/tasks/startup.py:281
|
||||
msgid "Unable to Get Track"
|
||||
msgstr ""
|
||||
msgstr "Kan track niet ophalen"
|
||||
|
||||
#: redbot/cogs/audio/core/tasks/startup.py:282
|
||||
msgid "I'm unable to get a track from the Lavalink node at the moment, try again in a few minutes."
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-08-01 03:00+0000\n"
|
||||
"POT-Creation-Date: 2025-09-26 17:45+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Arabic\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -46,13 +46,13 @@ msgid "Connection to Lavalink node has not yet been established."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/utilities/formatting.py:116
|
||||
#: redbot/cogs/audio/core/utilities/player.py:442
|
||||
#: redbot/cogs/audio/core/utilities/player.py:524
|
||||
msgid "Queue size limit reached."
|
||||
msgid "Unable To Play Tracks"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/utilities/formatting.py:116
|
||||
msgid "Unable To Play Tracks"
|
||||
#: redbot/cogs/audio/core/utilities/player.py:442
|
||||
#: redbot/cogs/audio/core/utilities/player.py:524
|
||||
msgid "Queue size limit reached."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/utilities/formatting.py:154
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-08-01 03:00+0000\n"
|
||||
"POT-Creation-Date: 2025-09-26 17:45+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -46,13 +46,13 @@ msgid "Connection to Lavalink node has not yet been established."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/utilities/formatting.py:116
|
||||
#: redbot/cogs/audio/core/utilities/player.py:442
|
||||
#: redbot/cogs/audio/core/utilities/player.py:524
|
||||
msgid "Queue size limit reached."
|
||||
msgid "Unable To Play Tracks"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/utilities/formatting.py:116
|
||||
msgid "Unable To Play Tracks"
|
||||
#: redbot/cogs/audio/core/utilities/player.py:442
|
||||
#: redbot/cogs/audio/core/utilities/player.py:524
|
||||
msgid "Queue size limit reached."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/audio/core/utilities/formatting.py:154
|
||||
|
||||