1
0
Fork 0

Merging upstream version 2.1.2~dev0+20231127.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-17 07:42:44 +01:00
parent e8cfe7bc1f
commit 11f26e4026
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
439 changed files with 3622 additions and 2691 deletions

View file

@ -84,12 +84,13 @@ jobs:
run: | run: |
pyinstaller --clean delugewin.spec --distpath freeze pyinstaller --clean delugewin.spec --distpath freeze
- name: Fix OpenSSL for libtorrent x64 - name: Verify Deluge exes
if: ${{ matrix.arch == 'x64' }} working-directory: packaging/win/freeze/Deluge/
working-directory: packaging/win/freeze/Deluge
run: | run: |
cp libssl-1_1.dll libssl-1_1-x64.dll deluge-debug.exe -v
cp libcrypto-1_1.dll libcrypto-1_1-x64.dll deluged-debug.exe -v
deluge-web-debug.exe -v
deluge-console -v
- name: Make Deluge Installer - name: Make Deluge Installer
working-directory: ./packaging/win working-directory: ./packaging/win

View file

@ -37,7 +37,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
pip install --upgrade pip wheel setuptools pip install --upgrade pip wheel setuptools
pip install -r requirements.txt -r requirements-tests.txt pip install -r requirements-ci.txt
pip install -e . pip install -e .
- name: Install security dependencies - name: Install security dependencies
@ -92,7 +92,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
pip install --upgrade pip wheel setuptools pip install --upgrade pip wheel setuptools
pip install -r requirements.txt -r requirements-tests.txt pip install -r requirements-ci.txt
pip install -e . pip install -e .
- name: Test with pytest - name: Test with pytest

View file

@ -423,25 +423,31 @@ def translate_size_units():
def fsize(fsize_b, precision=1, shortform=False): def fsize(fsize_b, precision=1, shortform=False):
"""Formats the bytes value into a string with KiB, MiB or GiB units. """Formats the bytes value into a string with KiB, MiB, GiB or TiB units.
Args: Args:
fsize_b (int): The filesize in bytes. fsize_b (int): The filesize in bytes.
precision (int): The filesize float precision. precision (int): The output float precision, 1 by default.
shortform (bool): The output short|long form, False (long form) by default.
Returns: Returns:
str: A formatted string in KiB, MiB or GiB units. str: A formatted string in KiB, MiB, GiB or TiB units.
Examples: Examples:
>>> fsize(112245) >>> fsize(112245)
'109.6 KiB' '109.6 KiB'
>>> fsize(112245, precision=0) >>> fsize(112245, precision=0)
'110 KiB' '110 KiB'
>>> fsize(112245, shortform=True)
'109.6 K'
Note: Note:
This function has been refactored for performance with the This function has been refactored for performance with the
fsize units being translated outside the function. fsize units being translated outside the function.
Notice that short forms K|M|G|T are synonymous here with
KiB|MiB|GiB|TiB. They are powers of 1024, not 1000.
""" """
if fsize_b >= 1024**4: if fsize_b >= 1024**4:
@ -477,7 +483,7 @@ def fpcnt(dec, precision=2):
Args: Args:
dec (float): The ratio in the range [0.0, 1.0]. dec (float): The ratio in the range [0.0, 1.0].
precision (int): The percentage float precision. precision (int): The output float precision, 2 by default.
Returns: Returns:
str: A formatted string representing a percentage. str: A formatted string representing a percentage.
@ -501,6 +507,8 @@ def fspeed(bps, precision=1, shortform=False):
Args: Args:
bps (int): The speed in bytes per second. bps (int): The speed in bytes per second.
precision (int): The output float precision, 1 by default.
shortform (bool): The output short|long form, False (long form) by default.
Returns: Returns:
str: A formatted string representing transfer speed. str: A formatted string representing transfer speed.
@ -509,6 +517,10 @@ def fspeed(bps, precision=1, shortform=False):
>>> fspeed(43134) >>> fspeed(43134)
'42.1 KiB/s' '42.1 KiB/s'
Note:
Notice that short forms K|M|G|T are synonymous here with
KiB|MiB|GiB|TiB. They are powers of 1024, not 1000.
""" """
if bps < 1024**2: if bps < 1024**2:
@ -545,7 +557,7 @@ def fpeer(num_peers, total_peers):
total_peers (int): The total number of peers. total_peers (int): The total number of peers.
Returns: Returns:
str: A formatted string 'num_peers (total_peers)' or total_peers < 0, just 'num_peers'. str: A formatted string 'num_peers (total_peers)' or if total_peers < 0, just 'num_peers'.
Examples: Examples:
>>> fpeer(10, 20) >>> fpeer(10, 20)
@ -594,16 +606,16 @@ def ftime(secs):
time_str = f'{secs // 604800}w {secs // 86400 % 7}d' time_str = f'{secs // 604800}w {secs // 86400 % 7}d'
else: else:
time_str = f'{secs // 31449600}y {secs // 604800 % 52}w' time_str = f'{secs // 31449600}y {secs // 604800 % 52}w'
return time_str return time_str
def fdate(seconds, date_only=False, precision_secs=False): def fdate(seconds, date_only=False, precision_secs=False):
"""Formats a date time string in the locale's date representation based on the systems timezone. """Formats a date time string in the locale's date representation based on the system's timezone.
Args: Args:
seconds (float): Time in seconds since the Epoch. seconds (float): Time in seconds since the Epoch.
precision_secs (bool): Include seconds in time format. date_only (bool): Whether to include only the date, False by default.
precision_secs (bool): Include seconds in time format, False by default.
Returns: Returns:
str: A string in the locale's datetime representation or "" if seconds < 0 str: A string in the locale's datetime representation or "" if seconds < 0
@ -628,10 +640,14 @@ def tokenize(text):
Returns: Returns:
list: A list of strings and/or numbers. list: A list of strings and/or numbers.
This function is used to implement robust tokenization of user input Note:
It automatically coerces integer and floating point numbers, ignores This function is used to implement robust tokenization of user input
whitespace and knows how to separate numbers from strings even without It automatically coerces integer and floating point numbers, ignores
whitespace. whitespace and knows how to separate numbers from strings even without
whitespace.
Possible optimization: move the 2 regexes outside of function.
""" """
tokenized_input = [] tokenized_input = []
for token in re.split(r'(\d+(?:\.\d+)?)', text): for token in re.split(r'(\d+(?:\.\d+)?)', text):
@ -652,12 +668,16 @@ def tokenize(text):
{'prefix': 'GiB', 'divider': 1024**3}, {'prefix': 'GiB', 'divider': 1024**3},
{'prefix': 'TiB', 'divider': 1024**4}, {'prefix': 'TiB', 'divider': 1024**4},
{'prefix': 'PiB', 'divider': 1024**5}, {'prefix': 'PiB', 'divider': 1024**5},
{'prefix': 'k', 'divider': 1000**1},
{'prefix': 'm', 'divider': 1000**2},
{'prefix': 'g', 'divider': 1000**3},
{'prefix': 't', 'divider': 1000**4},
{'prefix': 'p', 'divider': 1000**5},
{'prefix': 'KB', 'divider': 1000**1}, {'prefix': 'KB', 'divider': 1000**1},
{'prefix': 'MB', 'divider': 1000**2}, {'prefix': 'MB', 'divider': 1000**2},
{'prefix': 'GB', 'divider': 1000**3}, {'prefix': 'GB', 'divider': 1000**3},
{'prefix': 'TB', 'divider': 1000**4}, {'prefix': 'TB', 'divider': 1000**4},
{'prefix': 'PB', 'divider': 1000**5}, {'prefix': 'PB', 'divider': 1000**5},
{'prefix': 'm', 'divider': 1000**2},
] ]
@ -841,7 +861,7 @@ def create_magnet_uri(infohash, name=None, trackers=None):
Args: Args:
infohash (str): The info-hash of the torrent. infohash (str): The info-hash of the torrent.
name (str, optional): The name of the torrent. name (str, optional): The name of the torrent.
trackers (list or dict, optional): A list of trackers or dict or {tracker: tier} pairs. trackers (list or dict, optional): A list of trackers or a dict or some {tracker: tier} pairs.
Returns: Returns:
str: A magnet URI string. str: A magnet URI string.

View file

@ -64,9 +64,9 @@ class Component:
paused by instructing the :class:`ComponentRegistry` to pause paused by instructing the :class:`ComponentRegistry` to pause
this Component. this Component.
**pause()** - This method is called when the component is being paused. **pause()** - This method is called when the component is being paused.
**resume()** - This method is called when the component resumes from a Paused **resume()** - This method is called when the component resumes from a Paused
state. state.
**shutdown()** - This method is called when the client is exiting. If the **shutdown()** - This method is called when the client is exiting. If the
@ -85,7 +85,7 @@ class Component:
**Stopped** - The Component has either been stopped or has yet to be started. **Stopped** - The Component has either been stopped or has yet to be started.
**Stopping** - The Component has had it's stop method called, but it hasn't **Stopping** - The Component has had its stop method called, but it hasn't
fully stopped yet. fully stopped yet.
**Paused** - The Component has had its update timer stopped, but will **Paused** - The Component has had its update timer stopped, but will

View file

@ -12,7 +12,7 @@
import pytest_twisted import pytest_twisted
from twisted.internet import reactor from twisted.internet import reactor
from twisted.internet.defer import Deferred, maybeDeferred from twisted.internet.defer import Deferred, maybeDeferred
from twisted.internet.error import CannotListenError from twisted.internet.error import CannotListenError, ProcessTerminated
from twisted.python.failure import Failure from twisted.python.failure import Failure
import deluge.component as _component import deluge.component as _component
@ -42,11 +42,13 @@ def mock_callback():
The returned Mock instance will have a `deferred` attribute which will complete when the callback has been called. The returned Mock instance will have a `deferred` attribute which will complete when the callback has been called.
""" """
def reset(): def reset(timeout=0.5, *args, **kwargs):
if mock.called: if mock.called:
original_reset_mock() original_reset_mock(*args, **kwargs)
deferred = Deferred() if mock.deferred:
deferred.addTimeout(0.5, reactor) mock.deferred.cancel()
deferred = Deferred(canceller=lambda x: deferred.callback(None))
deferred.addTimeout(timeout, reactor)
mock.side_effect = lambda *args, **kw: deferred.callback((args, kw)) mock.side_effect = lambda *args, **kw: deferred.callback((args, kw))
mock.deferred = deferred mock.deferred = deferred
@ -118,7 +120,10 @@ async def daemon(request, config_dir, tmp_path):
raise exception_error raise exception_error
daemon.listen_port = listen_port daemon.listen_port = listen_port
yield daemon yield daemon
await daemon.kill() try:
await daemon.kill()
except ProcessTerminated:
pass
@pytest.fixture(autouse=True) @pytest.fixture(autouse=True)

View file

@ -16,11 +16,11 @@
""" """
import contextlib import contextlib
import logging import logging
import threading
from collections import defaultdict from collections import defaultdict
from types import SimpleNamespace
from typing import Any, Callable from typing import Any, Callable
from twisted.internet import reactor from twisted.internet import reactor, threads
import deluge.component as component import deluge.component as component
from deluge._libtorrent import lt from deluge._libtorrent import lt
@ -34,7 +34,7 @@ class AlertManager(component.Component):
def __init__(self): def __init__(self):
log.debug('AlertManager init...') log.debug('AlertManager init...')
component.Component.__init__(self, 'AlertManager', interval=0.3) component.Component.__init__(self, 'AlertManager')
self.session = component.get('Core').session self.session = component.get('Core').session
# Increase the alert queue size so that alerts don't get lost. # Increase the alert queue size so that alerts don't get lost.
@ -56,18 +56,73 @@ def __init__(self):
# handlers is a dictionary of lists {"alert_type": [handler1,h2,..]} # handlers is a dictionary of lists {"alert_type": [handler1,h2,..]}
self.handlers = defaultdict(list) self.handlers = defaultdict(list)
self.handlers_retry_timeout = 0.3
self.handlers_retry_count = 6
self.delayed_calls = [] self.delayed_calls = []
self._event = threading.Event()
def update(self): def update(self):
self.delayed_calls = [dc for dc in self.delayed_calls if dc.active()] pass
self.handle_alerts()
def start(self):
thread = threading.Thread(
target=self.wait_for_alert_in_thread, name='alert-poller', daemon=True
)
thread.start()
self._event.set()
def stop(self): def stop(self):
self.cancel_delayed_calls()
def pause(self):
self._event.clear()
def resume(self):
self._event.set()
def wait_for_alert_in_thread(self):
while self._component_state not in ('Stopping', 'Stopped'):
if self.session.wait_for_alert(1000) is None:
continue
if self._event.wait():
threads.blockingCallFromThread(reactor, self.maybe_handle_alerts)
def cancel_delayed_calls(self):
"""Cancel all delayed handlers."""
for delayed_call in self.delayed_calls: for delayed_call in self.delayed_calls:
if delayed_call.active(): if delayed_call.active():
delayed_call.cancel() delayed_call.cancel()
self.delayed_calls = [] self.delayed_calls = []
def check_delayed_calls(self, retries: int = 0) -> bool:
"""Returns True if any handler calls are delayed (upto retry limit)."""
self.delayed_calls = [dc for dc in self.delayed_calls if dc.active()]
if not self.delayed_calls:
return False
if retries > self.handlers_retry_count:
log.warning(
'Alert handlers timeout reached, cancelling: %s', self.delayed_calls
)
self.cancel_delayed_calls()
return False
return True
def maybe_handle_alerts(self, retries: int = 0) -> None:
if self._component_state != 'Started':
return
if self.check_delayed_calls(retries):
log.debug('Waiting for delayed alerts: %s', self.delayed_calls)
retries += 1
reactor.callLater(
self.handlers_retry_timeout, self.maybe_handle_alerts, retries
)
return
self.handle_alerts()
def register_handler(self, alert_type: str, handler: Callable[[Any], None]) -> None: def register_handler(self, alert_type: str, handler: Callable[[Any], None]) -> None:
""" """
Registers a function that will be called when 'alert_type' is pop'd Registers a function that will be called when 'alert_type' is pop'd
@ -128,21 +183,7 @@ def handle_alerts(self):
if log.isEnabledFor(logging.DEBUG): if log.isEnabledFor(logging.DEBUG):
log.debug('Handling alert: %s', alert_type) log.debug('Handling alert: %s', alert_type)
alert_copy = self.create_alert_copy(alert) self.delayed_calls.append(reactor.callLater(0, handler, alert))
self.delayed_calls.append(reactor.callLater(0, handler, alert_copy))
@staticmethod
def create_alert_copy(alert):
"""Create a Python copy of libtorrent alert
Avoid segfault if an alert is handled after next pop_alert call"""
return SimpleNamespace(
**{
attr: getattr(alert, attr)
for attr in dir(alert)
if not attr.startswith('__')
}
)
def set_alert_queue_size(self, queue_size): def set_alert_queue_size(self, queue_size):
"""Sets the maximum size of the libtorrent alert queue""" """Sets the maximum size of the libtorrent alert queue"""

View file

@ -12,17 +12,16 @@
import os import os
import shutil import shutil
import tempfile import tempfile
import threading
from base64 import b64decode, b64encode from base64 import b64decode, b64encode
from typing import Any, Dict, List, Optional, Tuple, Union from typing import Any, Dict, List, Optional, Tuple, Union
from urllib.request import URLError, urlopen from urllib.request import URLError, urlopen
from twisted.internet import defer, reactor, task from twisted.internet import defer, reactor, task, threads
from twisted.web.client import Agent, readBody from twisted.web.client import Agent, readBody
import deluge.common import deluge.common
import deluge.component as component import deluge.component as component
from deluge import path_chooser_common from deluge import metafile, path_chooser_common
from deluge._libtorrent import LT_VERSION, lt from deluge._libtorrent import LT_VERSION, lt
from deluge.configmanager import ConfigManager, get_config_dir from deluge.configmanager import ConfigManager, get_config_dir
from deluge.core.alertmanager import AlertManager from deluge.core.alertmanager import AlertManager
@ -992,30 +991,33 @@ def create_torrent(
path, path,
tracker, tracker,
piece_length, piece_length,
comment, comment=None,
target, target=None,
webseeds, webseeds=None,
private, private=False,
created_by, created_by=None,
trackers, trackers=None,
add_to_session, add_to_session=False,
torrent_format=metafile.TorrentFormat.V1,
): ):
if isinstance(torrent_format, str):
torrent_format = metafile.TorrentFormat(torrent_format)
log.debug('creating torrent..') log.debug('creating torrent..')
threading.Thread( return threads.deferToThread(
target=self._create_torrent_thread, self._create_torrent_thread,
args=( path,
path, tracker,
tracker, piece_length,
piece_length, comment=comment,
comment, target=target,
target, webseeds=webseeds,
webseeds, private=private,
private, created_by=created_by,
created_by, trackers=trackers,
trackers, add_to_session=add_to_session,
add_to_session, torrent_format=torrent_format,
), )
).start()
def _create_torrent_thread( def _create_torrent_thread(
self, self,
@ -1029,27 +1031,41 @@ def _create_torrent_thread(
created_by, created_by,
trackers, trackers,
add_to_session, add_to_session,
torrent_format,
): ):
from deluge import metafile from deluge import metafile
metafile.make_meta_file( filecontent = metafile.make_meta_file_content(
path, path,
tracker, tracker,
piece_length, piece_length,
comment=comment, comment=comment,
target=target,
webseeds=webseeds, webseeds=webseeds,
private=private, private=private,
created_by=created_by, created_by=created_by,
trackers=trackers, trackers=trackers,
torrent_format=torrent_format,
) )
write_file = False
if target or not add_to_session:
write_file = True
if not target:
target = metafile.default_meta_file_path(path)
filename = os.path.split(target)[-1]
if write_file:
with open(target, 'wb') as _file:
_file.write(filecontent)
filedump = b64encode(filecontent)
log.debug('torrent created!') log.debug('torrent created!')
if add_to_session: if add_to_session:
options = {} options = {}
options['download_location'] = os.path.split(path)[0] options['download_location'] = os.path.split(path)[0]
with open(target, 'rb') as _file: self.add_torrent_file(filename, filedump, options)
filedump = b64encode(_file.read()) return filename, filedump
self.add_torrent_file(os.path.split(target)[1], filedump, options)
@export @export
def upload_plugin(self, filename: str, filedump: Union[str, bytes]) -> None: def upload_plugin(self, filename: str, filedump: Union[str, bytes]) -> None:

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

File diff suppressed because it is too large Load diff

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: deluge\n" "Project-Id-Version: deluge\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2019-11-12 14:55+0000\n" "POT-Creation-Date: 2019-11-12 14:55+0000\n"
"PO-Revision-Date: 2019-12-30 00:59+0000\n" "PO-Revision-Date: 2022-12-21 00:21+0000\n"
"Last-Translator: Pere Orga <Unknown>\n" "Last-Translator: Pere Orga <Unknown>\n"
"Language-Team: Catalan <ca@li.org>\n" "Language-Team: Catalan <ca@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"
@ -1210,7 +1210,7 @@ msgstr "Namíbia"
#: deluge/ui/countries.py:162 #: deluge/ui/countries.py:162
msgid "Nauru" msgid "Nauru"
msgstr "Nauru" msgstr "nauruà"
#: deluge/ui/countries.py:163 #: deluge/ui/countries.py:163
msgid "Nepal" msgid "Nepal"
@ -1482,7 +1482,7 @@ msgstr "Togo"
#: deluge/ui/countries.py:230 #: deluge/ui/countries.py:230
msgid "Tokelau" msgid "Tokelau"
msgstr "Tokelau" msgstr "tokelauès"
#: deluge/ui/countries.py:231 #: deluge/ui/countries.py:231
msgid "Tonga" msgid "Tonga"
@ -1800,7 +1800,7 @@ msgstr ""
"Aquest programa és programari lliure (\"free software\" en anglès); podeu " "Aquest programa és programari lliure (\"free software\" en anglès); podeu "
"redistribuir-lo i/o modificar-lo sota els termes de la llicència GNU Public " "redistribuir-lo i/o modificar-lo sota els termes de la llicència GNU Public "
"License tal com està publicada per la Free Software Foundation; ja sigui la " "License tal com està publicada per la Free Software Foundation; ja sigui la "
"versió 3 de la llicència, o (a la vostra decisió) qualsevol altre versió " "versió 3 de la llicència, o (a la vostra decisió) qualsevol altra versió "
"posterior.\n" "posterior.\n"
"Aquest programari es distribueix amb l'esperança de que serà útil, però " "Aquest programari es distribueix amb l'esperança de que serà útil, però "
"SENSE CAP GARANTIA; fins i tot sense la garantia implícita de " "SENSE CAP GARANTIA; fins i tot sense la garantia implícita de "
@ -1841,7 +1841,7 @@ msgstr "Afegeix els torrents (%d)"
#: deluge/ui/gtk3/addtorrentdialog.py:238 #: deluge/ui/gtk3/addtorrentdialog.py:238
msgid "Duplicate torrent(s)" msgid "Duplicate torrent(s)"
msgstr "Torrent(s) duplicat(s)." msgstr "Torrent(s) duplicat(s)"
#: deluge/ui/gtk3/addtorrentdialog.py:240 #: deluge/ui/gtk3/addtorrentdialog.py:240
#, python-format #, python-format
@ -1870,11 +1870,11 @@ msgstr "Seleccioneu un fitxer .torrent"
#: deluge/ui/gtk3/addtorrentdialog.py:777 #: deluge/ui/gtk3/addtorrentdialog.py:777
msgid "Invalid URL" msgid "Invalid URL"
msgstr "URL invàlida" msgstr "L'URL no és vàlid"
#: deluge/ui/gtk3/addtorrentdialog.py:778 #: deluge/ui/gtk3/addtorrentdialog.py:778
msgid "is not a valid URL." msgid "is not a valid URL."
msgstr "no és una URL vàlida." msgstr "no és un URL vàlid."
#: deluge/ui/gtk3/addtorrentdialog.py:784 #: deluge/ui/gtk3/addtorrentdialog.py:784
msgid "Downloading..." msgid "Downloading..."
@ -1975,7 +1975,7 @@ msgstr "_Afegeix"
#: deluge/ui/gtk3/dialogs.py:289 #: deluge/ui/gtk3/dialogs.py:289
msgid "Authentication Level:" msgid "Authentication Level:"
msgstr "Nivel d'autenticació" msgstr "Nivel d'autenticació:"
#: deluge/ui/gtk3/dialogs.py:423 #: deluge/ui/gtk3/dialogs.py:423
msgid "Password Protected" msgid "Password Protected"
@ -2296,7 +2296,7 @@ msgstr "Error en afegir l'amfitrió"
#: deluge/ui/gtk3/connectionmanager.py:464 #: deluge/ui/gtk3/connectionmanager.py:464
msgid "Error Updating Host" msgid "Error Updating Host"
msgstr "Ha fallat l'actualització del l'amfitrió" msgstr "Ha fallat l'actualització de l'amfitrió"
#: deluge/ui/gtk3/preferences.py:131 #: deluge/ui/gtk3/preferences.py:131
#: deluge/ui/console/cmdline/commands/connect.py:33 #: deluge/ui/console/cmdline/commands/connect.py:33
@ -2535,8 +2535,8 @@ msgid ""
"Add one or more torrent files, torrent URLs or magnet URIs to a currently " "Add one or more torrent files, torrent URLs or magnet URIs to a currently "
"running Deluge GTK instance" "running Deluge GTK instance"
msgstr "" msgstr ""
"Afegeix un o més fitxers torrent, URLs de fitxers torrent URIs magnet a una " "Afegeix un o més fitxers torrent, URLs de fitxers torrent o URIs magnet a "
"instància en execució del Deluge GTK." "una instància GTK en execució del Deluge"
#: deluge/ui/gtk3/glade/create_torrent_dialog.progress.ui.h:1 #: deluge/ui/gtk3/glade/create_torrent_dialog.progress.ui.h:1
msgid "Creating Torrent" msgid "Creating Torrent"
@ -3064,7 +3064,7 @@ msgstr "Diàleg «Afegeix torrents»"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:71 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:71
msgid "Connection Attempts per Second:" msgid "Connection Attempts per Second:"
msgstr "Intents de connexió per segon" msgstr "Intents de connexió per segon:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:72 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:72
msgid "Half-Open Connections:" msgid "Half-Open Connections:"
@ -3137,7 +3137,7 @@ msgid ""
"to avoid exceeding the limits with the total traffic" "to avoid exceeding the limits with the total traffic"
msgstr "" msgstr ""
"Si es marca, la sobrecàrrega TCP/IP estimada no es tindrà en compte en els " "Si es marca, la sobrecàrrega TCP/IP estimada no es tindrà en compte en els "
"límits de relació, per tal d'evitar excedir els límits amb el trànsit total." "límits de relació, per tal d'evitar excedir els límits amb el trànsit total"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:85 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:85
msgid "Global Bandwidth Limits" msgid "Global Bandwidth Limits"
@ -3442,7 +3442,7 @@ msgstr "Clients del servidor intermediari"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:144 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:144
msgid "Proxy peer and web seed connections." msgid "Proxy peer and web seed connections."
msgstr "Connexions de clients del servidor intermediari i de llavors web" msgstr "Connexions de clients del servidor intermediari i de llavors web."
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:145 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:145
#: deluge/ui/console/modes/preferences/preference_panes.py:665 #: deluge/ui/console/modes/preferences/preference_panes.py:665
@ -3726,7 +3726,7 @@ msgstr "_Troba'n més..."
#: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:4 #: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:4
msgid "Remove the selected torrent(s)?" msgid "Remove the selected torrent(s)?"
msgstr "Voleu suprimit els torrents seleccionats?" msgstr "Voleu suprimir els torrents seleccionats?"
#: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:5 #: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:5
msgid "Include downloaded files" msgid "Include downloaded files"
@ -3961,7 +3961,7 @@ msgstr "Nova versió"
#: deluge/ui/gtk3/glade/main_window.new_release.ui.h:3 #: deluge/ui/gtk3/glade/main_window.new_release.ui.h:3
msgid "_Goto Website" msgid "_Goto Website"
msgstr "_Vés al lloc web" msgstr "_Ves al lloc web"
#: deluge/ui/gtk3/glade/main_window.new_release.ui.h:4 #: deluge/ui/gtk3/glade/main_window.new_release.ui.h:4
msgid "New Release Available!" msgid "New Release Available!"
@ -4405,7 +4405,7 @@ msgstr "Conti_nua"
#: deluge/ui/gtk3/glade/torrent_menu.ui.h:4 #: deluge/ui/gtk3/glade/torrent_menu.ui.h:4
#: deluge/ui/gtk3/glade/filtertree_menu.ui.h:4 #: deluge/ui/gtk3/glade/filtertree_menu.ui.h:4
msgid "Resume selected torrents." msgid "Resume selected torrents."
msgstr "Continua amb els torrents seleccionats" msgstr "Reprèn els torrents seleccionats."
#: deluge/ui/gtk3/glade/torrent_menu.ui.h:5 #: deluge/ui/gtk3/glade/torrent_menu.ui.h:5
msgid "Opt_ions" msgid "Opt_ions"
@ -4561,11 +4561,11 @@ msgid ""
"of the features provided." "of the features provided."
msgstr "" msgstr ""
"El Deluge conté les funcions comunes dels clients BitTorrent, com ara el " "El Deluge conté les funcions comunes dels clients BitTorrent, com ara el "
"xifratge del protocol, DHT, descobriment de clients locals (LSD), " "xifratge del protocol, DHT, descobriment de clients locals (LSD), intercanvi "
"intercanvi de clients (PEX), UPnP, NAT-PMP, suport per servidors " "de clients (PEX), UPnP, NAT-PMP, suport per servidors intermediaris, llavors "
"intermediaris, llavors web i límits de velocitat globals i per torrent. El " "web i límits de velocitat globals i per torrent. El Deluge es basa en la "
"Deluge es basa en la biblioteca libtorrent, i per tant incorpora la llista " "biblioteca libtorrent, i, per tant, incorpora la llista completa de les "
"completa de les funcions que proporciona." "funcions que proporciona."
#: deluge/ui/data/share/metainfo/deluge.metainfo.xml.in.h:4 #: deluge/ui/data/share/metainfo/deluge.metainfo.xml.in.h:4
msgid "" msgid ""
@ -4701,7 +4701,8 @@ msgstr ""
#: deluge/ui/console/cmdline/commands/pause.py:29 #: deluge/ui/console/cmdline/commands/pause.py:29
msgid "One or more torrent ids. Use \"*\" to pause all torrents" msgid "One or more torrent ids. Use \"*\" to pause all torrents"
msgstr "" msgstr ""
"Un o més identificadors de torrent. Useu \"*\" per pausar tots els torrents" "Un o més identificadors de torrent. Useu \"*\" per posar en pausa tots els "
"torrents"
#: deluge/ui/console/cmdline/commands/add.py:38 #: deluge/ui/console/cmdline/commands/add.py:38
msgid "Download folder for torrent" msgid "Download folder for torrent"
@ -4745,7 +4746,7 @@ msgid ""
"scripts that want to do their own parsing)" "scripts that want to do their own parsing)"
msgstr "" msgstr ""
"Valors en brut de les velocitats de pujada i baixada (sense el sufix KiB/s) " "Valors en brut de les velocitats de pujada i baixada (sense el sufix KiB/s) "
"(útil per a scripts que vulguin fer el seu propi anàlisi)" "(útil per a scripts que vulguin analitzar-ho)"
#: deluge/ui/console/cmdline/commands/status.py:46 #: deluge/ui/console/cmdline/commands/status.py:46
msgid "Do not show torrent status (Improves command speed)" msgid "Do not show torrent status (Improves command speed)"
@ -4792,7 +4793,7 @@ msgstr "Mostra més informació detallada com ara els fitxers i clients."
#: deluge/ui/console/cmdline/commands/info.py:116 #: deluge/ui/console/cmdline/commands/info.py:116
#, python-format #, python-format
msgid "Show torrents with state STATE: %s." msgid "Show torrents with state STATE: %s."
msgstr "Mostra els torrents amb l'estat: %s" msgstr "Mostra els torrents amb l'estat: %s."
#: deluge/ui/console/cmdline/commands/info.py:132 #: deluge/ui/console/cmdline/commands/info.py:132
msgid "Same as --sort but items are in reverse order." msgid "Same as --sort but items are in reverse order."
@ -4802,7 +4803,7 @@ msgstr "El mateix que --sort però els elements estan amb ordre invers."
msgid "One or more torrent ids. If none is given, list all" msgid "One or more torrent ids. If none is given, list all"
msgstr "" msgstr ""
"Un o més identificadors de torrent. Si no se'n proporciona cap, mostra'ls " "Un o més identificadors de torrent. Si no se'n proporciona cap, mostra'ls "
"tots." "tots"
#: deluge/ui/console/modes/connectionmanager.py:44 #: deluge/ui/console/modes/connectionmanager.py:44
msgid "Select Host" msgid "Select Host"
@ -5116,7 +5117,7 @@ msgstr "L'adreça IP \"%s\" està mal formada"
#: deluge/plugins/Blocklist/deluge_blocklist/webui.py:21 #: deluge/plugins/Blocklist/deluge_blocklist/webui.py:21
msgid "Emule IP list (GZip)" msgid "Emule IP list (GZip)"
msgstr "Llistat de les IP d'Emule (GZip)" msgstr "Llistat d'IPs de l'eMule (GZip)"
#: deluge/plugins/Blocklist/deluge_blocklist/webui.py:22 #: deluge/plugins/Blocklist/deluge_blocklist/webui.py:22
msgid "SafePeer Text (Zipped)" msgid "SafePeer Text (Zipped)"
@ -5281,7 +5282,7 @@ msgstr "Camí"
#: deluge/plugins/AutoAdd/deluge_autoadd/core.py:125 #: deluge/plugins/AutoAdd/deluge_autoadd/core.py:125
msgid "Watch folder does not exist." msgid "Watch folder does not exist."
msgstr "La carpeta vigilada no existeix" msgstr "La carpeta vigilada no existeix."
#: deluge/plugins/AutoAdd/deluge_autoadd/core.py:128 #: deluge/plugins/AutoAdd/deluge_autoadd/core.py:128
#: deluge/plugins/AutoAdd/deluge_autoadd/core.py:443 #: deluge/plugins/AutoAdd/deluge_autoadd/core.py:443
@ -5740,7 +5741,7 @@ msgstr ""
#: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:1 #: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:1
msgid "Tray icon blinks enabled" msgid "Tray icon blinks enabled"
msgstr "El parpadeig de les icones de la safata del sistema està activat" msgstr "El parpelleig de les icones de la safata del sistema està activat"
#: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:2 #: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:2
msgid "Popups enabled" msgid "Popups enabled"
@ -5826,7 +5827,7 @@ msgstr "Torrents actius:"
#: deluge/plugins/Scheduler/deluge_scheduler/gtkui.py:328 #: deluge/plugins/Scheduler/deluge_scheduler/gtkui.py:328
msgid "Active Downloading:" msgid "Active Downloading:"
msgstr "Nombre màxim de connexions actives" msgstr "Nombre de connexions actives:"
#: deluge/plugins/Scheduler/deluge_scheduler/gtkui.py:337 #: deluge/plugins/Scheduler/deluge_scheduler/gtkui.py:337
msgid "Active Seeding:" msgid "Active Seeding:"
@ -6056,7 +6057,7 @@ msgstr "S'ha perdut la connexió amb el servidor web."
#: deluge/ui/web/js/deluge-all/UI.js:160 #: deluge/ui/web/js/deluge-all/UI.js:160
msgid "Lost connection to webserver" msgid "Lost connection to webserver"
msgstr "Connexió al servidor web perduda." msgstr "S'ha perdut la connexió al servidor"
#: deluge/ui/web/js/deluge-all/Menus.js:72 #: deluge/ui/web/js/deluge-all/Menus.js:72
msgid "D/L Speed Limit" msgid "D/L Speed Limit"
@ -6353,7 +6354,7 @@ msgstr "Temps estimat:"
#: deluge/ui/web/render/tab_status.html:26 #: deluge/ui/web/render/tab_status.html:26
msgid "Date Added:" msgid "Date Added:"
msgstr "Data d'addició" msgstr "Data d'addició:"
#~ msgid "<b>Language</b>" #~ msgid "<b>Language</b>"
#~ msgstr "<b>Idioma</b>" #~ msgstr "<b>Idioma</b>"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: deluge\n" "Project-Id-Version: deluge\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2019-11-12 14:55+0000\n" "POT-Creation-Date: 2019-11-12 14:55+0000\n"
"PO-Revision-Date: 2020-02-13 08:19+0000\n" "PO-Revision-Date: 2023-11-06 17:15+0000\n"
"Last-Translator: Dan Cooper <Unknown>\n" "Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
"Language-Team: German <de@li.org>\n" "Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"
@ -1580,7 +1580,7 @@ msgstr "Simbabwe"
#: deluge/ui/ui_entry.py:51 #: deluge/ui/ui_entry.py:51
msgid "UI Options" msgid "UI Options"
msgstr "" msgstr "UI-Optionen"
#: deluge/ui/ui_entry.py:57 #: deluge/ui/ui_entry.py:57
msgid "Set the default UI to be run, when no UI is specified" msgid "Set the default UI to be run, when no UI is specified"
@ -2013,7 +2013,7 @@ msgstr "<b>IP</b> <small>%s</small>"
#: deluge/ui/console/widgets/statusbars.py:121 #: deluge/ui/console/widgets/statusbars.py:121
#: deluge/ui/web/js/deluge-all/Statusbar.js:358 #: deluge/ui/web/js/deluge-all/Statusbar.js:358
msgid "n/a" msgid "n/a"
msgstr "" msgstr "n/v"
#: deluge/ui/gtk3/statusbar.py:220 #: deluge/ui/gtk3/statusbar.py:220
msgid "<b><small>Port Issue</small></b>" msgid "<b><small>Port Issue</small></b>"
@ -2174,7 +2174,7 @@ msgstr ""
#: deluge/ui/gtk3/gtkui.py:350 #: deluge/ui/gtk3/gtkui.py:350
msgid "Change User Interface Mode" msgid "Change User Interface Mode"
msgstr "" msgstr "Benutzeroberflächenmodus ändern"
#: deluge/ui/gtk3/connectionmanager.py:52 #: deluge/ui/gtk3/connectionmanager.py:52
#: deluge/ui/web/js/deluge-all/ConnectionManager.js:56 #: deluge/ui/web/js/deluge-all/ConnectionManager.js:56
@ -2819,7 +2819,7 @@ msgstr "Mit einem Deluge-Daemon verbinden (deluged)"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:22 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:22
msgid "Application Mode" msgid "Application Mode"
msgstr "" msgstr "Anwendungsmodus"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:23 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:23
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:46 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:46
@ -3208,7 +3208,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:108 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:108
#: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:38 #: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:38
msgid "Incoming Address" msgid "Incoming Address"
msgstr "" msgstr "Eingangsadresse"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:109 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:109
msgid "Random" msgid "Random"
@ -3229,7 +3229,7 @@ msgstr "Aktiven Port testen"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:113 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:113
#: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:58 #: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:58
msgid "Incoming Port" msgid "Incoming Port"
msgstr "" msgstr "Eingangsport"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:114 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:114
msgid "" msgid ""
@ -3706,7 +3706,7 @@ msgstr "Pfadeintrag anzeigen"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:6 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:6
msgid "Show file chooser" msgid "Show file chooser"
msgstr "" msgstr "Dateiauswahl anzeigen"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:7 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:7
msgid "Show folder name" msgid "Show folder name"
@ -3762,7 +3762,7 @@ msgstr "Strg+D"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:22 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:22
msgid "Toggle hidden files" msgid "Toggle hidden files"
msgstr "" msgstr "Versteckte Dateien umschalten"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:23 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:23
msgid "Default path" msgid "Default path"
@ -3770,7 +3770,7 @@ msgstr "Standardpfad"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:24 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:24
msgid "Shortcuts" msgid "Shortcuts"
msgstr "" msgstr "Tastenkombinationen"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:25 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:25
msgid "Select a Directory" msgid "Select a Directory"
@ -3813,7 +3813,7 @@ msgstr "Hinzufügen"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:32 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:32
msgid "Add the current entry value to the list" msgid "Add the current entry value to the list"
msgstr "" msgstr "Den aktuellen Eintragswert zur Liste hinzufügen"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:33 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:33
#: deluge/ui/web/js/deluge-all/EditTrackersWindow.js:98 #: deluge/ui/web/js/deluge-all/EditTrackersWindow.js:98
@ -3864,7 +3864,7 @@ msgstr "Datei-Quersumme hinzufügen"
#: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:4 #: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:4
msgid "From Infohash" msgid "From Infohash"
msgstr "" msgstr "Von Infohash"
#: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:5 #: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:5
msgid "Infohash:" msgid "Infohash:"
@ -4018,7 +4018,7 @@ msgstr "Gesamtgröße:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:21 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:21
#: deluge/ui/web/js/deluge-all/details/DetailsTab.js:27 #: deluge/ui/web/js/deluge-all/details/DetailsTab.js:27
msgid "Total Files:" msgid "Total Files:"
msgstr "" msgstr "Dateien insgesamt:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:22 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:22
#: deluge/ui/web/js/deluge-all/details/DetailsTab.js:24 #: deluge/ui/web/js/deluge-all/details/DetailsTab.js:24
@ -4067,7 +4067,7 @@ msgstr "Aktueller Tracker:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:47 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:47
msgid "Total Trackers:" msgid "Total Trackers:"
msgstr "" msgstr "Tracker insgesamt:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:48 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:48
#: deluge/ui/web/render/tab_status.html:6 #: deluge/ui/web/render/tab_status.html:6
@ -4827,7 +4827,7 @@ msgstr "Festplattenspeicher vorbelegen"
#: deluge/ui/console/modes/preferences/preference_panes.py:304 #: deluge/ui/console/modes/preferences/preference_panes.py:304
msgid "Incomming Ports" msgid "Incomming Ports"
msgstr "" msgstr "Eingangsports"
#: deluge/ui/console/modes/preferences/preference_panes.py:313 #: deluge/ui/console/modes/preferences/preference_panes.py:313
#: deluge/ui/console/modes/preferences/preference_panes.py:337 #: deluge/ui/console/modes/preferences/preference_panes.py:337
@ -4846,7 +4846,7 @@ msgstr "Benutze Zufallsports"
#: deluge/ui/console/modes/preferences/preference_panes.py:352 #: deluge/ui/console/modes/preferences/preference_panes.py:352
msgid "Incoming Interface" msgid "Incoming Interface"
msgstr "" msgstr "Eingangsschnittstelle"
#: deluge/ui/console/modes/preferences/preference_panes.py:355 #: deluge/ui/console/modes/preferences/preference_panes.py:355
msgid "IP address of the interface to listen on (leave empty for default):" msgid "IP address of the interface to listen on (leave empty for default):"
@ -4935,7 +4935,7 @@ msgstr "Tauschverhältnis"
#: deluge/ui/console/modes/preferences/preference_panes.py:601 #: deluge/ui/console/modes/preferences/preference_panes.py:601
msgid "Time Ratio" msgid "Time Ratio"
msgstr "" msgstr "Zeitverhältnis"
#: deluge/ui/console/modes/preferences/preference_panes.py:609 #: deluge/ui/console/modes/preferences/preference_panes.py:609
msgid "Time (m)" msgid "Time (m)"
@ -4971,7 +4971,7 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:712 #: deluge/ui/console/modes/preferences/preference_panes.py:712
msgid "Blocks Written" msgid "Blocks Written"
msgstr "" msgstr "Geschriebene Blöcke"
#: deluge/ui/console/modes/preferences/preference_panes.py:716 #: deluge/ui/console/modes/preferences/preference_panes.py:716
msgid "Writes" msgid "Writes"
@ -4983,7 +4983,7 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:725 #: deluge/ui/console/modes/preferences/preference_panes.py:725
msgid "Blocks Read" msgid "Blocks Read"
msgstr "" msgstr "Gelesene Blöcke"
#: deluge/ui/console/modes/preferences/preference_panes.py:729 #: deluge/ui/console/modes/preferences/preference_panes.py:729
msgid "Blocks Read hit" msgid "Blocks Read hit"
@ -5400,7 +5400,7 @@ msgstr "Uploadfarbe:"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:3 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:3
msgid "<b>Connections Graph</b>" msgid "<b>Connections Graph</b>"
msgstr "" msgstr "<b>Verbindungsgraph</b>"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:4 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:4
msgid "<b>Bandwidth Graph</b>" msgid "<b>Bandwidth Graph</b>"
@ -5408,7 +5408,7 @@ msgstr "<b>Bandbreitengraph</b>"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:5 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:5
msgid "DHT nodes:" msgid "DHT nodes:"
msgstr "" msgstr "DHT-Knoten:"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:6 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:6
msgid "Cached DHT nodes:" msgid "Cached DHT nodes:"
@ -5424,7 +5424,7 @@ msgstr "<b>Seeds / Peers</b>"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:11 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:11
msgid "<b>Graph Colors</b>" msgid "<b>Graph Colors</b>"
msgstr "" msgstr "<b>Graphfarben</b>"
#: deluge/plugins/WebUi/deluge_webui/gtkui.py:35 #: deluge/plugins/WebUi/deluge_webui/gtkui.py:35
#: deluge/plugins/WebUi/deluge_webui/gtkui.py:47 #: deluge/plugins/WebUi/deluge_webui/gtkui.py:47
@ -5997,7 +5997,7 @@ msgstr "Erzwinge erneute Überprüfung"
#: deluge/ui/web/js/deluge-all/Menus.js:359 #: deluge/ui/web/js/deluge-all/Menus.js:359
msgid "Expand All" msgid "Expand All"
msgstr "" msgstr "Alles ausklappen"
#: deluge/ui/web/js/deluge-all/details/DetailsTab.js:13 #: deluge/ui/web/js/deluge-all/details/DetailsTab.js:13
msgid "Details" msgid "Details"
@ -6119,7 +6119,7 @@ msgstr "Zufälligen Port verwenden"
#: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:241 #: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:241
msgid "Type Of Service" msgid "Type Of Service"
msgstr "" msgstr "Diensttyp"
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:53 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:53
msgid "Show filters with zero torrents" msgid "Show filters with zero torrents"
@ -6151,7 +6151,7 @@ msgstr "Server"
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:140 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:140
msgid "Session Timeout:" msgid "Session Timeout:"
msgstr "" msgstr "Zeitüberschreitung der Sitzung:"
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:165 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:165
msgid "Enable SSL (paths relative to Deluge config folder)" msgid "Enable SSL (paths relative to Deluge config folder)"
@ -6221,7 +6221,7 @@ msgstr "Datei"
#: deluge/ui/web/js/deluge-all/add/AddWindow.js:149 #: deluge/ui/web/js/deluge-all/add/AddWindow.js:149
msgid "Infohash" msgid "Infohash"
msgstr "" msgstr "Infohash"
#: deluge/ui/web/js/deluge-all/add/AddWindow.js:260 #: deluge/ui/web/js/deluge-all/add/AddWindow.js:260
msgid "Uploading your torrent..." msgid "Uploading your torrent..."

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

File diff suppressed because it is too large Load diff

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: deluge\n" "Project-Id-Version: deluge\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2019-11-12 14:55+0000\n" "POT-Creation-Date: 2019-11-12 14:55+0000\n"
"PO-Revision-Date: 2020-04-26 10:56+0000\n" "PO-Revision-Date: 2022-06-10 17:48+0000\n"
"Last-Translator: Jiri Grönroos <Unknown>\n" "Last-Translator: Jiri Grönroos <Unknown>\n"
"Language-Team: Finnish <fi@li.org>\n" "Language-Team: Finnish <fi@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"
@ -120,11 +120,11 @@ msgstr ""
#: deluge/argparserbase.py:200 #: deluge/argparserbase.py:200
msgid "Output to specified logfile instead of stdout" msgid "Output to specified logfile instead of stdout"
msgstr "" msgstr "Ohjaa tuloste määritettyyn lokitiedostoon stdoutin sijaan"
#: deluge/argparserbase.py:206 #: deluge/argparserbase.py:206
msgid "Set the log level (none, error, warning, info, debug)" msgid "Set the log level (none, error, warning, info, debug)"
msgstr "" msgstr "Aseta lokituksen taso (none, error, warning, info, debug)"
#: deluge/argparserbase.py:215 #: deluge/argparserbase.py:215
#, python-format #, python-format
@ -166,7 +166,7 @@ msgstr ""
#: deluge/core/daemon_entry.py:25 #: deluge/core/daemon_entry.py:25
msgid "Daemon Options" msgid "Daemon Options"
msgstr "" msgstr "Taustaprosessin valinnat"
#: deluge/core/daemon_entry.py:31 #: deluge/core/daemon_entry.py:31
msgid "IP address to listen for UI connections" msgid "IP address to listen for UI connections"
@ -325,7 +325,7 @@ msgstr "Yhteyksiä enintään"
#: deluge/ui/common.py:64 deluge/ui/web/js/deluge-all/add/OptionsTab.js:109 #: deluge/ui/common.py:64 deluge/ui/web/js/deluge-all/add/OptionsTab.js:109
msgid "Max Upload Slots" msgid "Max Upload Slots"
msgstr "" msgstr "Jakopaikkoja enintään"
#: deluge/ui/common.py:65 deluge/ui/gtk3/torrentview.py:325 #: deluge/ui/common.py:65 deluge/ui/gtk3/torrentview.py:325
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:136 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:136
@ -336,7 +336,7 @@ msgstr "Vertaiset"
#: deluge/ui/common.py:66 deluge/ui/gtk3/torrentview.py:317 #: deluge/ui/common.py:66 deluge/ui/gtk3/torrentview.py:317
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:128 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:128
msgid "Seeds" msgid "Seeds"
msgstr "" msgstr "Jakajat"
#: deluge/ui/common.py:67 deluge/ui/gtk3/torrentview.py:380 #: deluge/ui/common.py:67 deluge/ui/gtk3/torrentview.py:380
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:173 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:173
@ -346,7 +346,7 @@ msgstr "Saat."
#: deluge/ui/common.py:68 deluge/ui/gtk3/torrentview.py:333 #: deluge/ui/common.py:68 deluge/ui/gtk3/torrentview.py:333
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:284 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:284
msgid "Seeds:Peers" msgid "Seeds:Peers"
msgstr "" msgstr "Jakajia:vertaisia"
#: deluge/ui/common.py:69 deluge/ui/gtk3/listview.py:203 #: deluge/ui/common.py:69 deluge/ui/gtk3/listview.py:203
#: deluge/ui/gtk3/torrentview.py:387 #: deluge/ui/gtk3/torrentview.py:387
@ -371,15 +371,15 @@ msgstr "Latauskansio"
#: deluge/ui/common.py:75 #: deluge/ui/common.py:75
msgid "Seeding Time" msgid "Seeding Time"
msgstr "" msgstr "Jakoaika"
#: deluge/ui/common.py:76 #: deluge/ui/common.py:76
msgid "Active Time" msgid "Active Time"
msgstr "" msgstr "Aktiivisuusaika"
#: deluge/ui/common.py:78 #: deluge/ui/common.py:78
msgid "Last Activity" msgid "Last Activity"
msgstr "" msgstr "Viimeisin toiminta"
#: deluge/ui/common.py:81 #: deluge/ui/common.py:81
msgid "Finished Time" msgid "Finished Time"
@ -404,7 +404,7 @@ msgstr "Aikaa jäljellä"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:30 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:30
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:236 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:236
msgid "Shared" msgid "Shared"
msgstr "" msgstr "Jaettu"
#: deluge/ui/common.py:90 deluge/ui/gtk3/glade/main_window.tabs.ui.h:31 #: deluge/ui/common.py:90 deluge/ui/gtk3/glade/main_window.tabs.ui.h:31
#: deluge/ui/web/js/deluge-all/details/OptionsTab.js:287 #: deluge/ui/web/js/deluge-all/details/OptionsTab.js:287
@ -415,7 +415,7 @@ msgstr "Suosi ensimmäistä/viimeistä"
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:14 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:14
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:143 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:143
msgid "Sequential Download" msgid "Sequential Download"
msgstr "" msgstr "Peräkkäinen lataus"
#: deluge/ui/common.py:97 deluge/ui/common.py:98 #: deluge/ui/common.py:97 deluge/ui/common.py:98
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:35 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:35
@ -427,15 +427,15 @@ msgstr "Automaattisesti hallittu"
#: deluge/ui/common.py:99 #: deluge/ui/common.py:99
msgid "Stop At Ratio" msgid "Stop At Ratio"
msgstr "" msgstr "Pysäytä suhteessa"
#: deluge/ui/common.py:100 #: deluge/ui/common.py:100
msgid "Stop Ratio" msgid "Stop Ratio"
msgstr "" msgstr "Pysäytyssuhde"
#: deluge/ui/common.py:101 #: deluge/ui/common.py:101
msgid "Remove At Ratio" msgid "Remove At Ratio"
msgstr "" msgstr "Poista suhteessa"
#: deluge/ui/common.py:102 deluge/ui/common.py:108 #: deluge/ui/common.py:102 deluge/ui/common.py:108
msgid "Move On Completed" msgid "Move On Completed"
@ -443,7 +443,7 @@ msgstr ""
#: deluge/ui/common.py:104 #: deluge/ui/common.py:104
msgid "Move Completed Path" msgid "Move Completed Path"
msgstr "" msgstr "Siirrä valmistuneet -polku"
#: deluge/ui/common.py:112 #: deluge/ui/common.py:112
msgid "Move On Completed Path" msgid "Move On Completed Path"
@ -1614,7 +1614,7 @@ msgstr ""
#: deluge/ui/web/json_api.py:868 #: deluge/ui/web/json_api.py:868
msgid "Daemon does not exist" msgid "Daemon does not exist"
msgstr "" msgstr "Taustaprosessia ei ole olemassa"
#: deluge/ui/web/json_api.py:875 #: deluge/ui/web/json_api.py:875
msgid "Daemon not running" msgid "Daemon not running"
@ -1969,15 +1969,15 @@ msgstr "Ei yhdistetty"
#: deluge/ui/gtk3/statusbar.py:175 #: deluge/ui/gtk3/statusbar.py:175
msgid "Connections (Limit)" msgid "Connections (Limit)"
msgstr "" msgstr "Yhteydet (raja)"
#: deluge/ui/gtk3/statusbar.py:182 #: deluge/ui/gtk3/statusbar.py:182
msgid "Download Speed (Limit)" msgid "Download Speed (Limit)"
msgstr "" msgstr "Latausnopeus (raja)"
#: deluge/ui/gtk3/statusbar.py:189 #: deluge/ui/gtk3/statusbar.py:189
msgid "Upload Speed (Limit)" msgid "Upload Speed (Limit)"
msgstr "" msgstr "Lähetysnopeus (raja)"
#: deluge/ui/gtk3/statusbar.py:196 #: deluge/ui/gtk3/statusbar.py:196
msgid "Protocol Traffic (Down:Up)" msgid "Protocol Traffic (Down:Up)"
@ -2450,11 +2450,11 @@ msgstr ""
#: deluge/ui/gtk3/menubar.py:466 #: deluge/ui/gtk3/menubar.py:466
msgid "Set the maximum upload slots" msgid "Set the maximum upload slots"
msgstr "" msgstr "Aseta lähetyspaikkojen enimmäismäärä"
#: deluge/ui/gtk3/menubar.py:471 #: deluge/ui/gtk3/menubar.py:471
msgid "Stop Seed At Ratio" msgid "Stop Seed At Ratio"
msgstr "" msgstr "Lopeta jakaminen suhteessa"
#: deluge/ui/gtk3/menubar.py:606 #: deluge/ui/gtk3/menubar.py:606
msgid "Ownership Change Error" msgid "Ownership Change Error"
@ -2494,7 +2494,7 @@ msgstr "Torrentit jonossa"
#: deluge/ui/gtk3/glade/queuedtorrents.ui.h:4 #: deluge/ui/gtk3/glade/queuedtorrents.ui.h:4
msgid "Add Queued Torrents" msgid "Add Queued Torrents"
msgstr "" msgstr "Lisää jonotetut torrentit"
#: deluge/ui/gtk3/glade/queuedtorrents.ui.h:5 #: deluge/ui/gtk3/glade/queuedtorrents.ui.h:5
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:7 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:7
@ -2775,7 +2775,7 @@ msgstr "Socks5"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:10 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:10
#: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:36 #: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:36
msgid "Socks5 Auth" msgid "Socks5 Auth"
msgstr "" msgstr "Socks5-todennus"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:11 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:11
#: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:37 #: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:37
@ -2785,7 +2785,7 @@ msgstr "HTTP"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:12 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:12
#: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:38 #: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:38
msgid "HTTP Auth" msgid "HTTP Auth"
msgstr "" msgstr "HTTP-todennus"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:13 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:13
#: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:39 #: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:39
@ -2802,11 +2802,11 @@ msgstr ""
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:21 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:21
msgid "Connect to a Deluge daemon (deluged)" msgid "Connect to a Deluge daemon (deluged)"
msgstr "" msgstr "Yhdistä Deluge-taustaprosessiin (deluged)"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:22 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:22
msgid "Application Mode" msgid "Application Mode"
msgstr "" msgstr "Sovellustila"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:23 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:23
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:46 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:46
@ -2841,11 +2841,11 @@ msgstr ""
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:31 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:31
msgid "Waiting:" msgid "Waiting:"
msgstr "" msgstr "Odottaa:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:32 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:32
msgid "Missing:" msgid "Missing:"
msgstr "" msgstr "Puuttuu:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:33 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:33
msgid "_Revert" msgid "_Revert"
@ -2853,7 +2853,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:34 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:34
msgid "Revert color to default" msgid "Revert color to default"
msgstr "" msgstr "Palauta väri oletukseksi"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:35 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:35
msgid "Piece Colors" msgid "Piece Colors"
@ -2889,7 +2889,7 @@ msgstr "Suojaa ilmoitusalueelle pienennetty Deluge salasanalla"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:44 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:44
msgid "System Tray" msgid "System Tray"
msgstr "" msgstr "Ilmoitusalue"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:45 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:45
msgid "Notify about new releases" msgid "Notify about new releases"
@ -2939,7 +2939,7 @@ msgstr "Lataa kansioon:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:54 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:54
msgid "Download Folders" msgid "Download Folders"
msgstr "" msgstr "Latauskansiot"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:55 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:55
#: deluge/ui/web/js/deluge-all/preferences/DownloadsPage.js:93 #: deluge/ui/web/js/deluge-all/preferences/DownloadsPage.js:93
@ -2975,15 +2975,15 @@ msgstr "Lisää torrentit keskeytettyinä"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:65 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:65
#: deluge/ui/web/js/deluge-all/preferences/DownloadsPage.js:120 #: deluge/ui/web/js/deluge-all/preferences/DownloadsPage.js:120
msgid "Pre-allocate disk space" msgid "Pre-allocate disk space"
msgstr "" msgstr "Ennakkovaraa levytila"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:66 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:66
msgid "Pre-allocate the disk space for the torrent files" msgid "Pre-allocate the disk space for the torrent files"
msgstr "" msgstr "Ennakkovaraa levytila torrent-tiedostoille"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:67 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:67
msgid "Add Torrent Options" msgid "Add Torrent Options"
msgstr "" msgstr "Lisää torrent -valinnat"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:68 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:68
msgid "Always show" msgid "Always show"
@ -2995,15 +2995,15 @@ msgstr "Tuo valintaikkuna eteen"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:70 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:70
msgid "Add Torrents Dialog" msgid "Add Torrents Dialog"
msgstr "" msgstr "Lisää torrentti -ikkuna"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:71 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:71
msgid "Connection Attempts per Second:" msgid "Connection Attempts per Second:"
msgstr "" msgstr "Yhteysyrityksiä per sekunti:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:72 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:72
msgid "Half-Open Connections:" msgid "Half-Open Connections:"
msgstr "" msgstr "Puoliksi avoimet yhteydet:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:73 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:73
msgid "The maximum number of connections allowed. Set -1 for unlimited." msgid "The maximum number of connections allowed. Set -1 for unlimited."
@ -3028,7 +3028,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:32 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:32
#: deluge/plugins/Label/deluge_label/data/label_options.ui.h:5 #: deluge/plugins/Label/deluge_label/data/label_options.ui.h:5
msgid "Upload Slots:" msgid "Upload Slots:"
msgstr "" msgstr "Lähetyspaikkoja:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:77 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:77
msgid "The maximum download speed for all torrents. Set -1 for unlimited." msgid "The maximum download speed for all torrents. Set -1 for unlimited."
@ -3073,7 +3073,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:85 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:85
msgid "Global Bandwidth Limits" msgid "Global Bandwidth Limits"
msgstr "" msgstr "Yleiset kaistanleveyden rajoitukset"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:86 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:86
msgid "The maximum upload slots per torrent. Set -1 for unlimited." msgid "The maximum upload slots per torrent. Set -1 for unlimited."
@ -3095,19 +3095,19 @@ msgstr ""
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:90 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:90
msgid "Per-Torrent Bandwidth Limits" msgid "Per-Torrent Bandwidth Limits"
msgstr "" msgstr "Torrent-kohtaiset kaistanleveyden rajoitukset"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:91 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:91
#: deluge/ui/console/modes/preferences/preference_panes.py:556 #: deluge/ui/console/modes/preferences/preference_panes.py:556
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:42 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:42
msgid "Queue to top" msgid "Queue to top"
msgstr "" msgstr "Jonota ylimmäksi"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:92 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:92
#: deluge/ui/console/modes/preferences/preference_panes.py:554 #: deluge/ui/console/modes/preferences/preference_panes.py:554
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:30 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:30
msgid "New Torrents" msgid "New Torrents"
msgstr "" msgstr "Uudet torrentit"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:93 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:93
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:85 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:85
@ -3117,7 +3117,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:94 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:94
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:59 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:59
msgid "Total:" msgid "Total:"
msgstr "" msgstr "Yhteensä:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:95 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:95
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:102 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:102
@ -3143,7 +3143,7 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:558 #: deluge/ui/console/modes/preferences/preference_panes.py:558
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:50 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:50
msgid "Active Torrents" msgid "Active Torrents"
msgstr "" msgstr "Aktiiviset torrentit"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:100 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:100
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:7 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:7
@ -3161,7 +3161,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:102 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:102
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:157 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:157
msgid "Time (m):" msgid "Time (m):"
msgstr "" msgstr "Aika (min):"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:103 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:103
#: deluge/ui/console/modes/preferences/preference_panes.py:590 #: deluge/ui/console/modes/preferences/preference_panes.py:590
@ -3177,7 +3177,7 @@ msgstr "Keskeytä torrent"
#: deluge/ui/console/modes/preferences/preference_panes.py:627 #: deluge/ui/console/modes/preferences/preference_panes.py:627
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:173 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:173
msgid "Share Ratio Reached" msgid "Share Ratio Reached"
msgstr "" msgstr "Jakosuhde saavutettu"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:107 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:107
msgid "" msgid ""
@ -3223,7 +3223,7 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:359 #: deluge/ui/console/modes/preferences/preference_panes.py:359
#: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:101 #: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:101
msgid "Outgoing Interface" msgid "Outgoing Interface"
msgstr "" msgstr "Lähtevä sovitin"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:118 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:118
#: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:11 #: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:11
@ -3240,7 +3240,7 @@ msgstr "Päättyen:"
#: deluge/ui/console/modes/preferences/preference_panes.py:328 #: deluge/ui/console/modes/preferences/preference_panes.py:328
#: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:120 #: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:120
msgid "Outgoing Ports" msgid "Outgoing Ports"
msgstr "" msgstr "Lähtevät portit"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:121 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:121
#: deluge/ui/web/js/deluge-all/preferences/EncryptionPage.js:59 #: deluge/ui/web/js/deluge-all/preferences/EncryptionPage.js:59
@ -3318,7 +3318,7 @@ msgstr "Vertaisen TOS-tavu:"
#: deluge/ui/console/modes/preferences/preference_panes.py:372 #: deluge/ui/console/modes/preferences/preference_panes.py:372
#: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:181 #: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:181
msgid "Network Extras" msgid "Network Extras"
msgstr "" msgstr "Verkon lisäasetukset"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:137 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:137
#: deluge/ui/gtk3/glade/connection_manager.addhost.ui.h:4 #: deluge/ui/gtk3/glade/connection_manager.addhost.ui.h:4
@ -3368,7 +3368,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:147 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:147
msgid "Force Proxy Use" msgid "Force Proxy Use"
msgstr "" msgstr "Pakota välityspalvelimen käyttö"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:148 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:148
#: deluge/ui/console/modes/preferences/preference_panes.py:671 #: deluge/ui/console/modes/preferences/preference_panes.py:671
@ -3386,7 +3386,7 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:669 #: deluge/ui/console/modes/preferences/preference_panes.py:669
#: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:120 #: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:120
msgid "Force Proxy" msgid "Force Proxy"
msgstr "" msgstr "Pakota välityspalvelin"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:151 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:151
msgid "Cache Size (16 KiB blocks):" msgid "Cache Size (16 KiB blocks):"
@ -3449,7 +3449,7 @@ msgstr "Osumasuhde kirjoitetulle välimuistille:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:161 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:161
#: deluge/ui/console/modes/preferences/preference_panes.py:709 #: deluge/ui/console/modes/preferences/preference_panes.py:709
msgid "Write" msgid "Write"
msgstr "" msgstr "Kirjoitettu"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:162 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:162
msgid "" msgid ""
@ -3491,7 +3491,7 @@ msgstr "Luettu:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:170 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:170
#: deluge/ui/console/modes/preferences/preference_panes.py:723 #: deluge/ui/console/modes/preferences/preference_panes.py:723
msgid "Read" msgid "Read"
msgstr "" msgstr "Luettu"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:171 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:171
msgid "" msgid ""
@ -3554,11 +3554,11 @@ msgstr "GeoIP-tietokanta"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:183 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:183
msgid "Associate with Deluge" msgid "Associate with Deluge"
msgstr "" msgstr "Liitä Delugeen"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:184 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:184
msgid "Magnet Links" msgid "Magnet Links"
msgstr "" msgstr "Magneettilinkit"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:185 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:185
#: deluge/ui/web/js/deluge-all/preferences/DaemonPage.js:37 #: deluge/ui/web/js/deluge-all/preferences/DaemonPage.js:37
@ -3629,11 +3629,11 @@ msgstr "_Asenna"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:202 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:202
msgid "_Find More..." msgid "_Find More..."
msgstr "" msgstr "_Löydä enemmän..."
#: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:4 #: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:4
msgid "Remove the selected torrent(s)?" msgid "Remove the selected torrent(s)?"
msgstr "" msgstr "Poistetaanko valitut torrentit?"
#: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:5 #: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:5
msgid "Include downloaded files" msgid "Include downloaded files"
@ -3641,7 +3641,7 @@ msgstr "Sisällytä ladatut tiedostot"
#: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:6 #: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:6
msgid "(This is permanent!)" msgid "(This is permanent!)"
msgstr "" msgstr "(Tätä ei voi perua!)"
#: deluge/ui/gtk3/glade/connect_peer_dialog.ui.h:1 #: deluge/ui/gtk3/glade/connect_peer_dialog.ui.h:1
msgid "Add Peer" msgid "Add Peer"
@ -3691,7 +3691,7 @@ msgstr "Näytä piilotetut tiedostot"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:11 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:11
msgid "Set new key" msgid "Set new key"
msgstr "" msgstr "Aseta uusi avain"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:12 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:12
msgid "Press this key to set new key accelerators to trigger auto-complete" msgid "Press this key to set new key accelerators to trigger auto-complete"
@ -3829,7 +3829,7 @@ msgstr "Lisää Infohash"
#: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:4 #: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:4
msgid "From Infohash" msgid "From Infohash"
msgstr "" msgstr "Infohashista"
#: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:5 #: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:5
msgid "Infohash:" msgid "Infohash:"
@ -3892,13 +3892,13 @@ msgstr "Älä näytä tätä ilmoitusta tulevaisuudessa"
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:26 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:26
#: deluge/ui/web/render/tab_status.html:9 #: deluge/ui/web/render/tab_status.html:9
msgid "Down Speed:" msgid "Down Speed:"
msgstr "" msgstr "Latausnopeus:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:2 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:2
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:28 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:28
#: deluge/ui/web/render/tab_status.html:10 #: deluge/ui/web/render/tab_status.html:10
msgid "Up Speed:" msgid "Up Speed:"
msgstr "" msgstr "Lähetysnopeus:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:3 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:3
#: deluge/ui/web/render/tab_status.html:2 #: deluge/ui/web/render/tab_status.html:2
@ -3913,7 +3913,7 @@ msgstr "Lähetetty:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:5 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:5
#: deluge/ui/web/render/tab_status.html:16 #: deluge/ui/web/render/tab_status.html:16
msgid "Seeds:" msgid "Seeds:"
msgstr "" msgstr "Jakajia:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:6 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:6
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:10 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:10
@ -3924,7 +3924,7 @@ msgstr "Vertaiset:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:8 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:8
#: deluge/ui/web/render/tab_status.html:18 #: deluge/ui/web/render/tab_status.html:18
msgid "Availability:" msgid "Availability:"
msgstr "" msgstr "Saatavuus:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:9 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:9
#: deluge/ui/web/render/tab_status.html:25 #: deluge/ui/web/render/tab_status.html:25
@ -3933,7 +3933,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:10 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:10
msgid "ETA Time:" msgid "ETA Time:"
msgstr "" msgstr "Arvioitu valmistumisaika:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:11 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:11
#: deluge/ui/web/render/tab_status.html:13 #: deluge/ui/web/render/tab_status.html:13
@ -3943,7 +3943,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:12 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:12
#: deluge/ui/web/render/tab_status.html:23 #: deluge/ui/web/render/tab_status.html:23
msgid "Active Time:" msgid "Active Time:"
msgstr "" msgstr "Aktiivisuusaika:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:13 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:13
#: deluge/ui/web/render/tab_status.html:20 #: deluge/ui/web/render/tab_status.html:20
@ -3953,7 +3953,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:14 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:14
#: deluge/ui/web/render/tab_status.html:24 #: deluge/ui/web/render/tab_status.html:24
msgid "Seeding Time:" msgid "Seeding Time:"
msgstr "" msgstr "Jakoaika:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:16 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:16
#: deluge/ui/web/render/tab_status.html:12 #: deluge/ui/web/render/tab_status.html:12
@ -4024,7 +4024,7 @@ msgstr "Poista, kun jakosuhde on"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:44 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:44
msgid "Bandwidth Limits" msgid "Bandwidth Limits"
msgstr "" msgstr "Kaistanleveyden rajoitukset"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:46 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:46
msgid "Current Tracker:" msgid "Current Tracker:"
@ -4037,7 +4037,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:48 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:48
#: deluge/ui/web/render/tab_status.html:6 #: deluge/ui/web/render/tab_status.html:6
msgid "Tracker Status:" msgid "Tracker Status:"
msgstr "" msgstr "Seurantapalvelimen tila:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:49 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:49
#: deluge/ui/web/render/tab_status.html:5 #: deluge/ui/web/render/tab_status.html:5
@ -4095,16 +4095,16 @@ msgstr "Suosi ensimmäisiä / viimeisiä osia"
#: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:46 #: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:46
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:152 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:152
msgid "Skip File Hash Check" msgid "Skip File Hash Check"
msgstr "" msgstr "Ohita tiedoston tiivisteen tarkistus"
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:23 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:23
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:170 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:170
msgid "Preallocate Disk Space" msgid "Preallocate Disk Space"
msgstr "" msgstr "Ennakkovaraa levytila"
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:24 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:24
msgid "Preallocate the disk space for the torrent files" msgid "Preallocate the disk space for the torrent files"
msgstr "" msgstr "Ennakkovaraa levytila torrent-tiedostoille"
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:25 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:25
msgid "Maximum torrent download speed" msgid "Maximum torrent download speed"
@ -4116,7 +4116,7 @@ msgstr ""
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:29 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:29
msgid "Maximum torrent connections" msgid "Maximum torrent connections"
msgstr "" msgstr "Torrent-yhteyksien enimmäismäärä"
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:31 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:31
msgid "Maximum torrent upload slots" msgid "Maximum torrent upload slots"
@ -4391,7 +4391,7 @@ msgstr "Lisää verkko-osoite"
#: deluge/ui/gtk3/glade/add_torrent_dialog.url.ui.h:4 #: deluge/ui/gtk3/glade/add_torrent_dialog.url.ui.h:4
msgid "From URL" msgid "From URL"
msgstr "" msgstr "Verkko-osoitteesta"
#: deluge/ui/gtk3/glade/add_torrent_dialog.url.ui.h:5 #: deluge/ui/gtk3/glade/add_torrent_dialog.url.ui.h:5
#: deluge/plugins/Blocklist/deluge_blocklist/data/blocklist_pref.ui.h:1 #: deluge/plugins/Blocklist/deluge_blocklist/data/blocklist_pref.ui.h:1
@ -4400,7 +4400,7 @@ msgstr "Osoite:"
#: deluge/ui/gtk3/glade/connection_manager.ui.h:9 #: deluge/ui/gtk3/glade/connection_manager.ui.h:9
msgid "Deluge Daemons" msgid "Deluge Daemons"
msgstr "" msgstr "Deluge-taustaprosessit"
#: deluge/ui/gtk3/glade/connection_manager.ui.h:10 #: deluge/ui/gtk3/glade/connection_manager.ui.h:10
msgid "Auto-connect to selected Daemon" msgid "Auto-connect to selected Daemon"
@ -4612,7 +4612,7 @@ msgstr "Ottaa liitännäisen käyttöön"
#: deluge/ui/console/cmdline/commands/plugin.py:43 #: deluge/ui/console/cmdline/commands/plugin.py:43
msgid "Disables a plugin" msgid "Disables a plugin"
msgstr "" msgstr "Poistaa liitännäisen käytöstä"
#: deluge/ui/console/cmdline/commands/plugin.py:51 #: deluge/ui/console/cmdline/commands/plugin.py:51
msgid "Reload list of available plugins" msgid "Reload list of available plugins"
@ -4620,7 +4620,7 @@ msgstr ""
#: deluge/ui/console/cmdline/commands/plugin.py:54 #: deluge/ui/console/cmdline/commands/plugin.py:54
msgid "Install a plugin from an .egg file" msgid "Install a plugin from an .egg file"
msgstr "" msgstr "Asenna liitännäinen .egg-tiedostosta"
#: deluge/ui/console/cmdline/commands/status.py:36 #: deluge/ui/console/cmdline/commands/status.py:36
msgid "" msgid ""
@ -4656,7 +4656,7 @@ msgstr ""
#: deluge/ui/console/cmdline/commands/help.py:29 #: deluge/ui/console/cmdline/commands/help.py:29
msgid "One or more commands" msgid "One or more commands"
msgstr "" msgstr "Yksi tai useampi komento"
#: deluge/ui/console/cmdline/commands/config.py:79 #: deluge/ui/console/cmdline/commands/config.py:79
msgid "Usage: config [--set <key> <value>] [<key> [<key>...] ]" msgid "Usage: config [--set <key> <value>] [<key> [<key>...] ]"
@ -4764,7 +4764,7 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:254 #: deluge/ui/console/modes/preferences/preference_panes.py:254
msgid "Move completed to" msgid "Move completed to"
msgstr "" msgstr "Siirrä valmistuneet sijaintiin"
#: deluge/ui/console/modes/preferences/preference_panes.py:269 #: deluge/ui/console/modes/preferences/preference_panes.py:269
msgid "Copy of .torrent files to" msgid "Copy of .torrent files to"
@ -4776,7 +4776,7 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:293 #: deluge/ui/console/modes/preferences/preference_panes.py:293
msgid "Pre-Allocate disk space" msgid "Pre-Allocate disk space"
msgstr "" msgstr "Ennakkovaraa levytila"
#: deluge/ui/console/modes/preferences/preference_panes.py:304 #: deluge/ui/console/modes/preferences/preference_panes.py:304
msgid "Incomming Ports" msgid "Incomming Ports"
@ -4822,7 +4822,7 @@ msgstr "Ulos"
#: deluge/ui/console/modes/preferences/preference_panes.py:413 #: deluge/ui/console/modes/preferences/preference_panes.py:413
#: deluge/ui/web/js/deluge-all/preferences/BandwidthPage.js:38 #: deluge/ui/web/js/deluge-all/preferences/BandwidthPage.js:38
msgid "Global Bandwidth Usage" msgid "Global Bandwidth Usage"
msgstr "" msgstr "Yleinen kaistankäyttö"
#: deluge/ui/console/modes/preferences/preference_panes.py:416 #: deluge/ui/console/modes/preferences/preference_panes.py:416
#: deluge/ui/console/modes/preferences/preference_panes.py:469 #: deluge/ui/console/modes/preferences/preference_panes.py:469
@ -4860,7 +4860,7 @@ msgstr "Nopeusraja IP:n yläpuolella"
#: deluge/ui/console/modes/preferences/preference_panes.py:466 #: deluge/ui/console/modes/preferences/preference_panes.py:466
#: deluge/ui/web/js/deluge-all/preferences/BandwidthPage.js:148 #: deluge/ui/web/js/deluge-all/preferences/BandwidthPage.js:148
msgid "Per Torrent Bandwidth Usage" msgid "Per Torrent Bandwidth Usage"
msgstr "" msgstr "Torrent-kohtainen kaistankäyttö"
#: deluge/ui/console/modes/preferences/preference_panes.py:513 #: deluge/ui/console/modes/preferences/preference_panes.py:513
msgid "Yes, please send anonymous statistics." msgid "Yes, please send anonymous statistics."
@ -4868,7 +4868,7 @@ msgstr "Kyllä, lähetä anonyymeja tilastoja."
#: deluge/ui/console/modes/preferences/preference_panes.py:531 #: deluge/ui/console/modes/preferences/preference_panes.py:531
msgid "Daemon Port" msgid "Daemon Port"
msgstr "" msgstr "Taustaprosessin portti"
#: deluge/ui/console/modes/preferences/preference_panes.py:538 #: deluge/ui/console/modes/preferences/preference_panes.py:538
msgid "Allow remote connections" msgid "Allow remote connections"
@ -4884,11 +4884,11 @@ msgstr "Jakosuhde"
#: deluge/ui/console/modes/preferences/preference_panes.py:601 #: deluge/ui/console/modes/preferences/preference_panes.py:601
msgid "Time Ratio" msgid "Time Ratio"
msgstr "" msgstr "Aikasuhde"
#: deluge/ui/console/modes/preferences/preference_panes.py:609 #: deluge/ui/console/modes/preferences/preference_panes.py:609
msgid "Time (m)" msgid "Time (m)"
msgstr "" msgstr "Aika (min)"
#: deluge/ui/console/modes/preferences/preference_panes.py:633 #: deluge/ui/console/modes/preferences/preference_panes.py:633
msgid "Remove torrent (Unchecked pauses torrent)" msgid "Remove torrent (Unchecked pauses torrent)"
@ -4912,11 +4912,11 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:697 #: deluge/ui/console/modes/preferences/preference_panes.py:697
msgid "Cache Size (16 KiB blocks)" msgid "Cache Size (16 KiB blocks)"
msgstr "" msgstr "Välimuistin koko (16 KiB:in lohkoissa)"
#: deluge/ui/console/modes/preferences/preference_panes.py:704 #: deluge/ui/console/modes/preferences/preference_panes.py:704
msgid "Cache Expiry (seconds)" msgid "Cache Expiry (seconds)"
msgstr "" msgstr "Välimuistin vanheneminen (sekuntia)"
#: deluge/ui/console/modes/preferences/preference_panes.py:712 #: deluge/ui/console/modes/preferences/preference_panes.py:712
msgid "Blocks Written" msgid "Blocks Written"
@ -4981,7 +4981,7 @@ msgstr ""
#: deluge/plugins/Blocklist/deluge_blocklist/common.py:118 #: deluge/plugins/Blocklist/deluge_blocklist/common.py:118
#, python-format #, python-format
msgid "The IP address \"%s\" is badly formed" msgid "The IP address \"%s\" is badly formed"
msgstr "" msgstr "IP-osoite \"%s\" on väärin muodostettu"
#: deluge/plugins/Blocklist/deluge_blocklist/webui.py:21 #: deluge/plugins/Blocklist/deluge_blocklist/webui.py:21
msgid "Emule IP list (GZip)" msgid "Emule IP list (GZip)"
@ -5253,7 +5253,7 @@ msgstr "Pää"
#: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:31 #: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:31
msgid "The user selected here will be the owner of the torrent." msgid "The user selected here will be the owner of the torrent."
msgstr "" msgstr "Tässä valittu käyttäjä tulee olemaan torrentin omistaja."
#: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:32 #: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:32
msgid "<b>Owner</b>" msgid "<b>Owner</b>"
@ -5306,7 +5306,7 @@ msgstr "<b>Tarkkaile hakemistoja:</b>"
#: deluge/plugins/Stats/deluge_stats/gtkui.py:60 #: deluge/plugins/Stats/deluge_stats/gtkui.py:60
msgid "minutes" msgid "minutes"
msgstr "" msgstr "minuuttia"
#: deluge/plugins/Stats/deluge_stats/gtkui.py:62 #: deluge/plugins/Stats/deluge_stats/gtkui.py:62
msgid "1 minute" msgid "1 minute"
@ -5322,7 +5322,7 @@ msgstr "sekuntia"
#: deluge/plugins/Stats/deluge_stats/data/tabs.ui.h:1 #: deluge/plugins/Stats/deluge_stats/data/tabs.ui.h:1
msgid "Stats" msgid "Stats"
msgstr "" msgstr "Tilastot"
#: deluge/plugins/Stats/deluge_stats/data/tabs.ui.h:2 #: deluge/plugins/Stats/deluge_stats/data/tabs.ui.h:2
msgid "Resolution" msgid "Resolution"
@ -5330,15 +5330,15 @@ msgstr ""
#: deluge/plugins/Stats/deluge_stats/data/tabs.ui.h:5 #: deluge/plugins/Stats/deluge_stats/data/tabs.ui.h:5
msgid "Seeds/Peers" msgid "Seeds/Peers"
msgstr "" msgstr "Jakajat/vertaiset"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:1 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:1
msgid "Download color:" msgid "Download color:"
msgstr "" msgstr "Latausväri:"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:2 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:2
msgid "Upload color:" msgid "Upload color:"
msgstr "" msgstr "Lähetysväri:"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:3 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:3
msgid "<b>Connections Graph</b>" msgid "<b>Connections Graph</b>"
@ -5350,11 +5350,11 @@ msgstr "<b>Kaistanleveyden kuvaaja</b>"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:5 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:5
msgid "DHT nodes:" msgid "DHT nodes:"
msgstr "" msgstr "DHT-solmut:"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:6 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:6
msgid "Cached DHT nodes:" msgid "Cached DHT nodes:"
msgstr "" msgstr "Välimuistissa olevat DHT-solmut:"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:7 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:7
msgid "DHT torrents:" msgid "DHT torrents:"
@ -5362,7 +5362,7 @@ msgstr "DHT-torrentit:"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:9 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:9
msgid "<b>Seeds / Peers</b>" msgid "<b>Seeds / Peers</b>"
msgstr "" msgstr "<b>Jakajat / vertaiset</b>"
#: deluge/plugins/Stats/deluge_stats/data/config.ui.h:11 #: deluge/plugins/Stats/deluge_stats/data/config.ui.h:11
msgid "<b>Graph Colors</b>" msgid "<b>Graph Colors</b>"
@ -5462,7 +5462,7 @@ msgstr "Käytä jonoasetuksia:"
#: deluge/plugins/Label/deluge_label/data/label_options.ui.h:17 #: deluge/plugins/Label/deluge_label/data/label_options.ui.h:17
msgid "Apply folder settings:" msgid "Apply folder settings:"
msgstr "" msgstr "Toteuta kansioasetukset:"
#: deluge/plugins/Label/deluge_label/data/label_options.ui.h:19 #: deluge/plugins/Label/deluge_label/data/label_options.ui.h:19
msgid "<i>(1 line per tracker)</i>" msgid "<i>(1 line per tracker)</i>"
@ -5664,7 +5664,7 @@ msgstr "Ajastin"
#: deluge/plugins/Scheduler/deluge_scheduler/gtkui.py:289 #: deluge/plugins/Scheduler/deluge_scheduler/gtkui.py:289
msgid "<b>Schedule</b>" msgid "<b>Schedule</b>"
msgstr "" msgstr "<b>Aikataulu</b>"
#: deluge/plugins/Scheduler/deluge_scheduler/gtkui.py:301 #: deluge/plugins/Scheduler/deluge_scheduler/gtkui.py:301
msgid "Download Limit:" msgid "Download Limit:"
@ -5867,7 +5867,7 @@ msgstr "Yhdistä"
#: deluge/ui/web/js/deluge-all/ConnectionManager.js:197 #: deluge/ui/web/js/deluge-all/ConnectionManager.js:197
#: deluge/ui/web/js/deluge-all/ConnectionManager.js:379 #: deluge/ui/web/js/deluge-all/ConnectionManager.js:379
msgid "Stop Daemon" msgid "Stop Daemon"
msgstr "" msgstr "Pysäytä taustaprosessi"
#: deluge/ui/web/js/deluge-all/ConnectionManager.js:185 #: deluge/ui/web/js/deluge-all/ConnectionManager.js:185
msgid "Disconnect" msgid "Disconnect"
@ -5875,7 +5875,7 @@ msgstr "Katkaise yhteys"
#: deluge/ui/web/js/deluge-all/ConnectionManager.js:204 #: deluge/ui/web/js/deluge-all/ConnectionManager.js:204
msgid "Start Daemon" msgid "Start Daemon"
msgstr "" msgstr "Käynnistä taustaprosessi"
#: deluge/ui/web/js/deluge-all/ConnectionManager.js:322 #: deluge/ui/web/js/deluge-all/ConnectionManager.js:322
msgid "Change Default Password" msgid "Change Default Password"
@ -5953,7 +5953,7 @@ msgstr "Tila:"
#: deluge/ui/web/js/deluge-all/details/OptionsTab.js:242 #: deluge/ui/web/js/deluge-all/details/OptionsTab.js:242
msgid "Move Completed:" msgid "Move Completed:"
msgstr "" msgstr "Siirrä valmistuneet:"
#: deluge/ui/web/js/deluge-all/details/OptionsTab.js:272 #: deluge/ui/web/js/deluge-all/details/OptionsTab.js:272
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:116 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:116
@ -6040,11 +6040,11 @@ msgstr "Lähetyspaikkojen enimmäismäärä:"
#: deluge/ui/web/js/deluge-all/preferences/CachePage.js:43 #: deluge/ui/web/js/deluge-all/preferences/CachePage.js:43
msgid "Cache Size (16 KiB Blocks):" msgid "Cache Size (16 KiB Blocks):"
msgstr "" msgstr "Välimuistin koko (16 KiB:in lohkoissa):"
#: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:132 #: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:132
msgid "Force Use of Proxy" msgid "Force Use of Proxy"
msgstr "" msgstr "Pakota välityspalvelimen käyttö"
#: deluge/ui/web/js/deluge-all/preferences/PluginsPage.js:116 #: deluge/ui/web/js/deluge-all/preferences/PluginsPage.js:116
msgid "Find More" msgid "Find More"
@ -6088,7 +6088,7 @@ msgstr "Palvelin"
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:140 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:140
msgid "Session Timeout:" msgid "Session Timeout:"
msgstr "" msgstr "Istunnon aikakatkaisu:"
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:165 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:165
msgid "Enable SSL (paths relative to Deluge config folder)" msgid "Enable SSL (paths relative to Deluge config folder)"
@ -6173,15 +6173,15 @@ msgstr "Torrent ei ole kelvollinen"
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:50 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:50
msgid "Move Completed Folder" msgid "Move Completed Folder"
msgstr "" msgstr "Siirrä valmistuneet -kansio"
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:85 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:85
msgid "Max Down Speed" msgid "Max Down Speed"
msgstr "" msgstr "Latausnopeus enintään"
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:93 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:93
msgid "Max Up Speed" msgid "Max Up Speed"
msgstr "" msgstr "Lähetysnopeus enintään"
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:125 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:125
msgid "Add In Paused State" msgid "Add In Paused State"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
"X-Poedit-Language: Galician\n" "X-Poedit-Language: Galician\n"
#: deluge/common.py:411 #: deluge/common.py:411

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: deluge\n" "Project-Id-Version: deluge\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2019-11-12 14:55+0000\n" "POT-Creation-Date: 2019-11-12 14:55+0000\n"
"PO-Revision-Date: 2019-06-06 10:57+0000\n" "PO-Revision-Date: 2023-02-17 20:51+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Hemish <Unknown>\n"
"Language-Team: Hindi <hi@li.org>\n" "Language-Team: Hindi <hi@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"
@ -198,7 +198,7 @@ msgstr "सभी"
#: deluge/plugins/AutoAdd/deluge_autoadd/gtkui.py:534 #: deluge/plugins/AutoAdd/deluge_autoadd/gtkui.py:534
#: deluge/ui/web/js/deluge-all/UI.js:19 #: deluge/ui/web/js/deluge-all/UI.js:19
msgid "Active" msgid "Active"
msgstr "" msgstr "सक्रिय"
#: deluge/ui/common.py:39 deluge/ui/web/js/deluge-all/UI.js:20 #: deluge/ui/common.py:39 deluge/ui/web/js/deluge-all/UI.js:20
msgid "Allocating" msgid "Allocating"
@ -223,11 +223,11 @@ msgstr "सीड किया जा रहा है"
#: deluge/ui/common.py:43 deluge/ui/web/js/deluge-all/UI.js:24 #: deluge/ui/common.py:43 deluge/ui/web/js/deluge-all/UI.js:24
msgid "Paused" msgid "Paused"
msgstr "ठहराया हुआ" msgstr "ठहरा हुआ"
#: deluge/ui/common.py:44 deluge/ui/web/js/deluge-all/UI.js:26 #: deluge/ui/common.py:44 deluge/ui/web/js/deluge-all/UI.js:26
msgid "Queued" msgid "Queued"
msgstr "क़तार-बद्ध" msgstr "पंक्तिबद्ध"
#: deluge/ui/common.py:45 deluge/ui/common.py:122 #: deluge/ui/common.py:45 deluge/ui/common.py:122
#: deluge/ui/gtk3/statusbar.py:396 deluge/ui/gtk3/filtertreeview.py:131 #: deluge/ui/gtk3/statusbar.py:396 deluge/ui/gtk3/filtertreeview.py:131
@ -288,7 +288,7 @@ msgstr "अपलोडेड"
#: deluge/ui/common.py:57 deluge/ui/gtk3/torrentview.py:303 #: deluge/ui/common.py:57 deluge/ui/gtk3/torrentview.py:303
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:260 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:260
msgid "Remaining" msgid "Remaining"
msgstr "" msgstr "बाकी"
#: deluge/ui/common.py:58 deluge/ui/gtk3/torrentview.py:373 #: deluge/ui/common.py:58 deluge/ui/gtk3/torrentview.py:373
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:165 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:165
@ -393,7 +393,7 @@ msgstr ""
#: deluge/ui/common.py:86 deluge/ui/gtk3/torrentview.py:394 #: deluge/ui/common.py:86 deluge/ui/gtk3/torrentview.py:394
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:197 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:197
msgid "Completed" msgid "Completed"
msgstr "" msgstr "पूर्ण"
#: deluge/ui/common.py:87 deluge/ui/gtk3/torrentview.py:366 #: deluge/ui/common.py:87 deluge/ui/gtk3/torrentview.py:366
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:158 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:158
@ -404,7 +404,7 @@ msgstr "इ टी ए (E T A)"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:30 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:30
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:236 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:236
msgid "Shared" msgid "Shared"
msgstr "" msgstr "साझा किए गए"
#: deluge/ui/common.py:90 deluge/ui/gtk3/glade/main_window.tabs.ui.h:31 #: deluge/ui/common.py:90 deluge/ui/gtk3/glade/main_window.tabs.ui.h:31
#: deluge/ui/web/js/deluge-all/details/OptionsTab.js:287 #: deluge/ui/web/js/deluge-all/details/OptionsTab.js:287
@ -455,7 +455,7 @@ msgstr ""
#: deluge/ui/web/js/deluge-all/FilterPanel.js:32 #: deluge/ui/web/js/deluge-all/FilterPanel.js:32
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:221 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:221
msgid "Owner" msgid "Owner"
msgstr "" msgstr "मालिक"
#: deluge/ui/common.py:116 #: deluge/ui/common.py:116
msgid "Pieces" msgid "Pieces"
@ -539,7 +539,7 @@ msgstr "प्रॉक्सी"
#: deluge/ui/console/modes/preferences/preferences.py:97 #: deluge/ui/console/modes/preferences/preferences.py:97
#: deluge/ui/web/js/deluge-all/preferences/CachePage.js:18 #: deluge/ui/web/js/deluge-all/preferences/CachePage.js:18
msgid "Cache" msgid "Cache"
msgstr "" msgstr "कैश"
#: deluge/ui/common.py:136 deluge/ui/gtk3/glade/preferences_dialog.ui.h:190 #: deluge/ui/common.py:136 deluge/ui/gtk3/glade/preferences_dialog.ui.h:190
#: deluge/ui/console/modes/preferences/preference_panes.py:499 #: deluge/ui/console/modes/preferences/preference_panes.py:499
@ -567,22 +567,22 @@ msgstr "प्लग-इन्स"
#: deluge/ui/common.py:150 deluge/ui/web/js/deluge-all/Deluge.js:154 #: deluge/ui/common.py:150 deluge/ui/web/js/deluge-all/Deluge.js:154
#: deluge/ui/web/js/deluge-all/Menus.js:365 #: deluge/ui/web/js/deluge-all/Menus.js:365
msgid "Skip" msgid "Skip"
msgstr "" msgstr "अभी नहीं"
#: deluge/ui/common.py:151 deluge/ui/web/js/deluge-all/Deluge.js:155 #: deluge/ui/common.py:151 deluge/ui/web/js/deluge-all/Deluge.js:155
#: deluge/ui/web/js/deluge-all/Menus.js:371 #: deluge/ui/web/js/deluge-all/Menus.js:371
msgid "Low" msgid "Low"
msgstr "" msgstr "कम"
#: deluge/ui/common.py:152 deluge/ui/web/js/deluge-all/Deluge.js:156 #: deluge/ui/common.py:152 deluge/ui/web/js/deluge-all/Deluge.js:156
#: deluge/ui/web/js/deluge-all/Menus.js:377 #: deluge/ui/web/js/deluge-all/Menus.js:377
msgid "Normal" msgid "Normal"
msgstr "" msgstr "सामान्य"
#: deluge/ui/common.py:153 deluge/ui/web/js/deluge-all/Deluge.js:157 #: deluge/ui/common.py:153 deluge/ui/web/js/deluge-all/Deluge.js:157
#: deluge/ui/web/js/deluge-all/Menus.js:383 #: deluge/ui/web/js/deluge-all/Menus.js:383
msgid "High" msgid "High"
msgstr "" msgstr "उच्च"
#: deluge/ui/client.py:681 #: deluge/ui/client.py:681
msgid "" msgid ""
@ -592,7 +592,7 @@ msgstr ""
#: deluge/ui/countries.py:10 #: deluge/ui/countries.py:10
msgid "Afghanistan" msgid "Afghanistan"
msgstr "" msgstr "अफ़ग़ानिस्तान"
#: deluge/ui/countries.py:11 #: deluge/ui/countries.py:11
msgid "Aland Islands" msgid "Aland Islands"
@ -644,15 +644,15 @@ msgstr ""
#: deluge/ui/countries.py:23 #: deluge/ui/countries.py:23
msgid "Australia" msgid "Australia"
msgstr "" msgstr "ऑस्ट्रेलिया"
#: deluge/ui/countries.py:24 #: deluge/ui/countries.py:24
msgid "Austria" msgid "Austria"
msgstr "" msgstr "ऑस्ट्रिया"
#: deluge/ui/countries.py:25 #: deluge/ui/countries.py:25
msgid "Azerbaijan" msgid "Azerbaijan"
msgstr "" msgstr "अज़रबैजान"
#: deluge/ui/countries.py:26 #: deluge/ui/countries.py:26
msgid "Bahamas" msgid "Bahamas"
@ -664,7 +664,7 @@ msgstr ""
#: deluge/ui/countries.py:28 #: deluge/ui/countries.py:28
msgid "Bangladesh" msgid "Bangladesh"
msgstr "" msgstr "बांग्लादेश"
#: deluge/ui/countries.py:29 #: deluge/ui/countries.py:29
msgid "Barbados" msgid "Barbados"
@ -672,11 +672,11 @@ msgstr ""
#: deluge/ui/countries.py:30 #: deluge/ui/countries.py:30
msgid "Belarus" msgid "Belarus"
msgstr "" msgstr "बेलारूस"
#: deluge/ui/countries.py:31 #: deluge/ui/countries.py:31
msgid "Belgium" msgid "Belgium"
msgstr "" msgstr "बेल्जियम"
#: deluge/ui/countries.py:32 #: deluge/ui/countries.py:32
msgid "Belize" msgid "Belize"
@ -1887,7 +1887,7 @@ msgstr ""
#: deluge/ui/web/js/deluge-all/EditConnectionWindow.js:65 #: deluge/ui/web/js/deluge-all/EditConnectionWindow.js:65
#: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:74 #: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:74
msgid "Username:" msgid "Username:"
msgstr "उपयोगक्ता का नाम:" msgstr "उपयोगक्ता का नाम:"
#: deluge/ui/gtk3/dialogs.py:217 deluge/ui/gtk3/dialogs.py:310 #: deluge/ui/gtk3/dialogs.py:217 deluge/ui/gtk3/dialogs.py:310
#: deluge/ui/gtk3/dialogs.py:437 #: deluge/ui/gtk3/dialogs.py:437
@ -2264,7 +2264,7 @@ msgstr "स्तर"
#: deluge/ui/web/js/deluge-all/preferences/EncryptionPage.js:67 #: deluge/ui/web/js/deluge-all/preferences/EncryptionPage.js:67
#: deluge/ui/web/js/deluge-all/preferences/PluginsPage.js:71 #: deluge/ui/web/js/deluge-all/preferences/PluginsPage.js:71
msgid "Enabled" msgid "Enabled"
msgstr "सक्रिय किया" msgstr "सक्रिय"
#: deluge/ui/gtk3/preferences.py:162 #: deluge/ui/gtk3/preferences.py:162
#: deluge/ui/web/js/deluge-all/preferences/PluginsPage.js:87 #: deluge/ui/web/js/deluge-all/preferences/PluginsPage.js:87
@ -3223,7 +3223,7 @@ msgstr ""
#: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:11 #: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:11
#: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:155 #: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:155
msgid "From:" msgid "From:"
msgstr "द्वारा:" msgstr "प्रेषक:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:119 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:119
#: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:165 #: deluge/ui/web/js/deluge-all/preferences/NetworkPage.js:165
@ -3403,7 +3403,7 @@ msgstr ""
#: deluge/ui/web/js/deluge-all/preferences/EncryptionPage.js:29 #: deluge/ui/web/js/deluge-all/preferences/EncryptionPage.js:29
#: deluge/ui/web/js/deluge-all/preferences/CachePage.js:30 #: deluge/ui/web/js/deluge-all/preferences/CachePage.js:30
msgid "Settings" msgid "Settings"
msgstr "" msgstr "सेटिंग्स"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:155 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:155
msgid "" msgid ""
@ -5023,7 +5023,7 @@ msgstr "चालु होने पर ब्लॉकलिस्ट आय
#: deluge/plugins/Blocklist/deluge_blocklist/data/blocklist_pref.ui.h:6 #: deluge/plugins/Blocklist/deluge_blocklist/data/blocklist_pref.ui.h:6
#: deluge/plugins/WebUi/deluge_webui/data/config.ui.h:4 #: deluge/plugins/WebUi/deluge_webui/data/config.ui.h:4
msgid "<b>Settings</b>" msgid "<b>Settings</b>"
msgstr "<b>सेटिंग</b>" msgstr "<b>सेटिंग्स</b>"
#: deluge/plugins/Blocklist/deluge_blocklist/data/blocklist_pref.ui.h:7 #: deluge/plugins/Blocklist/deluge_blocklist/data/blocklist_pref.ui.h:7
msgid "Download the blocklist file if necessary and import the file." msgid "Download the blocklist file if necessary and import the file."
@ -5126,7 +5126,7 @@ msgstr ""
#: deluge/plugins/AutoAdd/deluge_autoadd/gtkui.py:507 #: deluge/plugins/AutoAdd/deluge_autoadd/gtkui.py:507
msgid "Path" msgid "Path"
msgstr "" msgstr "पाथ"
#: deluge/plugins/AutoAdd/deluge_autoadd/core.py:125 #: deluge/plugins/AutoAdd/deluge_autoadd/core.py:125
msgid "Watch folder does not exist." msgid "Watch folder does not exist."
@ -5135,7 +5135,7 @@ msgstr ""
#: deluge/plugins/AutoAdd/deluge_autoadd/core.py:128 #: deluge/plugins/AutoAdd/deluge_autoadd/core.py:128
#: deluge/plugins/AutoAdd/deluge_autoadd/core.py:443 #: deluge/plugins/AutoAdd/deluge_autoadd/core.py:443
msgid "Path does not exist." msgid "Path does not exist."
msgstr "" msgstr "पाथ मौजूद नहीं है"
#: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:1 #: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:1
msgid "Watch Folder Properties" msgid "Watch Folder Properties"
@ -5372,7 +5372,7 @@ msgstr ""
#: deluge/plugins/WebUi/deluge_webui/data/config.ui.h:3 #: deluge/plugins/WebUi/deluge_webui/data/config.ui.h:3
msgid "Listening port:" msgid "Listening port:"
msgstr "" msgstr "सुनने का पोर्ट:"
#: deluge/plugins/Label/deluge_label/core.py:184 #: deluge/plugins/Label/deluge_label/core.py:184
msgid "Invalid label, valid characters:[a-z0-9_-]" msgid "Invalid label, valid characters:[a-z0-9_-]"
@ -5495,7 +5495,7 @@ msgstr ""
#: deluge/plugins/Notifications/deluge_notifications/gtkui.py:194 #: deluge/plugins/Notifications/deluge_notifications/gtkui.py:194
msgid "pygame is not installed" msgid "pygame is not installed"
msgstr "" msgstr "pygame स्थापित नहीं है"
#: deluge/plugins/Notifications/deluge_notifications/gtkui.py:206 #: deluge/plugins/Notifications/deluge_notifications/gtkui.py:206
#, python-format #, python-format
@ -5573,7 +5573,7 @@ msgstr ""
#: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:3 #: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:3
msgid "Sound enabled" msgid "Sound enabled"
msgstr "" msgstr "ध्वनि सक्षम हैं"
#: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:4 #: deluge/plugins/Notifications/deluge_notifications/data/config.ui.h:4
msgid "<b>UI Notifications</b>" msgid "<b>UI Notifications</b>"
@ -5724,7 +5724,7 @@ msgstr "स्थानान्तर"
#: deluge/ui/web/js/deluge-all/MoveStorage.js:54 #: deluge/ui/web/js/deluge-all/MoveStorage.js:54
msgid "Browse" msgid "Browse"
msgstr "" msgstr "ब्राउज़ करें"
#: deluge/ui/web/js/deluge-all/EditConnectionWindow.js:17 #: deluge/ui/web/js/deluge-all/EditConnectionWindow.js:17
msgid "Edit Connection" msgid "Edit Connection"
@ -5757,7 +5757,7 @@ msgstr ""
#: deluge/ui/web/js/deluge-all/Deluge.js:158 #: deluge/ui/web/js/deluge-all/Deluge.js:158
msgid "Mixed" msgid "Mixed"
msgstr "" msgstr "मिश्रित"
#: deluge/ui/web/js/deluge-all/Statusbar.js:87 #: deluge/ui/web/js/deluge-all/Statusbar.js:87
msgid "Set Maximum Connections" msgid "Set Maximum Connections"
@ -5906,7 +5906,7 @@ msgstr "बलपूर्वक पुनः जांच"
#: deluge/ui/web/js/deluge-all/Menus.js:359 #: deluge/ui/web/js/deluge-all/Menus.js:359
msgid "Expand All" msgid "Expand All"
msgstr "" msgstr "सभी फैलाएँ"
#: deluge/ui/web/js/deluge-all/details/DetailsTab.js:13 #: deluge/ui/web/js/deluge-all/details/DetailsTab.js:13
msgid "Details" msgid "Details"
@ -5914,11 +5914,11 @@ msgstr "विवरण"
#: deluge/ui/web/js/deluge-all/details/DetailsTab.js:28 #: deluge/ui/web/js/deluge-all/details/DetailsTab.js:28
msgid "Comment:" msgid "Comment:"
msgstr "" msgstr "टिप्पणीः"
#: deluge/ui/web/js/deluge-all/details/DetailsTab.js:29 #: deluge/ui/web/js/deluge-all/details/DetailsTab.js:29
msgid "Status:" msgid "Status:"
msgstr "" msgstr "स्थिति:"
#: deluge/ui/web/js/deluge-all/details/OptionsTab.js:242 #: deluge/ui/web/js/deluge-all/details/OptionsTab.js:242
msgid "Move Completed:" msgid "Move Completed:"
@ -5935,7 +5935,7 @@ msgstr "निजी"
#: deluge/ui/web/js/deluge-all/details/StatusTab.js:39 #: deluge/ui/web/js/deluge-all/details/StatusTab.js:39
msgid "Loading" msgid "Loading"
msgstr "" msgstr "लोड हो रहा है"
#: deluge/ui/web/js/deluge-all/details/StatusTab.js:118 #: deluge/ui/web/js/deluge-all/details/StatusTab.js:118
msgid "True" msgid "True"
@ -5962,7 +5962,7 @@ msgstr ""
#: deluge/ui/web/js/deluge-all/preferences/InstallPluginWindow.js:33 #: deluge/ui/web/js/deluge-all/preferences/InstallPluginWindow.js:33
#: deluge/ui/web/js/deluge-all/preferences/PluginsPage.js:109 #: deluge/ui/web/js/deluge-all/preferences/PluginsPage.js:109
msgid "Install" msgid "Install"
msgstr "" msgstr "स्थापित करें"
#: deluge/ui/web/js/deluge-all/preferences/InstallPluginWindow.js:45 #: deluge/ui/web/js/deluge-all/preferences/InstallPluginWindow.js:45
msgid "Select an egg" msgid "Select an egg"
@ -6041,11 +6041,11 @@ msgstr ""
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:110 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:110
msgid "Old:" msgid "Old:"
msgstr "" msgstr "पुराना:"
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:114 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:114
msgid "New:" msgid "New:"
msgstr "" msgstr "नया:"
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:118 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:118
msgid "Confirm:" msgid "Confirm:"
@ -6081,11 +6081,11 @@ msgstr ""
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:210 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:210
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr "ताज़ा करें"
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:244 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:244
msgid "Invalid Password" msgid "Invalid Password"
msgstr "" msgstr "अवैध पासवर्ड"
#: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:245 #: deluge/ui/web/js/deluge-all/preferences/InterfacePage.js:245
msgid "Your passwords don't match!" msgid "Your passwords don't match!"
@ -6114,7 +6114,7 @@ msgstr "यूआरएल"
#: deluge/ui/web/js/deluge-all/add/UrlWindow.js:45 #: deluge/ui/web/js/deluge-all/add/UrlWindow.js:45
msgid "Cookies" msgid "Cookies"
msgstr "" msgstr "कुकी"
#: deluge/ui/web/js/deluge-all/add/UrlWindow.js:99 #: deluge/ui/web/js/deluge-all/add/UrlWindow.js:99
msgid "Failed to download torrent" msgid "Failed to download torrent"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
"Language: hr\n" "Language: hr\n"
#: deluge/common.py:411 #: deluge/common.py:411

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: deluge\n" "Project-Id-Version: deluge\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2019-11-12 14:55+0000\n" "POT-Creation-Date: 2019-11-12 14:55+0000\n"
"PO-Revision-Date: 2019-06-06 10:57+0000\n" "PO-Revision-Date: 2022-08-03 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Coool <Unknown>\n"
"Language-Team: Latvian <lv@li.org>\n" "Language-Team: Latvian <lv@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"
@ -125,6 +125,8 @@ msgstr ""
#: deluge/argparserbase.py:206 #: deluge/argparserbase.py:206
msgid "Set the log level (none, error, warning, info, debug)" msgid "Set the log level (none, error, warning, info, debug)"
msgstr "" msgstr ""
"Iestatīt žurnāla līmeni (nežurnalēt, kļūda, brīdinājums, informācija, "
"atkļūdošana)"
#: deluge/argparserbase.py:215 #: deluge/argparserbase.py:215
#, python-format #, python-format

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

6164
deluge/i18n/mo.po Normal file

File diff suppressed because it is too large Load diff

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -8,18 +8,18 @@ msgstr ""
"Project-Id-Version: deluge\n" "Project-Id-Version: deluge\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2019-11-12 14:55+0000\n" "POT-Creation-Date: 2019-11-12 14:55+0000\n"
"PO-Revision-Date: 2019-06-06 10:57+0000\n" "PO-Revision-Date: 2021-12-23 05:43+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Sam van Kampen <sam@tehsvk.net>\n"
"Language-Team: Dutch <nl@li.org>\n" "Language-Team: Dutch <nl@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"
msgstr "" msgstr "B"
#: deluge/common.py:412 #: deluge/common.py:412
msgid "KiB" msgid "KiB"
@ -35,7 +35,7 @@ msgstr "GiB"
#: deluge/common.py:415 #: deluge/common.py:415
msgid "TiB" msgid "TiB"
msgstr "" msgstr "TiB"
#: deluge/common.py:416 #: deluge/common.py:416
msgid "K" msgid "K"
@ -80,7 +80,7 @@ msgstr "KiB/s"
#: deluge/common.py:521 #: deluge/common.py:521
msgid "M/s" msgid "M/s"
msgstr "" msgstr "M/s"
#: deluge/common.py:521 #: deluge/common.py:521
msgid "MiB/s" msgid "MiB/s"
@ -88,7 +88,7 @@ msgstr "MiB/s"
#: deluge/common.py:527 #: deluge/common.py:527
msgid "G/s" msgid "G/s"
msgstr "" msgstr "G/s"
#: deluge/common.py:527 #: deluge/common.py:527
msgid "GiB/s" msgid "GiB/s"
@ -96,11 +96,11 @@ msgstr "GiB/s"
#: deluge/common.py:533 #: deluge/common.py:533
msgid "T/s" msgid "T/s"
msgstr "" msgstr "T/s"
#: deluge/common.py:533 #: deluge/common.py:533
msgid "TiB/s" msgid "TiB/s"
msgstr "" msgstr "TiB/s"
#: deluge/argparserbase.py:172 #: deluge/argparserbase.py:172
msgid "Common Options" msgid "Common Options"
@ -108,11 +108,11 @@ msgstr ""
#: deluge/argparserbase.py:175 #: deluge/argparserbase.py:175
msgid "Print this help message" msgid "Print this help message"
msgstr "" msgstr "Dit Help-bericht afdrukken"
#: deluge/argparserbase.py:182 #: deluge/argparserbase.py:182
msgid "Print version information" msgid "Print version information"
msgstr "" msgstr "Versie-informatie afdrukken"
#: deluge/argparserbase.py:194 #: deluge/argparserbase.py:194
msgid "Set the config directory path" msgid "Set the config directory path"
@ -278,12 +278,12 @@ msgstr "Grootte"
#: deluge/ui/common.py:55 deluge/ui/gtk3/torrentview.py:289 #: deluge/ui/common.py:55 deluge/ui/gtk3/torrentview.py:289
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:244 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:244
msgid "Downloaded" msgid "Downloaded"
msgstr "Gedownloaded" msgstr "Binnengehaald"
#: deluge/ui/common.py:56 deluge/ui/gtk3/torrentview.py:296 #: deluge/ui/common.py:56 deluge/ui/gtk3/torrentview.py:296
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:252 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:252
msgid "Uploaded" msgid "Uploaded"
msgstr "Geupload" msgstr "Geüpload"
#: deluge/ui/common.py:57 deluge/ui/gtk3/torrentview.py:303 #: deluge/ui/common.py:57 deluge/ui/gtk3/torrentview.py:303
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:260 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:260
@ -3901,17 +3901,17 @@ msgstr ""
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:28 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:28
#: deluge/ui/web/render/tab_status.html:10 #: deluge/ui/web/render/tab_status.html:10
msgid "Up Speed:" msgid "Up Speed:"
msgstr "" msgstr "Uploadsnelheid:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:3 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:3
#: deluge/ui/web/render/tab_status.html:2 #: deluge/ui/web/render/tab_status.html:2
msgid "Downloaded:" msgid "Downloaded:"
msgstr "" msgstr "Binnengehaald:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:4 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:4
#: deluge/ui/web/render/tab_status.html:3 #: deluge/ui/web/render/tab_status.html:3
msgid "Uploaded:" msgid "Uploaded:"
msgstr "" msgstr "Geüpload:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:5 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:5
#: deluge/ui/web/render/tab_status.html:16 #: deluge/ui/web/render/tab_status.html:16

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -8,18 +8,18 @@ msgstr ""
"Project-Id-Version: deluge\n" "Project-Id-Version: deluge\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2019-11-12 14:55+0000\n" "POT-Creation-Date: 2019-11-12 14:55+0000\n"
"PO-Revision-Date: 2019-06-06 10:57+0000\n" "PO-Revision-Date: 2023-11-06 18:51+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Cas <Unknown>\n"
"Language-Team: Polish <pl@li.org>\n" "Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"
msgstr "" msgstr "B"
#: deluge/common.py:412 #: deluge/common.py:412
msgid "KiB" msgid "KiB"
@ -35,7 +35,7 @@ msgstr "GiB"
#: deluge/common.py:415 #: deluge/common.py:415
msgid "TiB" msgid "TiB"
msgstr "" msgstr "TiB"
#: deluge/common.py:416 #: deluge/common.py:416
msgid "K" msgid "K"
@ -51,7 +51,7 @@ msgstr "G"
#: deluge/common.py:419 #: deluge/common.py:419
msgid "T" msgid "T"
msgstr "" msgstr "T"
#: deluge/common.py:515 deluge/ui/gtk3/statusbar.py:442 #: deluge/common.py:515 deluge/ui/gtk3/statusbar.py:442
#: deluge/ui/gtk3/statusbar.py:455 deluge/ui/gtk3/statusbar.py:464 #: deluge/ui/gtk3/statusbar.py:455 deluge/ui/gtk3/statusbar.py:464
@ -62,7 +62,7 @@ msgstr ""
#: deluge/ui/gtk3/systemtray.py:274 deluge/ui/gtk3/systemtray.py:442 #: deluge/ui/gtk3/systemtray.py:274 deluge/ui/gtk3/systemtray.py:442
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:40 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:40
msgid "K/s" msgid "K/s"
msgstr "" msgstr "K/s"
#: deluge/common.py:515 deluge/ui/gtk3/menubar.py:449 #: deluge/common.py:515 deluge/ui/gtk3/menubar.py:449
#: deluge/ui/gtk3/menubar.py:455 #: deluge/ui/gtk3/menubar.py:455
@ -80,7 +80,7 @@ msgstr "KiB/s"
#: deluge/common.py:521 #: deluge/common.py:521
msgid "M/s" msgid "M/s"
msgstr "" msgstr "M/s"
#: deluge/common.py:521 #: deluge/common.py:521
msgid "MiB/s" msgid "MiB/s"
@ -88,7 +88,7 @@ msgstr "MiB/s"
#: deluge/common.py:527 #: deluge/common.py:527
msgid "G/s" msgid "G/s"
msgstr "" msgstr "G/s"
#: deluge/common.py:527 #: deluge/common.py:527
msgid "GiB/s" msgid "GiB/s"
@ -96,11 +96,11 @@ msgstr "GiB/s"
#: deluge/common.py:533 #: deluge/common.py:533
msgid "T/s" msgid "T/s"
msgstr "" msgstr "T/s"
#: deluge/common.py:533 #: deluge/common.py:533
msgid "TiB/s" msgid "TiB/s"
msgstr "" msgstr "TiB/s"
#: deluge/argparserbase.py:172 #: deluge/argparserbase.py:172
msgid "Common Options" msgid "Common Options"
@ -198,36 +198,36 @@ msgstr "Wszystkie"
#: deluge/plugins/AutoAdd/deluge_autoadd/gtkui.py:534 #: deluge/plugins/AutoAdd/deluge_autoadd/gtkui.py:534
#: deluge/ui/web/js/deluge-all/UI.js:19 #: deluge/ui/web/js/deluge-all/UI.js:19
msgid "Active" msgid "Active"
msgstr "Aktywny" msgstr "Aktywne"
#: deluge/ui/common.py:39 deluge/ui/web/js/deluge-all/UI.js:20 #: deluge/ui/common.py:39 deluge/ui/web/js/deluge-all/UI.js:20
msgid "Allocating" msgid "Allocating"
msgstr "" msgstr "Alokowane"
#: deluge/ui/common.py:40 deluge/ui/web/js/deluge-all/UI.js:21 #: deluge/ui/common.py:40 deluge/ui/web/js/deluge-all/UI.js:21
#: deluge/ui/web/js/deluge-all/UI.js:25 #: deluge/ui/web/js/deluge-all/UI.js:25
msgid "Checking" msgid "Checking"
msgstr "Sprawdzanie" msgstr "Sprawdzane"
#: deluge/ui/common.py:41 #: deluge/ui/common.py:41
#: deluge/ui/console/modes/preferences/preference_panes.py:568 #: deluge/ui/console/modes/preferences/preference_panes.py:568
#: deluge/ui/web/js/deluge-all/UI.js:22 #: deluge/ui/web/js/deluge-all/UI.js:22
msgid "Downloading" msgid "Downloading"
msgstr "Pobieranie" msgstr "Pobierane"
#: deluge/ui/common.py:42 #: deluge/ui/common.py:42
#: deluge/ui/console/modes/preferences/preference_panes.py:575 #: deluge/ui/console/modes/preferences/preference_panes.py:575
#: deluge/ui/web/js/deluge-all/UI.js:23 #: deluge/ui/web/js/deluge-all/UI.js:23
msgid "Seeding" msgid "Seeding"
msgstr "Wysyłanie" msgstr "Wysyłane"
#: deluge/ui/common.py:43 deluge/ui/web/js/deluge-all/UI.js:24 #: deluge/ui/common.py:43 deluge/ui/web/js/deluge-all/UI.js:24
msgid "Paused" msgid "Paused"
msgstr "Pauza" msgstr "Wstrzymane"
#: deluge/ui/common.py:44 deluge/ui/web/js/deluge-all/UI.js:26 #: deluge/ui/common.py:44 deluge/ui/web/js/deluge-all/UI.js:26
msgid "Queued" msgid "Queued"
msgstr "W kolejce" msgstr "Zakolejkowane"
#: deluge/ui/common.py:45 deluge/ui/common.py:122 #: deluge/ui/common.py:45 deluge/ui/common.py:122
#: deluge/ui/gtk3/statusbar.py:396 deluge/ui/gtk3/filtertreeview.py:131 #: deluge/ui/gtk3/statusbar.py:396 deluge/ui/gtk3/filtertreeview.py:131
@ -243,7 +243,7 @@ msgstr "W kolejce"
#: deluge/ui/web/js/deluge-all/add/AddWindow.js:291 #: deluge/ui/web/js/deluge-all/add/AddWindow.js:291
#: deluge/ui/web/js/deluge-all/add/AddWindow.js:316 #: deluge/ui/web/js/deluge-all/add/AddWindow.js:316
msgid "Error" msgid "Error"
msgstr "Błąd" msgstr "Błędne"
#: deluge/ui/common.py:50 deluge/ui/gtk3/listview.py:793 #: deluge/ui/common.py:50 deluge/ui/gtk3/listview.py:793
#: deluge/ui/gtk3/torrentview.py:180 deluge/ui/gtk3/torrentview.py:276 #: deluge/ui/gtk3/torrentview.py:180 deluge/ui/gtk3/torrentview.py:276
@ -288,26 +288,26 @@ msgstr "Wysłano"
#: deluge/ui/common.py:57 deluge/ui/gtk3/torrentview.py:303 #: deluge/ui/common.py:57 deluge/ui/gtk3/torrentview.py:303
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:260 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:260
msgid "Remaining" msgid "Remaining"
msgstr "" msgstr "Pozostało"
#: deluge/ui/common.py:58 deluge/ui/gtk3/torrentview.py:373 #: deluge/ui/common.py:58 deluge/ui/gtk3/torrentview.py:373
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:165 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:165
msgid "Ratio" msgid "Ratio"
msgstr "Ratio" msgstr "Ułamek"
#: deluge/ui/common.py:59 deluge/ui/gtk3/torrentview.py:340 #: deluge/ui/common.py:59 deluge/ui/gtk3/torrentview.py:340
#: deluge/ui/gtk3/peers_tab.py:133 #: deluge/ui/gtk3/peers_tab.py:133
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:144 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:144
#: deluge/ui/web/js/deluge-all/details/PeersTab.js:87 #: deluge/ui/web/js/deluge-all/details/PeersTab.js:87
msgid "Down Speed" msgid "Down Speed"
msgstr "Szybk. pobierania" msgstr "Szybkość pobierania"
#: deluge/ui/common.py:60 deluge/ui/gtk3/torrentview.py:346 #: deluge/ui/common.py:60 deluge/ui/gtk3/torrentview.py:346
#: deluge/ui/gtk3/peers_tab.py:146 #: deluge/ui/gtk3/peers_tab.py:146
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:151 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:151
#: deluge/ui/web/js/deluge-all/details/PeersTab.js:94 #: deluge/ui/web/js/deluge-all/details/PeersTab.js:94
msgid "Up Speed" msgid "Up Speed"
msgstr "Szybk. wysyłania" msgstr "Szybkość wysyłania"
#: deluge/ui/common.py:61 deluge/ui/gtk3/torrentview.py:352 #: deluge/ui/common.py:61 deluge/ui/gtk3/torrentview.py:352
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:268 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:268
@ -321,11 +321,11 @@ msgstr "Limit Wysyłania"
#: deluge/ui/common.py:63 deluge/ui/web/js/deluge-all/add/OptionsTab.js:101 #: deluge/ui/common.py:63 deluge/ui/web/js/deluge-all/add/OptionsTab.js:101
msgid "Max Connections" msgid "Max Connections"
msgstr "" msgstr "Maksymalnie Połączeń"
#: deluge/ui/common.py:64 deluge/ui/web/js/deluge-all/add/OptionsTab.js:109 #: deluge/ui/common.py:64 deluge/ui/web/js/deluge-all/add/OptionsTab.js:109
msgid "Max Upload Slots" msgid "Max Upload Slots"
msgstr "" msgstr "Maksymalnie Slotów Wysyłania"
#: deluge/ui/common.py:65 deluge/ui/gtk3/torrentview.py:325 #: deluge/ui/common.py:65 deluge/ui/gtk3/torrentview.py:325
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:136 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:136
@ -336,17 +336,17 @@ msgstr "Uczestnicy"
#: deluge/ui/common.py:66 deluge/ui/gtk3/torrentview.py:317 #: deluge/ui/common.py:66 deluge/ui/gtk3/torrentview.py:317
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:128 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:128
msgid "Seeds" msgid "Seeds"
msgstr "" msgstr "Posiadacze"
#: deluge/ui/common.py:67 deluge/ui/gtk3/torrentview.py:380 #: deluge/ui/common.py:67 deluge/ui/gtk3/torrentview.py:380
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:173 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:173
msgid "Avail" msgid "Avail"
msgstr "Dost." msgstr "Dostępność"
#: deluge/ui/common.py:68 deluge/ui/gtk3/torrentview.py:333 #: deluge/ui/common.py:68 deluge/ui/gtk3/torrentview.py:333
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:284 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:284
msgid "Seeds:Peers" msgid "Seeds:Peers"
msgstr "" msgstr "Posiadaczy:Uczestników"
#: deluge/ui/common.py:69 deluge/ui/gtk3/listview.py:203 #: deluge/ui/common.py:69 deluge/ui/gtk3/listview.py:203
#: deluge/ui/gtk3/torrentview.py:387 #: deluge/ui/gtk3/torrentview.py:387
@ -367,33 +367,33 @@ msgstr "Tracker"
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:213 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:213
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:31 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:31
msgid "Download Folder" msgid "Download Folder"
msgstr "" msgstr "Folder pobrania"
#: deluge/ui/common.py:75 #: deluge/ui/common.py:75
msgid "Seeding Time" msgid "Seeding Time"
msgstr "" msgstr "Razem wysyłano czasu"
#: deluge/ui/common.py:76 #: deluge/ui/common.py:76
msgid "Active Time" msgid "Active Time"
msgstr "" msgstr "Razem aktywności czasu"
#: deluge/ui/common.py:78 #: deluge/ui/common.py:78
msgid "Last Activity" msgid "Last Activity"
msgstr "" msgstr "Ostatnia aktywność"
#: deluge/ui/common.py:81 #: deluge/ui/common.py:81
msgid "Finished Time" msgid "Finished Time"
msgstr "" msgstr "Zakończono o"
#: deluge/ui/common.py:83 deluge/ui/gtk3/torrentview.py:401 #: deluge/ui/common.py:83 deluge/ui/gtk3/torrentview.py:401
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:189 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:189
msgid "Complete Seen" msgid "Complete Seen"
msgstr "" msgstr "Ostatnio widziano cały o"
#: deluge/ui/common.py:86 deluge/ui/gtk3/torrentview.py:394 #: deluge/ui/common.py:86 deluge/ui/gtk3/torrentview.py:394
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:197 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:197
msgid "Completed" msgid "Completed"
msgstr "" msgstr "Zakończono o"
#: deluge/ui/common.py:87 deluge/ui/gtk3/torrentview.py:366 #: deluge/ui/common.py:87 deluge/ui/gtk3/torrentview.py:366
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:158 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:158
@ -404,7 +404,7 @@ msgstr "Pozostało"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:30 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:30
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:236 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:236
msgid "Shared" msgid "Shared"
msgstr "" msgstr "Współdzielony"
#: deluge/ui/common.py:90 deluge/ui/gtk3/glade/main_window.tabs.ui.h:31 #: deluge/ui/common.py:90 deluge/ui/gtk3/glade/main_window.tabs.ui.h:31
#: deluge/ui/web/js/deluge-all/details/OptionsTab.js:287 #: deluge/ui/web/js/deluge-all/details/OptionsTab.js:287
@ -415,7 +415,7 @@ msgstr "Kolejkuj Pierwszy/Ostatni"
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:14 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:14
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:143 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:143
msgid "Sequential Download" msgid "Sequential Download"
msgstr "" msgstr "Sekwencyjne pobieranie"
#: deluge/ui/common.py:97 deluge/ui/common.py:98 #: deluge/ui/common.py:97 deluge/ui/common.py:98
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:35 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:35
@ -427,19 +427,19 @@ msgstr "Automatycznie zarządzany"
#: deluge/ui/common.py:99 #: deluge/ui/common.py:99
msgid "Stop At Ratio" msgid "Stop At Ratio"
msgstr "" msgstr "Zatrzymaj na ułamku"
#: deluge/ui/common.py:100 #: deluge/ui/common.py:100
msgid "Stop Ratio" msgid "Stop Ratio"
msgstr "" msgstr "Ułamek do zatrzymania"
#: deluge/ui/common.py:101 #: deluge/ui/common.py:101
msgid "Remove At Ratio" msgid "Remove At Ratio"
msgstr "" msgstr "Usuń na ułamku"
#: deluge/ui/common.py:102 deluge/ui/common.py:108 #: deluge/ui/common.py:102 deluge/ui/common.py:108
msgid "Move On Completed" msgid "Move On Completed"
msgstr "" msgstr "Przenieś po zakończeniu"
#: deluge/ui/common.py:104 #: deluge/ui/common.py:104
msgid "Move Completed Path" msgid "Move Completed Path"
@ -455,7 +455,7 @@ msgstr ""
#: deluge/ui/web/js/deluge-all/FilterPanel.js:32 #: deluge/ui/web/js/deluge-all/FilterPanel.js:32
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:221 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:221
msgid "Owner" msgid "Owner"
msgstr "" msgstr "Właściciel"
#: deluge/ui/common.py:116 #: deluge/ui/common.py:116
msgid "Pieces" msgid "Pieces"
@ -463,13 +463,13 @@ msgstr "Fragmentów"
#: deluge/ui/common.py:117 #: deluge/ui/common.py:117
msgid "Seed Rank" msgid "Seed Rank"
msgstr "" msgstr "Cyklów seedowania"
#: deluge/ui/common.py:118 deluge/ui/gtk3/glade/main_window.tabs.ui.h:33 #: deluge/ui/common.py:118 deluge/ui/gtk3/glade/main_window.tabs.ui.h:33
#: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:22 #: deluge/ui/gtk3/glade/add_torrent_dialog.ui.h:22
#: deluge/ui/web/js/deluge-all/details/OptionsTab.js:294 #: deluge/ui/web/js/deluge-all/details/OptionsTab.js:294
msgid "Super Seeding" msgid "Super Seeding"
msgstr "" msgstr "Początkowe seedowanie"
#: deluge/ui/common.py:123 deluge/ui/web/js/deluge-all/details/StatusTab.js:122 #: deluge/ui/common.py:123 deluge/ui/web/js/deluge-all/details/StatusTab.js:122
msgid "Warning" msgid "Warning"
@ -506,7 +506,7 @@ msgstr "Pobierane"
#: deluge/ui/web/js/deluge-all/preferences/BandwidthPage.js:21 #: deluge/ui/web/js/deluge-all/preferences/BandwidthPage.js:21
#: deluge/ui/web/js/deluge-all/add/OptionsTab.js:73 #: deluge/ui/web/js/deluge-all/add/OptionsTab.js:73
msgid "Bandwidth" msgid "Bandwidth"
msgstr "Łącze" msgstr "Przepustowość"
#: deluge/ui/common.py:132 #: deluge/ui/common.py:132
#: deluge/ui/console/modes/preferences/preference_panes.py:550 #: deluge/ui/console/modes/preferences/preference_panes.py:550
@ -532,7 +532,7 @@ msgstr "Sieć"
#: deluge/ui/web/js/deluge-all/preferences/ProxyPage.js:21 #: deluge/ui/web/js/deluge-all/preferences/ProxyPage.js:21
#: deluge/ui/web/js/deluge-all/preferences/ProxyPage.js:35 #: deluge/ui/web/js/deluge-all/preferences/ProxyPage.js:35
msgid "Proxy" msgid "Proxy"
msgstr "Proxy" msgstr "Pośrednik sieciowy"
#: deluge/ui/common.py:135 #: deluge/ui/common.py:135
#: deluge/ui/console/modes/preferences/preference_panes.py:685 #: deluge/ui/console/modes/preferences/preference_panes.py:685
@ -567,22 +567,22 @@ msgstr "Wtyczki"
#: deluge/ui/common.py:150 deluge/ui/web/js/deluge-all/Deluge.js:154 #: deluge/ui/common.py:150 deluge/ui/web/js/deluge-all/Deluge.js:154
#: deluge/ui/web/js/deluge-all/Menus.js:365 #: deluge/ui/web/js/deluge-all/Menus.js:365
msgid "Skip" msgid "Skip"
msgstr "" msgstr "Nie pobieraj"
#: deluge/ui/common.py:151 deluge/ui/web/js/deluge-all/Deluge.js:155 #: deluge/ui/common.py:151 deluge/ui/web/js/deluge-all/Deluge.js:155
#: deluge/ui/web/js/deluge-all/Menus.js:371 #: deluge/ui/web/js/deluge-all/Menus.js:371
msgid "Low" msgid "Low"
msgstr "" msgstr "Niski priorytet"
#: deluge/ui/common.py:152 deluge/ui/web/js/deluge-all/Deluge.js:156 #: deluge/ui/common.py:152 deluge/ui/web/js/deluge-all/Deluge.js:156
#: deluge/ui/web/js/deluge-all/Menus.js:377 #: deluge/ui/web/js/deluge-all/Menus.js:377
msgid "Normal" msgid "Normal"
msgstr "" msgstr "Średni priorytet"
#: deluge/ui/common.py:153 deluge/ui/web/js/deluge-all/Deluge.js:157 #: deluge/ui/common.py:153 deluge/ui/web/js/deluge-all/Deluge.js:157
#: deluge/ui/web/js/deluge-all/Menus.js:383 #: deluge/ui/web/js/deluge-all/Menus.js:383
msgid "High" msgid "High"
msgstr "" msgstr "Wysoki priorytet"
#: deluge/ui/client.py:681 #: deluge/ui/client.py:681
msgid "" msgid ""

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

File diff suppressed because it is too large Load diff

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -16,8 +16,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
"Language: sv\n" "Language: sv\n"
#: deluge/common.py:411 #: deluge/common.py:411

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: deluge\n" "Project-Id-Version: deluge\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2019-11-12 14:55+0000\n" "POT-Creation-Date: 2019-11-12 14:55+0000\n"
"PO-Revision-Date: 2021-07-07 20:36+0000\n" "PO-Revision-Date: 2021-12-23 09:01+0000\n"
"Last-Translator: ma$terok <Unknown>\n" "Last-Translator: ma$terok <Unknown>\n"
"Language-Team: Ukrainian <uk@li.org>\n" "Language-Team: Ukrainian <uk@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"
@ -301,7 +301,7 @@ msgstr "Залишилося"
#: deluge/ui/common.py:58 deluge/ui/gtk3/torrentview.py:373 #: deluge/ui/common.py:58 deluge/ui/gtk3/torrentview.py:373
#: deluge/ui/web/js/deluge-all/TorrentGrid.js:165 #: deluge/ui/web/js/deluge-all/TorrentGrid.js:165
msgid "Ratio" msgid "Ratio"
msgstr "Відношення" msgstr "Рейтинг"
#: deluge/ui/common.py:59 deluge/ui/gtk3/torrentview.py:340 #: deluge/ui/common.py:59 deluge/ui/gtk3/torrentview.py:340
#: deluge/ui/gtk3/peers_tab.py:133 #: deluge/ui/gtk3/peers_tab.py:133
@ -1797,28 +1797,28 @@ msgid ""
"delete this exception statement from all source files in the program, then " "delete this exception statement from all source files in the program, then "
"also delete it here." "also delete it here."
msgstr "" msgstr ""
"Ця проґрама є вільним проґрамним забезпеченням, Ви можете розповсюджувати та " "Ця програма є безкоштовним програмним забезпеченням; ви можете поширювати "
"/ або модифікувати його на умовах GNU General Public License, опублікованій " "його та/або змінювати відповідно до умов Загальної публічної ліцензії GNU, "
"Free Software Foundation, версії 3, або (за вашим вибором) будь-якої " "опублікованої Фондом вільного програмного забезпечення; або версії 3 "
"пізнішої версії.\n" "Ліцензії, або (на ваш вибір) будь якої пізнішої версії.\n"
"\n" "\n"
"Ця проґрама поширюється зі сподіванням, що вона буде корисною, але БЕЗ БУДЬ-" "Ця програма розповсюджується в надії, що вона буде корисною, але БЕЗ БУДЬ "
"ЯКИХ ЗАПОРУК, навіть без запорук КОМЕРЦІЙНОЇ ЦІННОСТІ чи ПРИДАТНОСТІ ДЛЯ " "ЯКИХ ГАРАНТІЙ; навіть без прихованої гарантії КОМЕРЦІЙНОЇ ВИГОДИ чи "
"КОНКРЕТНИХ ЦІЛЕЙ. Див громадської ліцензії GNU General ліцензії для більш " "ПРИДАТНОСТІ ДЛЯ КОНКРЕТНИХ ЦІЛЕЙ. Докладніше дивися у Загальнодоступній "
"докладної інформації.\n" "ліцензії GNU.\n"
"\n" "\n"
"Ви повинні були отримати копію Public License GNU General разом з цією " "Ви повинні були отримати копію Загальної публічної ліцензії GNU разом із "
"проґрамою, якщо ні, див <http://www.gnu.org/licenses>.\n" "цією програмою; якщо ні, дивися <http://www.gnu.org/licenses>.\n"
"\n" "\n"
"Крім того, в якості особливого винятку, власників авторських прав дати " "Крім того, як особливий виняток, власники авторських прав дають дозвіл "
"дозвіл, щоб зв'язати код частини цієї проґрами з бібліотекою OpenSSL. Ви " "пов'язувати код частин цієї програми з бібліотекою OpenSSL. Ви повинні "
"повинні коритися GNU General Public License у всіх відношеннях для всіх код, " "дотримуватись Загальної загальнодоступної ліцензії GNU у всіх відношеннях до "
"що використовується, крім OpenSSL.\n" "всього коду, що використовується, крім OpenSSL.\n"
"\n" "\n"
"Якщо ви зміните файл (и) з виключенням цього, ви можете розширити це виняток " "Якщо ви змінюєте файл (и) з цим винятком, ви можете поширити цей виняток на "
"для вашої версії файлу (ів), але ви не зобов'язані це робити. Якщо ви не " "свою версію файлу (ів), але ви не зобов’язані це робити. Якщо ви не хочете "
"хочете зробити це, вилучіть це виняток заява від вашої версії. Якщо ви " "цього робити, видаліть цей виняток із своєї версії. Якщо ви видалите цей "
"вилучите це виняток заява всі вихідні файли в проґраму, то і вилучати її тут." "виняток із усіх вихідних файлів програми, також видаліть його тут."
#: deluge/ui/gtk3/aboutdialog.py:829 #: deluge/ui/gtk3/aboutdialog.py:829
#: deluge/ui/web/js/deluge-all/AboutWindow.js:65 #: deluge/ui/web/js/deluge-all/AboutWindow.js:65
@ -3223,12 +3223,12 @@ msgstr "Активні торенти"
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:187 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:187
#: deluge/ui/web/render/tab_status.html:4 #: deluge/ui/web/render/tab_status.html:4
msgid "Share Ratio:" msgid "Share Ratio:"
msgstr "Співвідношення:" msgstr "Рейтинг:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:101 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:101
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:142 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:142
msgid "Time Ratio:" msgid "Time Ratio:"
msgstr "" msgstr "Співвідношення часу:"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:102 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:102
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:157 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:157
@ -3239,7 +3239,7 @@ msgstr "Час(хв)"
#: deluge/ui/console/modes/preferences/preference_panes.py:590 #: deluge/ui/console/modes/preferences/preference_panes.py:590
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:118 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:118
msgid "Seeding Rotation" msgid "Seeding Rotation"
msgstr "" msgstr "Ротація завершених"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:104 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:104
msgid "Pause Torrent" msgid "Pause Torrent"
@ -3249,7 +3249,7 @@ msgstr "Призупинити торент"
#: deluge/ui/console/modes/preferences/preference_panes.py:627 #: deluge/ui/console/modes/preferences/preference_panes.py:627
#: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:173 #: deluge/ui/web/js/deluge-all/preferences/QueuePage.js:173
msgid "Share Ratio Reached" msgid "Share Ratio Reached"
msgstr "" msgstr "Співвідношення досягнуто"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:107 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:107
msgid "" msgid ""
@ -3456,7 +3456,7 @@ msgstr "Примусово використовувати проксі"
#: deluge/ui/console/modes/preferences/preference_panes.py:671 #: deluge/ui/console/modes/preferences/preference_panes.py:671
#: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:141 #: deluge/ui/web/js/deluge-all/preferences/ProxyField.js:141
msgid "Hide Client Identity" msgid "Hide Client Identity"
msgstr "" msgstr "Приховати дані клієнта"
#: deluge/ui/gtk3/glade/preferences_dialog.ui.h:149 #: deluge/ui/gtk3/glade/preferences_dialog.ui.h:149
msgid "" msgid ""
@ -3728,7 +3728,7 @@ msgstr "Додати завантажені файли"
#: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:6 #: deluge/ui/gtk3/glade/remove_torrent_dialog.ui.h:6
msgid "(This is permanent!)" msgid "(This is permanent!)"
msgstr "(Це постійно!)" msgstr "Назавжди"
#: deluge/ui/gtk3/glade/connect_peer_dialog.ui.h:1 #: deluge/ui/gtk3/glade/connect_peer_dialog.ui.h:1
msgid "Add Peer" msgid "Add Peer"
@ -3754,7 +3754,7 @@ msgstr "<b>Загальні</b>"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:5 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:5
msgid "Show path entry" msgid "Show path entry"
msgstr "" msgstr "Вказати шлях"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:6 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:6
msgid "Show file chooser" msgid "Show file chooser"
@ -3766,7 +3766,7 @@ msgstr "Показати ім'я теки"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:8 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:8
msgid "Path Chooser Type" msgid "Path Chooser Type"
msgstr "" msgstr "Тип вибору шляху"
#: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:9 #: deluge/ui/gtk3/glade/path_combo_chooser.ui.h:9
msgid "Enable autocomplete" msgid "Enable autocomplete"
@ -3917,7 +3917,7 @@ msgstr "Додати хеш даних"
#: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:4 #: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:4
msgid "From Infohash" msgid "From Infohash"
msgstr "" msgstr "З хешу"
#: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:5 #: deluge/ui/gtk3/glade/add_torrent_dialog.infohash.ui.h:5
msgid "Infohash:" msgid "Infohash:"
@ -4021,12 +4021,12 @@ msgstr "Рейтинг роздачі:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:10 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:10
msgid "ETA Time:" msgid "ETA Time:"
msgstr "" msgstr "Строк завантаження:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:11 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:11
#: deluge/ui/web/render/tab_status.html:13 #: deluge/ui/web/render/tab_status.html:13
msgid "Last Transfer:" msgid "Last Transfer:"
msgstr "" msgstr "Остання передача:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:12 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:12
#: deluge/ui/web/render/tab_status.html:23 #: deluge/ui/web/render/tab_status.html:23
@ -4036,7 +4036,7 @@ msgstr "Час активности:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:13 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:13
#: deluge/ui/web/render/tab_status.html:20 #: deluge/ui/web/render/tab_status.html:20
msgid "Complete Seen:" msgid "Complete Seen:"
msgstr "" msgstr "Завершені:"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:14 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:14
#: deluge/ui/web/render/tab_status.html:24 #: deluge/ui/web/render/tab_status.html:24
@ -4108,7 +4108,7 @@ msgstr "Зупинити роздачу при коефіцієнті:"
#: deluge/plugins/Label/deluge_label/data/label_options.ui.h:13 #: deluge/plugins/Label/deluge_label/data/label_options.ui.h:13
#: deluge/ui/web/js/deluge-all/details/OptionsTab.js:233 #: deluge/ui/web/js/deluge-all/details/OptionsTab.js:233
msgid "Remove at ratio" msgid "Remove at ratio"
msgstr "Вилучити при коефіцієнті" msgstr "Вилучити при рейтингу"
#: deluge/ui/gtk3/glade/main_window.tabs.ui.h:44 #: deluge/ui/gtk3/glade/main_window.tabs.ui.h:44
msgid "Bandwidth Limits" msgid "Bandwidth Limits"
@ -4450,7 +4450,7 @@ msgstr "Межа _слотів роздачі"
#: deluge/ui/gtk3/glade/torrent_menu.options.ui.h:5 #: deluge/ui/gtk3/glade/torrent_menu.options.ui.h:5
msgid "Stop seed at _ratio" msgid "Stop seed at _ratio"
msgstr "" msgstr "Зупинити при спів_відношенні"
#: deluge/ui/gtk3/glade/torrent_menu.options.ui.h:6 #: deluge/ui/gtk3/glade/torrent_menu.options.ui.h:6
msgid "_Auto Managed" msgid "_Auto Managed"
@ -4458,7 +4458,7 @@ msgstr "Автоматичне керування"
#: deluge/ui/gtk3/glade/torrent_menu.options.ui.h:7 #: deluge/ui/gtk3/glade/torrent_menu.options.ui.h:7
msgid "_Super Seeding" msgid "_Super Seeding"
msgstr "" msgstr "_Супер-сід"
#: deluge/ui/gtk3/glade/torrent_menu.options.ui.h:8 #: deluge/ui/gtk3/glade/torrent_menu.options.ui.h:8
msgid "_Change Ownership" msgid "_Change Ownership"
@ -4657,7 +4657,7 @@ msgstr "Встановлюване значення"
#: deluge/ui/console/cmdline/commands/manage.py:53 #: deluge/ui/console/cmdline/commands/manage.py:53
#: deluge/ui/console/cmdline/commands/config.py:98 #: deluge/ui/console/cmdline/commands/config.py:98
msgid "one or more keys separated by space" msgid "one or more keys separated by space"
msgstr "" msgstr "один або кілька ключів, розділених пробілами"
#: deluge/ui/console/cmdline/commands/rm.py:33 #: deluge/ui/console/cmdline/commands/rm.py:33
msgid "Also removes the torrent data" msgid "Also removes the torrent data"
@ -4681,15 +4681,19 @@ msgstr ""
#: deluge/ui/console/cmdline/commands/resume.py:22 #: deluge/ui/console/cmdline/commands/resume.py:22
msgid "Usage: resume [ * | <torrent-id> [<torrent-id> ...] ]" msgid "Usage: resume [ * | <torrent-id> [<torrent-id> ...] ]"
msgstr "" msgstr "Використання: відновити [ * | <torrent-id> [<torrent-id> ...] ]"
#: deluge/ui/console/cmdline/commands/resume.py:29 #: deluge/ui/console/cmdline/commands/resume.py:29
msgid "One or more torrent ids. Use \"*\" to resume all torrents" msgid "One or more torrent ids. Use \"*\" to resume all torrents"
msgstr "" msgstr ""
"Один або кілька ідентифікаторів торрентів. Для відновлення всіх торрентів "
"використовуйте \"*\""
#: deluge/ui/console/cmdline/commands/pause.py:29 #: deluge/ui/console/cmdline/commands/pause.py:29
msgid "One or more torrent ids. Use \"*\" to pause all torrents" msgid "One or more torrent ids. Use \"*\" to pause all torrents"
msgstr "" msgstr ""
"Один або кілька ідентифікаторів торрентів. Використовуйте \"*\" для "
"призупинення всіх торрентів"
#: deluge/ui/console/cmdline/commands/add.py:38 #: deluge/ui/console/cmdline/commands/add.py:38
msgid "Download folder for torrent" msgid "Download folder for torrent"
@ -4760,7 +4764,7 @@ msgstr "Шлях для переміщення торентів"
#: deluge/ui/console/cmdline/commands/debug.py:26 #: deluge/ui/console/cmdline/commands/debug.py:26
msgid "The new state" msgid "The new state"
msgstr "" msgstr "Новий стан"
#: deluge/ui/console/cmdline/commands/help.py:29 #: deluge/ui/console/cmdline/commands/help.py:29
msgid "One or more commands" msgid "One or more commands"
@ -4861,10 +4865,12 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:216 #: deluge/ui/console/modes/preferences/preference_panes.py:216
msgid "Third tab lists all remaining torrents in command line mode" msgid "Third tab lists all remaining torrents in command line mode"
msgstr "" msgstr ""
"На третій вкладці перераховані всі торренти, що залишилися, у режимі "
"командного рядка"
#: deluge/ui/console/modes/preferences/preference_panes.py:221 #: deluge/ui/console/modes/preferences/preference_panes.py:221
msgid "Torrents per tab press" msgid "Torrents per tab press"
msgstr "" msgstr "Торренти за натисненням вкладки"
#: deluge/ui/console/modes/preferences/preference_panes.py:234 #: deluge/ui/console/modes/preferences/preference_panes.py:234
#: deluge/plugins/Label/deluge_label/data/label_options.ui.h:18 #: deluge/plugins/Label/deluge_label/data/label_options.ui.h:18
@ -4939,7 +4945,7 @@ msgstr "Вихідні"
#: deluge/ui/console/modes/preferences/preference_panes.py:413 #: deluge/ui/console/modes/preferences/preference_panes.py:413
#: deluge/ui/web/js/deluge-all/preferences/BandwidthPage.js:38 #: deluge/ui/web/js/deluge-all/preferences/BandwidthPage.js:38
msgid "Global Bandwidth Usage" msgid "Global Bandwidth Usage"
msgstr "" msgstr "Глобальне використання пропускної здатності"
#: deluge/ui/console/modes/preferences/preference_panes.py:416 #: deluge/ui/console/modes/preferences/preference_panes.py:416
#: deluge/ui/console/modes/preferences/preference_panes.py:469 #: deluge/ui/console/modes/preferences/preference_panes.py:469
@ -4977,7 +4983,7 @@ msgstr "Обмежувати швидкість із урахуванням ви
#: deluge/ui/console/modes/preferences/preference_panes.py:466 #: deluge/ui/console/modes/preferences/preference_panes.py:466
#: deluge/ui/web/js/deluge-all/preferences/BandwidthPage.js:148 #: deluge/ui/web/js/deluge-all/preferences/BandwidthPage.js:148
msgid "Per Torrent Bandwidth Usage" msgid "Per Torrent Bandwidth Usage"
msgstr "" msgstr "Налаштування швидкості торенту"
#: deluge/ui/console/modes/preferences/preference_panes.py:513 #: deluge/ui/console/modes/preferences/preference_panes.py:513
msgid "Yes, please send anonymous statistics." msgid "Yes, please send anonymous statistics."
@ -4997,11 +5003,11 @@ msgstr "Загалом"
#: deluge/ui/console/modes/preferences/preference_panes.py:593 #: deluge/ui/console/modes/preferences/preference_panes.py:593
msgid "Share Ratio" msgid "Share Ratio"
msgstr "Коефіцієнт обміну" msgstr "Рейтинг"
#: deluge/ui/console/modes/preferences/preference_panes.py:601 #: deluge/ui/console/modes/preferences/preference_panes.py:601
msgid "Time Ratio" msgid "Time Ratio"
msgstr "" msgstr "Співвідношення часу"
#: deluge/ui/console/modes/preferences/preference_panes.py:609 #: deluge/ui/console/modes/preferences/preference_panes.py:609
msgid "Time (m)" msgid "Time (m)"
@ -5009,7 +5015,7 @@ msgstr "Час (хв)"
#: deluge/ui/console/modes/preferences/preference_panes.py:633 #: deluge/ui/console/modes/preferences/preference_panes.py:633
msgid "Remove torrent (Unchecked pauses torrent)" msgid "Remove torrent (Unchecked pauses torrent)"
msgstr "" msgstr "Видалити торент (Не позначені призупиняют торент)"
#: deluge/ui/console/modes/preferences/preference_panes.py:646 #: deluge/ui/console/modes/preferences/preference_panes.py:646
msgid "Proxy Settings" msgid "Proxy Settings"
@ -5037,7 +5043,7 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:712 #: deluge/ui/console/modes/preferences/preference_panes.py:712
msgid "Blocks Written" msgid "Blocks Written"
msgstr "" msgstr "Записано блоків"
#: deluge/ui/console/modes/preferences/preference_panes.py:716 #: deluge/ui/console/modes/preferences/preference_panes.py:716
msgid "Writes" msgid "Writes"
@ -5049,11 +5055,11 @@ msgstr ""
#: deluge/ui/console/modes/preferences/preference_panes.py:725 #: deluge/ui/console/modes/preferences/preference_panes.py:725
msgid "Blocks Read" msgid "Blocks Read"
msgstr "" msgstr "Зчитано блоків"
#: deluge/ui/console/modes/preferences/preference_panes.py:729 #: deluge/ui/console/modes/preferences/preference_panes.py:729
msgid "Blocks Read hit" msgid "Blocks Read hit"
msgstr "" msgstr "Зчитано блоків з кешу"
#: deluge/ui/console/modes/preferences/preference_panes.py:732 #: deluge/ui/console/modes/preferences/preference_panes.py:732
msgid "Reads" msgid "Reads"
@ -5245,6 +5251,8 @@ msgid ""
"\"Watch Folder\" directory and \"Copy of .torrent files to\" directory " "\"Watch Folder\" directory and \"Copy of .torrent files to\" directory "
"cannot be the same!" "cannot be the same!"
msgstr "" msgstr ""
"\"Тека для стеження\" і тека \"Копіювати .torrent файли до\" не можуть бути "
"однаковими!"
#: deluge/plugins/AutoAdd/deluge_autoadd/gtkui.py:462 #: deluge/plugins/AutoAdd/deluge_autoadd/gtkui.py:462
#: deluge/plugins/AutoAdd/deluge_autoadd/gtkui.py:466 #: deluge/plugins/AutoAdd/deluge_autoadd/gtkui.py:466
@ -5334,6 +5342,9 @@ msgid ""
"the .torrent will copied to the chosen directory\n" "the .torrent will copied to the chosen directory\n"
"and deleted from the watch folder." "and deleted from the watch folder."
msgstr "" msgstr ""
"Після додавання торрента,\n"
".torrent буде скопійовано до вибраної теки\n"
"і видалено з теки для стеження."
#: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:20 #: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:20
msgid "" msgid ""
@ -5361,7 +5372,7 @@ msgstr "<b>Тека для завантаження</b>"
#: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:26 #: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:26
msgid "Set move completed folder" msgid "Set move completed folder"
msgstr "" msgstr "Вкажіть теку для переміщення завершених"
#: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:27 #: deluge/plugins/AutoAdd/deluge_autoadd/data/autoadd_options.ui.h:27
msgid "<b>Move Completed</b>" msgid "<b>Move Completed</b>"
@ -5628,7 +5639,7 @@ msgstr "Спливні вікна вимкнено"
#: deluge/plugins/Notifications/deluge_notifications/gtkui.py:177 #: deluge/plugins/Notifications/deluge_notifications/gtkui.py:177
msgid "libnotify is not installed" msgid "libnotify is not installed"
msgstr "" msgstr "libnotify не встановлено"
#: deluge/plugins/Notifications/deluge_notifications/gtkui.py:185 #: deluge/plugins/Notifications/deluge_notifications/gtkui.py:185
msgid "Failed to popup notification" msgid "Failed to popup notification"
@ -6291,7 +6302,7 @@ msgstr "Файл"
#: deluge/ui/web/js/deluge-all/add/AddWindow.js:149 #: deluge/ui/web/js/deluge-all/add/AddWindow.js:149
msgid "Infohash" msgid "Infohash"
msgstr "" msgstr "Хеш-сума"
#: deluge/ui/web/js/deluge-all/add/AddWindow.js:260 #: deluge/ui/web/js/deluge-all/add/AddWindow.js:260
msgid "Uploading your torrent..." msgid "Uploading your torrent..."

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: deluge\n" "Project-Id-Version: deluge\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2019-11-12 14:55+0000\n" "POT-Creation-Date: 2019-11-12 14:55+0000\n"
"PO-Revision-Date: 2019-12-06 05:38+0000\n" "PO-Revision-Date: 2022-12-28 05:35+0000\n"
"Last-Translator: 玉堂白鹤 <yjwork@qq.com>\n" "Last-Translator: 玉堂白鹤 <yjwork@qq.com>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n" "Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
"Language: zh_CN\n" "Language: zh_CN\n"
#: deluge/common.py:411 #: deluge/common.py:411
@ -132,18 +132,18 @@ msgstr "设置日志级别(无、错误、警告、信息、调试)"
msgid "" msgid ""
"Enable logfile rotation, with optional maximum logfile size, default: " "Enable logfile rotation, with optional maximum logfile size, default: "
"%(const)s (Logfile rotation count is 5)" "%(const)s (Logfile rotation count is 5)"
msgstr "" msgstr "启用日志文件循环,使用可选的最大日志文件大小,默认值:%(const)s (日志文件循环计数为 5"
#: deluge/argparserbase.py:223 #: deluge/argparserbase.py:223
msgid "Quieten logging output (Same as `--loglevel none`)" msgid "Quieten logging output (Same as `--loglevel none`)"
msgstr "" msgstr "静态日志记录输出(与“--loglevel none”相同"
#: deluge/argparserbase.py:231 #: deluge/argparserbase.py:231
#, python-format #, python-format
msgid "" msgid ""
"Profile %(prog)s with cProfile. Outputs to stdout unless a filename is " "Profile %(prog)s with cProfile. Outputs to stdout unless a filename is "
"specified" "specified"
msgstr "" msgstr "使用 cProfile 的配置文件 %(prog)s 。除非指定了文件名,否则输出到标准输出"
#: deluge/argparserbase.py:351 #: deluge/argparserbase.py:351
msgid "Process Control Options" msgid "Process Control Options"
@ -151,7 +151,7 @@ msgstr "进程控制选项"
#: deluge/argparserbase.py:357 #: deluge/argparserbase.py:357
msgid "Pidfile to store the process id" msgid "Pidfile to store the process id"
msgstr "" msgstr "用于存储进程 id 的 Pidfile"
#: deluge/argparserbase.py:365 #: deluge/argparserbase.py:365
msgid "Do not daemonize (fork) this process" msgid "Do not daemonize (fork) this process"
@ -2421,7 +2421,7 @@ msgstr " 种子已加入队列"
#: deluge/ui/gtk3/torrentview.py:421 #: deluge/ui/gtk3/torrentview.py:421
msgid "Torrent is shared between other Deluge users or not." msgid "Torrent is shared between other Deluge users or not."
msgstr "" msgstr "Torrent 是否在其他 Deluge 用户之间共享。"
#: deluge/ui/gtk3/removetorrentdialog.py:67 #: deluge/ui/gtk3/removetorrentdialog.py:67
msgid "Remove the selected torrents?" msgid "Remove the selected torrents?"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
#: deluge/common.py:411 #: deluge/common.py:411
msgid "B" msgid "B"

View file

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2021-09-10 18:01+0000\n" "X-Launchpad-Export-Date: 2023-11-06 19:12+0000\n"
"X-Generator: Launchpad (build aca2013fd8cd2fea408d75f89f9bc012fbab307d)\n" "X-Generator: Launchpad (build f1e537f62ee3967c2b3f24dd10eacf1696334fe6)\n"
"Language: zh_TW\n" "Language: zh_TW\n"
#: deluge/common.py:411 #: deluge/common.py:411

View file

@ -10,10 +10,13 @@
# See LICENSE for more details. # See LICENSE for more details.
# #
import copy
import logging import logging
import os.path import os.path
import time import time
from enum import Enum
from hashlib import sha1 as sha from hashlib import sha1 as sha
from hashlib import sha256
import deluge.component as component import deluge.component as component
from deluge.bencode import bencode from deluge.bencode import bencode
@ -41,6 +44,35 @@ def dummy(*v):
pass pass
class TorrentFormat(str, Enum):
V1 = 'v1'
V2 = 'v2'
HYBRID = 'hybrid'
@classmethod
def _missing_(cls, value):
if not value:
return None
value = value.lower()
for member in cls:
if member.value == value:
return member
def to_lt_flag(self):
if self.value == 'v1':
return 64
if self.value == 'v2':
return 32
return 0
def includes_v1(self):
return self == self.__class__.V1 or self == self.__class__.HYBRID
def includes_v2(self):
return self == self.__class__.V2 or self == self.__class__.HYBRID
class RemoteFileProgress: class RemoteFileProgress:
def __init__(self, session_id): def __init__(self, session_id):
self.session_id = session_id self.session_id = session_id
@ -51,7 +83,7 @@ def __call__(self, piece_count, num_pieces):
) )
def make_meta_file( def make_meta_file_content(
path, path,
url, url,
piece_length, piece_length,
@ -60,24 +92,16 @@ def make_meta_file(
comment=None, comment=None,
safe=None, safe=None,
content_type=None, content_type=None,
target=None,
webseeds=None, webseeds=None,
name=None, name=None,
private=False, private=False,
created_by=None, created_by=None,
trackers=None, trackers=None,
torrent_format=TorrentFormat.V1,
): ):
data = {'creation date': int(gmtime())} data = {'creation date': int(gmtime())}
if url: if url:
data['announce'] = url.strip() data['announce'] = url.strip()
a, b = os.path.split(path)
if not target:
if b == '':
f = a + '.torrent'
else:
f = os.path.join(a, b + '.torrent')
else:
f = target
if progress is None: if progress is None:
progress = dummy progress = dummy
@ -89,10 +113,20 @@ def make_meta_file(
if session_id: if session_id:
progress = RemoteFileProgress(session_id) progress = RemoteFileProgress(session_id)
info = makeinfo(path, piece_length, progress, name, content_type, private) info, piece_layers = makeinfo(
path,
piece_length,
progress,
name,
content_type,
private,
torrent_format,
)
# check_info(info) # check_info(info)
data['info'] = info data['info'] = info
if piece_layers is not None:
data['piece layers'] = piece_layers
if title: if title:
data['title'] = title.encode('utf8') data['title'] = title.encode('utf8')
if comment: if comment:
@ -121,8 +155,55 @@ def make_meta_file(
data['announce-list'] = trackers data['announce-list'] = trackers
data['encoding'] = 'UTF-8' data['encoding'] = 'UTF-8'
with open(f, 'wb') as file_: return bencode(utf8_encode_structure(data))
file_.write(bencode(utf8_encode_structure(data)))
def default_meta_file_path(content_path):
a, b = os.path.split(content_path)
if b == '':
f = a + '.torrent'
else:
f = os.path.join(a, b + '.torrent')
return f
def make_meta_file(
path,
url,
piece_length,
progress=None,
title=None,
comment=None,
safe=None,
content_type=None,
target=None,
webseeds=None,
name=None,
private=False,
created_by=None,
trackers=None,
):
if not target:
target = default_meta_file_path(path)
file_content = make_meta_file_content(
path,
url,
piece_length,
progress=progress,
title=title,
comment=comment,
safe=safe,
content_type=content_type,
webseeds=webseeds,
name=name,
private=private,
created_by=created_by,
trackers=trackers,
)
with open(target, 'wb') as file_:
file_.write(file_content)
def calcsize(path): def calcsize(path):
@ -132,101 +213,237 @@ def calcsize(path):
return total return total
def makeinfo(path, piece_length, progress, name=None, content_type=None, private=False): def _next_pow2(num):
# HEREDAVE. If path is directory, how do we assign content type? import math
path = os.path.abspath(path)
piece_count = 0
if os.path.isdir(path):
subs = sorted(subfiles(path))
pieces = []
sh = sha()
done = 0
fs = []
totalsize = 0.0
totalhashed = 0
for p, f in subs:
totalsize += os.path.getsize(f)
if totalsize >= piece_length:
import math
num_pieces = math.ceil(totalsize / piece_length) if not num:
else: return 1
num_pieces = 1 return 2 ** math.ceil(math.log2(num))
for p, f in subs:
pos = 0 def _sha256_merkle_root(leafs, nb_leafs, padding, in_place=True) -> bytes:
size = os.path.getsize(f) """
p2 = [n.encode('utf8') for n in p] Build the root of the merkle hash tree from the (possibly incomplete) leafs layer.
if content_type: If len(leafs) < nb_leafs, it will be padded with the padding repeated as many times
fs.append( as needed to have nb_leafs in total.
{'length': size, 'path': p2, 'content_type': content_type} """
) # HEREDAVE. bad for batch! if not in_place:
leafs = copy.copy(leafs)
while nb_leafs > 1:
nb_leafs = nb_leafs // 2
for i in range(nb_leafs):
node1 = leafs[2 * i] if 2 * i < len(leafs) else padding
node2 = leafs[2 * i + 1] if 2 * i + 1 < len(leafs) else padding
h = sha256(node1)
h.update(node2)
if i < len(leafs):
leafs[i] = h.digest()
else: else:
fs.append({'length': size, 'path': p2}) leafs.append(h.digest())
with open(f, 'rb') as file_: return leafs[0] if leafs else padding
while pos < size:
a = min(size - pos, piece_length - done)
sh.update(file_.read(a))
done += a
pos += a
totalhashed += a
if done == piece_length:
pieces.append(sh.digest())
piece_count += 1
done = 0
sh = sha()
progress(piece_count, num_pieces)
if done > 0:
pieces.append(sh.digest())
piece_count += 1
progress(piece_count, num_pieces)
def _sha256_buffer_blocks(buffer, block_len):
import math
nb_blocks = math.ceil(len(buffer) / block_len)
blocks = [
sha256(buffer[i * block_len : (i + 1) * block_len]).digest()
for i in range(nb_blocks)
]
return blocks
def makeinfo_lt(
path, piece_length, name=None, private=False, torrent_format=TorrentFormat.V1
):
"""
Make info using via the libtorrent library.
"""
from deluge._libtorrent import lt
if not name:
name = os.path.split(path)[1]
fs = lt.file_storage()
if os.path.isfile(path):
lt.add_files(fs, path)
else:
for p, f in subfiles(path):
fs.add_file(os.path.join(name, *p), os.path.getsize(f))
torrent = lt.create_torrent(
fs, piece_size=piece_length, flags=torrent_format.to_lt_flag()
)
lt.set_piece_hashes(torrent, os.path.dirname(path))
torrent.set_priv(private)
t = torrent.generate()
info = t[b'info']
pieces_layers = t.get(b'piece layers', None)
return info, pieces_layers
def makeinfo(
path,
piece_length,
progress,
name=None,
content_type=None,
private=False,
torrent_format=TorrentFormat.V1,
):
# HEREDAVE. If path is directory, how do we assign content type?
v2_block_len = 2**14 # 16 KiB
v2_blocks_per_piece = 1
v2_block_padding = b''
v2_piece_padding = b''
if torrent_format.includes_v2():
if _next_pow2(piece_length) != piece_length or piece_length < v2_block_len:
raise ValueError(
'Bittorrent v2 piece size must be a power of 2; and bigger than 16 KiB'
)
v2_blocks_per_piece = piece_length // v2_block_len
v2_block_padding = bytes(32) # 32 = size of sha256 in bytes
v2_piece_padding = _sha256_merkle_root(
[], nb_leafs=v2_blocks_per_piece, padding=v2_block_padding
)
path = os.path.abspath(path)
files = []
pieces = []
file_tree = {}
piece_layers = {}
if os.path.isdir(path):
if not name: if not name:
name = os.path.split(path)[1] name = os.path.split(path)[1]
subs = subfiles(path)
return { if torrent_format.includes_v2():
'pieces': b''.join(pieces), subs = sorted(subs)
'piece length': piece_length, length = None
'files': fs, totalsize = 0.0
'name': name.encode('utf8'), for p, f in subs:
'private': private, totalsize += os.path.getsize(f)
}
else: else:
size = os.path.getsize(path) name = os.path.split(path)[1]
if size >= piece_length: subs = [([name], path)]
num_pieces = size // piece_length length = os.path.getsize(path)
else: totalsize = length
num_pieces = 1 is_multi_file = len(subs) > 1
sh = sha()
done = 0
totalhashed = 0
pieces = [] next_progress_event = piece_length
p = 0 for p, f in subs:
with open(path, 'rb') as _file: file_pieces_v2 = []
while p < size: pos = 0
x = _file.read(min(piece_length, size - p)) size = os.path.getsize(f)
pieces.append(sha(x).digest()) p2 = [n.encode('utf8') for n in p]
piece_count += 1 if content_type:
p += piece_length files.append(
if p > size: {b'length': size, b'path': p2, b'content_type': content_type}
p = size ) # HEREDAVE. bad for batch!
progress(piece_count, num_pieces) else:
name = os.path.split(path)[1].encode('utf8') files.append({b'length': size, b'path': p2})
if content_type is not None: with open(f, 'rb') as file_:
return { while pos < size:
'pieces': b''.join(pieces), to_read = min(size - pos, piece_length)
'piece length': piece_length, buffer = memoryview(file_.read(to_read))
'length': size, pos += to_read
'name': name,
'content_type': content_type, if torrent_format.includes_v1():
'private': private, a = piece_length - done
for sub_buffer in (buffer[:a], buffer[a:]):
if sub_buffer:
sh.update(sub_buffer)
done += len(sub_buffer)
if done == piece_length:
pieces.append(sh.digest())
done = 0
sh = sha()
if torrent_format.includes_v2():
block_hashes = _sha256_buffer_blocks(buffer, v2_block_len)
num_leafs = v2_blocks_per_piece
if size <= piece_length:
# The special case when the file is smaller than a piece: only pad till the next power of 2
num_leafs = _next_pow2(len(block_hashes))
root = _sha256_merkle_root(
block_hashes, num_leafs, v2_block_padding, in_place=True
)
file_pieces_v2.append(root)
totalhashed += to_read
if totalhashed >= next_progress_event:
next_progress_event = totalhashed + piece_length
progress(totalhashed, totalsize)
if torrent_format == TorrentFormat.HYBRID and is_multi_file and done > 0:
# Add padding file to force piece-alignment
padding = piece_length - done
sh.update(bytes(padding))
files.append(
{
b'length': padding,
b'attr': b'p',
b'path': [b'.pad', str(padding).encode()],
}
)
pieces.append(sh.digest())
done = 0
sh = sha()
if torrent_format.includes_v2():
# add file to the `file tree` and, if needed, to the `piece layers` structures
pieces_root = _sha256_merkle_root(
file_pieces_v2,
_next_pow2(len(file_pieces_v2)),
v2_piece_padding,
in_place=False,
)
dst_directory = file_tree
for directory in p2[:-1]:
dst_directory = dst_directory.setdefault(directory, {})
dst_directory[p2[-1]] = {
b'': {
b'length': size,
b'pieces root': pieces_root,
}
} }
return { if len(file_pieces_v2) > 1:
'pieces': b''.join(pieces), piece_layers[pieces_root] = b''.join(file_pieces_v2)
'piece length': piece_length,
'length': size, if done > 0:
'name': name, pieces.append(sh.digest())
'private': private, progress(totalsize, totalsize)
}
info = {
b'piece length': piece_length,
b'name': name.encode('utf8'),
}
if private:
info[b'private'] = 1
if content_type:
info[b'content_type'] = content_type
if torrent_format.includes_v1():
info[b'pieces'] = b''.join(pieces)
if is_multi_file:
info[b'files'] = files
else:
info[b'length'] = length
if torrent_format.includes_v2():
info.update(
{
b'meta version': 2,
b'file tree': file_tree,
}
)
return info, piece_layers if torrent_format.includes_v2() else None
def subfiles(d): def subfiles(d):

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

View file

@ -9,10 +9,13 @@
# This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with # This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with
# the additional special exception to link portions of this program with the OpenSSL library. # the additional special exception to link portions of this program with the OpenSSL library.
# See LICENSE for more details. # See LICENSE for more details.
#
import logging import logging
import gi # isort:skip (Required before Gtk import).
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk from gi.repository import Gtk
from gi.repository.Gdk import RGBA from gi.repository.Gdk import RGBA

View file

@ -58,7 +58,7 @@ def test_session_totals(self):
@pytest.mark.gtkui @pytest.mark.gtkui
@defer.inlineCallbacks @defer.inlineCallbacks
def test_write(self): def test_write(self, tmp_path):
""" """
writing to a file-like object; need this for webui. writing to a file-like object; need this for webui.
@ -102,5 +102,5 @@ def write(self, data):
file_like = FakeFile() file_like = FakeFile()
surface.write_to_png(file_like) surface.write_to_png(file_like)
data = b''.join(file_like.data) data = b''.join(file_like.data)
with open('file_like.png', 'wb') as _file: with open(tmp_path / 'file_like.png', 'wb') as _file:
_file.write(data) _file.write(data)

View file

@ -1,71 +0,0 @@
#!/bin/bash
# A script to convert the Deluge svg icons to png.
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
data_dir="$DIR/../ui/data"
zopfli_iter="--iterations=100"
zopflipng_bin="zopflipng --filters=01234mepb --lossy_8bit --lossy_transparent -y"
# Create deluge png icon pack for all sizes.
for size in 16 22 24 32 36 48 64 72 96 128 192 256 512; do
mkdir -p $data_dir/icons/hicolor/${size}x${size}/apps
in_svg=$data_dir/pixmaps/deluge.svg
out_png=$data_dir/icons/hicolor/${size}x${size}/apps/deluge.png
rsvg-convert -w ${size} -h ${size} -o $out_png $in_svg
if [ "$size" -gt 128 ]; then
zopfli_iter=""
fi
echo $zopflipng_bin $zopfli_iter
eval $zopflipng_bin $zopfli_iter $out_png $out_png
done
# Create deluge-panel png for systray.
for size in 16 22 24; do
in_png=$data_dir/icons/hicolor/${size}x${size}/apps/deluge.png
out_png=$data_dir/icons/hicolor/${size}x${size}/apps/deluge-panel.png
cp $in_png $out_png
done
# Create deluge.ico icon from pngs.
for size in 16 32 48 64 128 256; do
ico_infiles+="$data_dir/icons/hicolor/${size}x${size}/apps/deluge.png "
done
convert $ico_infiles $data_dir/pixmaps/deluge.ico
# Copy of deluge.svg to icon theme pack.
mkdir -p $data_dir/icons/hicolor/scalable/apps/
cp $data_dir/pixmaps/deluge.svg $data_dir/icons/hicolor/scalable/apps/deluge.svg
# Create 48px deluge.png.
cp $data_dir/icons/hicolor/48x48/apps/deluge.png $data_dir/pixmaps/deluge.png
# Create 16px png from deluge and status svgs.
for file in $data_dir/pixmaps/*.svg; do
out_png=${file%.*}16.png
rsvg-convert -w 16 -h 16 -o $out_png $file
eval $zopflipng_bin $out_png $out_png
done
# Copy 16px deluge and status pngs to webui icons folder.
for icon in $data_dir/pixmaps/*16.png; do
iconname=$(basename $icon)
cp $icon $data_dir/../web/icons/${iconname::-6}.png
done
rm $data_dir/../web/icons/tracker*.png
for size in 32 192 512; do
in_png=$data_dir/icons/hicolor/${size}x${size}/apps/deluge.png
out_png=$data_dir/../web/icons/deluge-${size}.png
cp $in_png $out_png
# Create apple and android touch icons with background colour.
apple_icon=$data_dir/../web/icons/deluge-apple-180.png
rsvg-convert -w 180 -h 180 -b '#599EEE' -o $apple_icon $data_dir/pixmaps/deluge.svg
eval $zopflipng_bin $apple_icon $apple_icon
# Create favicon.ico icon from pngs.
for size in 16 32 48; do
web_ico_infiles+="$data_dir/icons/hicolor/${size}x${size}/apps/deluge.png "
done
convert $web_ico_infiles $data_dir/../web/icons/favicon.ico

201
deluge/scripts/create_icons.py Executable file
View file

@ -0,0 +1,201 @@
#!/usr/bin/python3
#
# Create Deluge PNG icons from SVG
#
# Required image tools:
# * rsvg-convert
# * convert (ImageMagik)
# * oxipng
# * pngquant
#
import shutil
import subprocess
from dataclasses import dataclass, field
from pathlib import Path
@dataclass
class IconPack:
name: str
dir: Path
icon_sizes: list[int]
panel_sizes: list[int]
ico_sizes: list[int]
pixmaps_dir: Path = field(init=False)
theme_dir: Path = field(init=False)
theme_svg: Path = field(init=False)
theme_pngs: dict[int, Path] = field(init=False)
logo_svg: Path = field(init=False)
logo_ico: Path = field(init=False)
logo_png: Path = field(init=False)
def __post_init__(self):
self.pixmaps_dir = self.dir / 'pixmaps'
self.logo_svg = self.pixmaps_dir / f'{self.name}.svg'
self.logo_ico = self.pixmaps_dir / f'{self.name}.ico'
self.logo_png = self.pixmaps_dir / f'{self.name}.png'
self.theme_dir = self.dir / 'icons' / 'hicolor'
self.theme_svg = self.theme_dir / 'scalable' / 'apps' / f'{self.name}.svg'
self.theme_pngs = self.create_theme_pngs_paths(
self.name, self.icon_sizes, self.theme_dir
)
@staticmethod
def create_theme_pngs_paths(name, icon_sizes, out_dir):
return {
size: out_dir / f'{size}x{size}' / 'apps' / f'{name}.png'
for size in icon_sizes
}
@dataclass
class WebIconPack:
name: str
dir: Path
icon_sizes: list[int]
favicon_sizes: list[int]
icons_dir: Path = field(init=False)
touch: Path = field(init=False)
favicon: Path = field(init=False)
def __post_init__(self):
self.icons_dir = self.dir / 'icons'
self.touch = self.icons_dir / f'{self.name}-apple-180.png'
self.favicon = self.icons_dir / 'favicon.ico'
def convert_svg_to_png(svg_file, png_file, size, background_color=None):
rsvg_options = [
'-w',
str(size),
'-h',
str(size),
'-o',
png_file,
]
rsvg_options + ['-b', {background_color}] if background_color else []
subprocess.run(['rsvg-convert'] + rsvg_options + [svg_file], check=True)
def compress_png(png_file):
subprocess.run(
['pngquant', '--quality=70-95', '--ext', '.png', '--force', png_file],
check=True,
)
subprocess.run(['oxipng', png_file], check=True)
def create_panel_icons(icon_pack, sizes):
for size in sizes:
app_png = icon_pack[size]
panel_png = app_png.with_name(f'{app_png.stem}-panel.png')
shutil.copyfile(app_png, panel_png)
def create_hicolor_icons(svg_icon, icon_pack):
"""Convert SVG icon to hicolor PNG icons."""
for size, png_file in icon_pack.items():
png_file.parent.mkdir(parents=True, exist_ok=True)
convert_svg_to_png(svg_icon, png_file, size)
compress_png(png_file)
def create_ico_icon(icon_pack, sizes, ico_file):
infiles = [icon_pack[size] for size in sizes]
ico_file.parent.mkdir(parents=True, exist_ok=True)
subprocess.run(['convert', *infiles, ico_file], check=True)
def create_hicolor_svg(src_svg, dest_svg):
dest_svg.parent.mkdir(parents=True, exist_ok=True)
shutil.copyfile(src_svg, dest_svg)
def create_mini_icons(pixmaps_dir):
pixmap_svgs = pixmaps_dir.glob('*.svg')
for svg_file in pixmap_svgs:
png_file = pixmaps_dir / f'{svg_file.stem}16.png'
convert_svg_to_png(svg_file, png_file, 16)
compress_png(png_file)
def create_logo(deluge_png, pixmap_png):
pixmap_png.parent.mkdir(parents=True, exist_ok=True)
shutil.copyfile(deluge_png, pixmap_png)
def create_web_status_icons(src_dir: Path, dest_dir: Path):
"""Web UI status icons from 16px icons."""
pngs_16px = src_dir.glob('*16.png')
dest_dir.mkdir(parents=True, exist_ok=True)
for path in pngs_16px:
if path.stem.startswith('tracker'):
continue
new_name = path.stem.replace('16', '') + '.png'
shutil.copyfile(path, dest_dir / new_name)
def create_touch_icon(svg_file, png_file, size):
"""Web icons with background color for Apple or Android"""
png_file.parent.mkdir(parents=True, exist_ok=True)
convert_svg_to_png(svg_file, png_file, size, background_color='#599EEE')
compress_png(png_file)
def create_web_icons(app_pngs, sizes, dest_dir):
dest_dir.mkdir(parents=True, exist_ok=True)
for size in sizes:
app_png = app_pngs[size]
web_png = dest_dir / f'{app_png.stem}-{size}.png'
shutil.copyfile(app_png, web_png)
def main():
data_dir = Path.cwd() / 'deluge' / 'ui' / 'data'
if not data_dir.is_dir():
exit(f'No path to UI data dir: {data_dir}')
# Create Deluge UI icons
icon_pack_sizes = [16, 22, 24, 32, 36, 48, 64, 72, 96, 128, 192, 256, 512]
panel_icon_sizes = [16, 22, 24]
ico_icon_sizes = [16, 32, 48, 64, 128, 256]
ui_icons = IconPack(
name='deluge',
dir=data_dir,
icon_sizes=icon_pack_sizes,
panel_sizes=panel_icon_sizes,
ico_sizes=ico_icon_sizes,
)
# Theme icons for GTK
create_hicolor_icons(ui_icons.logo_svg, ui_icons.theme_pngs)
create_hicolor_svg(ui_icons.logo_svg, ui_icons.theme_svg)
create_mini_icons(ui_icons.pixmaps_dir)
# Panel icon for systray
create_panel_icons(ui_icons.theme_pngs, ui_icons.panel_sizes)
# Deluge logos
create_ico_icon(ui_icons.theme_pngs, ui_icons.ico_sizes, ui_icons.logo_ico)
create_logo(ui_icons.theme_pngs[48], ui_icons.logo_png)
# Web UI Icons
web_icon_sizes = [32, 192, 512]
favicon_sizes = [16, 32, 48]
web_icons = WebIconPack(
name='deluge',
dir=data_dir / '..' / 'web',
icon_sizes=web_icon_sizes,
favicon_sizes=favicon_sizes,
)
create_web_icons(ui_icons.theme_pngs, web_icons.icon_sizes, web_icons.icons_dir)
create_web_status_icons(ui_icons.pixmaps_dir, web_icons.icons_dir)
create_touch_icon(ui_icons.logo_svg, web_icons.touch, 180)
create_ico_icon(ui_icons.theme_pngs, web_icons.favicon_sizes, web_icons.favicon)
if __name__ == '__main__':
main()

View file

@ -3,21 +3,61 @@
# the additional special exception to link portions of this program with the OpenSSL library. # the additional special exception to link portions of this program with the OpenSSL library.
# See LICENSE for more details. # See LICENSE for more details.
# #
from dataclasses import dataclass
import pytest
import deluge.component as component
from deluge.conftest import BaseTestCase
from deluge.core.core import Core from deluge.core.core import Core
class TestAlertManager(BaseTestCase): class LtSessionMock:
def set_up(self): def __init__(self):
self.alerts = []
def push_alerts(self, alerts):
self.alerts = alerts
def wait_for_alert(self, timeout):
return self.alerts[0] if len(self.alerts) > 0 else None
def pop_alerts(self):
alerts = self.alerts
self.alerts = []
return alerts
@dataclass
class LtAlertMock:
type: int
name: str
message: str
def message(self):
return self.message
def what(self):
return self.name
@pytest.fixture
def mock_alert1():
return LtAlertMock(type=1, name='mock_alert1', message='Alert 1')
@pytest.fixture
def mock_alert2():
return LtAlertMock(type=2, name='mock_alert2', message='Alert 2')
class TestAlertManager:
@pytest.fixture(autouse=True)
def set_up(self, component):
self.core = Core() self.core = Core()
self.core.config.config['lsd'] = False self.core.config.config['lsd'] = False
self.am = component.get('AlertManager') self.am = component.get('AlertManager')
return component.start(['AlertManager']) self.am.session = LtSessionMock()
def tear_down(self): component.start(['AlertManager'])
return component.shutdown()
def test_register_handler(self): def test_register_handler(self):
def handler(alert): def handler(alert):
@ -28,6 +68,29 @@ def handler(alert):
assert self.am.handlers['dummy1'] == [handler] assert self.am.handlers['dummy1'] == [handler]
assert self.am.handlers['dummy2'] == [handler] assert self.am.handlers['dummy2'] == [handler]
async def test_pop_alert(self, mock_callback, mock_alert1, mock_alert2):
self.am.register_handler('mock_alert1', mock_callback)
self.am.session.push_alerts([mock_alert1, mock_alert2])
await mock_callback.deferred
mock_callback.assert_called_once_with(mock_alert1)
async def test_pause_not_pop_alert(
self, component, mock_alert1, mock_alert2, mock_callback
):
await component.pause(['AlertManager'])
self.am.register_handler('mock_alert1', mock_callback)
self.am.session.push_alerts([mock_alert1, mock_alert2])
await mock_callback.deferred
mock_callback.assert_not_called()
assert not self.am._event.is_set()
assert len(self.am.session.alerts) == 2
def test_deregister_handler(self): def test_deregister_handler(self):
def handler(alert): def handler(alert):
... ...

View file

@ -8,7 +8,7 @@
from twisted.internet import defer from twisted.internet import defer
from deluge import error from deluge import error
from deluge.common import AUTH_LEVEL_NORMAL, get_localhost_auth from deluge.common import AUTH_LEVEL_NORMAL, get_localhost_auth, get_version
from deluge.core.authmanager import AUTH_LEVEL_ADMIN from deluge.core.authmanager import AUTH_LEVEL_ADMIN
from deluge.ui.client import Client, DaemonSSLProxy, client from deluge.ui.client import Client, DaemonSSLProxy, client
@ -170,3 +170,23 @@ def on_failure(failure):
d.addCallbacks(self.fail, on_failure) d.addCallbacks(self.fail, on_failure)
return d return d
@pytest_twisted.inlineCallbacks
def test_daemon_version(self):
username, password = get_localhost_auth()
yield client.connect(
'localhost', self.listen_port, username=username, password=password
)
assert client.daemon_version == get_version()
@pytest_twisted.inlineCallbacks
def test_daemon_version_check_min(self):
username, password = get_localhost_auth()
yield client.connect(
'localhost', self.listen_port, username=username, password=password
)
assert client.daemon_version_check_min(get_version())
assert not client.daemon_version_check_min(f'{get_version()}1')
assert client.daemon_version_check_min('0.1.0')

View file

@ -3,7 +3,7 @@
# the additional special exception to link portions of this program with the OpenSSL library. # the additional special exception to link portions of this program with the OpenSSL library.
# See LICENSE for more details. # See LICENSE for more details.
# #
import base64
import os import os
from base64 import b64encode from base64 import b64encode
from hashlib import sha1 as sha from hashlib import sha1 as sha
@ -483,3 +483,29 @@ def test__create_peer_id(self):
assert self.core._create_peer_id('2.0.1rc1') == '-DE201r-' assert self.core._create_peer_id('2.0.1rc1') == '-DE201r-'
assert self.core._create_peer_id('2.11.0b2') == '-DE2B0b-' assert self.core._create_peer_id('2.11.0b2') == '-DE2B0b-'
assert self.core._create_peer_id('2.4.12b2.dev3') == '-DE24CD-' assert self.core._create_peer_id('2.4.12b2.dev3') == '-DE24CD-'
@pytest.mark.parametrize(
'path',
[
common.get_test_data_file('deluge.png'),
os.path.dirname(common.get_test_data_file('deluge.png')),
],
)
@pytest.mark.parametrize('piece_length', [2**14, 2**16])
@pytest_twisted.inlineCallbacks
def test_create_torrent(self, path, tmp_path, piece_length):
target = tmp_path / 'test.torrent'
filename, filedump = yield self.core.create_torrent(
path=path,
tracker=None,
piece_length=piece_length,
target=target,
add_to_session=False,
)
filecontent = base64.b64decode(filedump)
with open(target, 'rb') as f:
assert f.read() == filecontent
lt.torrent_info(filecontent)

View file

@ -7,7 +7,13 @@
import os import os
import tempfile import tempfile
import pytest
from deluge import metafile from deluge import metafile
from deluge._libtorrent import LT_VERSION
from deluge.common import VersionSplit
from . import common
def check_torrent(filename): def check_torrent(filename):
@ -55,3 +61,52 @@ def test_save_singlefile(self):
metafile.make_meta_file(tmp_data, '', 32768, target=tmp_torrent) metafile.make_meta_file(tmp_data, '', 32768, target=tmp_torrent)
check_torrent(tmp_torrent) check_torrent(tmp_torrent)
@pytest.mark.parametrize(
'path',
[
common.get_test_data_file('deluge.png'),
common.get_test_data_file('unicode_filenames.torrent'),
os.path.dirname(common.get_test_data_file('deluge.png')),
],
)
@pytest.mark.parametrize(
'torrent_format',
[
metafile.TorrentFormat.V1,
metafile.TorrentFormat.V2,
metafile.TorrentFormat.HYBRID,
],
)
@pytest.mark.parametrize('piece_length', [2**14, 2**15, 2**16])
@pytest.mark.parametrize('private', [True, False])
def test_create_info(self, path, torrent_format, piece_length, private):
our_info, our_piece_layers = metafile.makeinfo(
path,
piece_length,
metafile.dummy,
private=private,
torrent_format=torrent_format,
)
lt_info, lt_piece_layers = metafile.makeinfo_lt(
path,
piece_length,
private=private,
torrent_format=torrent_format,
)
if (
torrent_format == metafile.TorrentFormat.HYBRID
and os.path.isdir(path)
and VersionSplit(LT_VERSION) <= VersionSplit('2.0.7.0')
):
# Libtorrent didn't correctly follow the standard until version 2.0.7 included
# https://github.com/arvidn/libtorrent/commit/74d82a0cd7c2e9e3c4294901d7eb65e247050df4
# If last file is a padding, ignore that file and the last piece.
if our_info[b'files'][-1][b'path'][0] == b'.pad':
our_info[b'files'] = our_info[b'files'][:-1]
our_info[b'pieces'] = our_info[b'pieces'][:-32]
lt_info[b'pieces'] = lt_info[b'pieces'][:-32]
assert our_info == lt_info
assert our_piece_layers == lt_piece_layers

View file

@ -15,7 +15,7 @@
from twisted.internet.protocol import ClientFactory from twisted.internet.protocol import ClientFactory
from deluge import error from deluge import error
from deluge.common import get_localhost_auth, get_version from deluge.common import VersionSplit, get_localhost_auth, get_version
from deluge.decorators import deprecated from deluge.decorators import deprecated
from deluge.transfer import DelugeTransferProtocol from deluge.transfer import DelugeTransferProtocol
@ -227,6 +227,7 @@ def clientConnectionLost(self, connector, reason): # NOQA: N802
self.daemon.host = None self.daemon.host = None
self.daemon.port = None self.daemon.port = None
self.daemon.username = None self.daemon.username = None
self.daemon.daemon_version = None
self.daemon.connected = False self.daemon.connected = False
if ( if (
@ -260,6 +261,7 @@ def __init__(self, event_handlers=None):
self.host = None self.host = None
self.port = None self.port = None
self.username = None self.username = None
self.daemon_version = None
self.authentication_level = 0 self.authentication_level = 0
self.connected = False self.connected = False
@ -389,7 +391,7 @@ def __on_connect(self, result):
log.debug('__on_connect called') log.debug('__on_connect called')
def on_info(daemon_info): def on_info(daemon_info):
self.daemon_info = daemon_info self.daemon_version = daemon_info
log.debug('Got info from daemon: %s', daemon_info) log.debug('Got info from daemon: %s', daemon_info)
self.daemon_info_deferred.callback(daemon_info) self.daemon_info_deferred.callback(daemon_info)
@ -741,6 +743,26 @@ def connection_info(self):
return None return None
@property
def daemon_version(self) -> str:
"""Get the connected daemon version
Returns:
The daemon version
"""
return self._daemon_proxy.daemon_version if self.connected() else ''
def daemon_version_check_min(self, min_version=get_version()) -> bool:
"""Check connected daemon against a minimum version.
Returns:
If connected daemon meets minimum version requirement.
"""
if not (self.daemon_version and min_version):
return False
return VersionSplit(self.daemon_version) >= VersionSplit(min_version)
def register_event_handler(self, event, handler): def register_event_handler(self, event, handler):
""" """
Registers a handler that will be called when an event is received from the daemon. Registers a handler that will be called when an event is received from the daemon.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 551 B

After

Width:  |  Height:  |  Size: 418 B

Before After
Before After

Some files were not shown because too many files have changed in this diff Show more